Autor Thema: Dokument versenden aus Document Library  (Gelesen 2938 mal)

Offline Oliver.Bedford

  • Frischling
  • *
  • Beiträge: 4
Dokument versenden aus Document Library
« am: 11.09.06 - 09:05:31 »
Hallo,

  ich versuche mich gerade daran (ohne tiefergehende Kenntnis von Notes)
eine Document Library zu modifizieren.

  Unter anderem möchte ich, dass beim Review-Prozess das Original-Dokument nicht in der Datenbank abgespeichert wird, sondern an den Benutzer gemailt wird (über was in der Art "Call savenote.Send()"). Das funktioniert beim Mischen von RichText mit Attachments nicht (z.B. wird nur das Attachment geschickt, der Text ist verloren). Die komplette Form verschicken geht ja auch nicht, also wie wäre das zu erreichen?

  Ich muss doch hoffentlich nicht die Items manuell aus dem Body extrahieren?

  TIA,
  Oliver

botschi

  • Gast
Re: Dokument versenden aus Document Library
« Antwort #1 am: 11.09.06 - 17:34:14 »
Vielleicht liegts ja auch an mir, aber ich verstehe nicht viel von dem, was Du da schreibst  ???

Was meinst Du mit Document Library? Und was ist der Review-Prozess bzw wie macht ihr den Prozess?
Kannst Du Dein Anliegen mit "einfachen" Wörtern nochmal umschreiben?

Genrell kannst Du mit
Call notesDocument.CopyAllItems( notesDocument [, replace ] )
ein Dokument und alle Felder kopieren und dann damit ganz viel machen- u.a. auch versenden.

Offline Oliver.Bedford

  • Frischling
  • *
  • Beiträge: 4
Re: Dokument versenden aus Document Library
« Antwort #2 am: 12.09.06 - 10:36:00 »
Hi!

  Mit Document Library meine ich eine der Standard Templates, die Notes von Hause aus mitbringt. Bei Anlegen einer neuen Datenbank als "Doc Library - Notes & Web (7)" zu finden.

  Aus dem About-Dokument:
"About Document Library

What does this database do?
A Document Library application is an electronic filing cabinet that stores reference documents for access by a workgroup.  The database might contain anything from environmental impact statements for a group of engineers to financial statements for a group of loan officers." [...]

  Der "Review" ist eine Funktion, die diese Datenbank mitbringt (nach New Document oder Edit Document erscheint in der oberen Action Leiste ein entsprechender Button "Submit for Review").

  Ein CopyAllItems ist bereits vorhanden:
[...]
         Call note.CopyAllItems(savenote, False)
'from the Notes client, the body field is not available to note until a ui save
         If note.HasItem("Body") Then
            Set rtitem = note.GetFirstItem("Body")
            savenote.RemoveItem("Body")
            Call rtitem.CopyItemToDocument(savenote, "Body")
         Else
            note.CopyBody = True
         End If
[...]
An dieser Stelle möchte ich jetzt gerne per email versenden, das klappt so einfach aber nicht.

  Gruß,
  Oliver

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Dokument versenden aus Document Library
« Antwort #3 am: 12.09.06 - 10:42:14 »
Wird das Savenote gespeichert, bevor Du es versendest ?
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline Oliver.Bedford

  • Frischling
  • *
  • Beiträge: 4
Re: Dokument versenden aus Document Library
« Antwort #4 am: 12.09.06 - 13:48:55 »
Wird das Savenote gespeichert, bevor Du es versendest ?


Im Skript geht es so weiter:

         Call savenote.MakeResponse(note)
         savenote.~$RefOptions = "1"
         savenote.Subject = GetString(1)
         savenote.save True, True, True
         note.OriginalSaved = savenote.UniversalId

Wie gesagt, ich möchte das Dokument nicht in der DB abspeichern, sondern nur verschicken.

Ich habe das Versenden vor und nach dem Speichern ausprobiert, immer mit dem gleichen Ergebnis (Attachment ist drin, Text nicht).

Ciao,
Oliver

Driri

  • Gast
Re: Dokument versenden aus Document Library
« Antwort #5 am: 12.09.06 - 14:36:44 »
Zitat
savenote.save True, True, True

Das kann nicht funktionieren. Da müßte dir eigentlich direkt ein Fehler im Designer gemeldet werden.

Korrekte Syntax wäre :
Call savenote.Save(True,True,True)

Ich glaube auch, daß es besser wäre, mal den kompletten Code zu posten. So ist das ein wenig Gestocher im Nebel.


P.S. : Ich gehe mal davon aus, daß es sich bei savenote um ein NotesDocument handelt.
« Letzte Änderung: 12.09.06 - 14:38:34 von Driri »

Offline Oliver.Bedford

  • Frischling
  • *
  • Beiträge: 4
Re: Dokument versenden aus Document Library
« Antwort #6 am: 12.09.06 - 15:51:05 »
Zitat
savenote.save True, True, True

Das kann nicht funktionieren. Da müßte dir eigentlich direkt ein Fehler im Designer gemeldet werden.

  Das ist Original-Code aus der Datenbank Template! Das diejenigen, die Notes gemacht haben, nicht programmieren können, habe ich schon immer vermutet.  >:D

  Ich kann gerne auch mehr Zeilen kopieren:
Function SendToNext
   
   Dim RevCompleteMailError As String   'new 462
   
   
   If Not(dbug Is Nothing) Then dbug.LogAction("SendToNext")
   
   SendToNext = True
   
     'On Error Goto StandardError
   
   Set mailnote = New NotesDocument(db)
   
   ReviewerList = note.ReviewerList
   TotalReviewers = Ubound(ReviewerList)
   RevCompleteMailError = "0"    'new 462
   
   Set username = New NotesName(note.CurrentUser(0))
   Set reviewername = New NotesName(note.CurrentEditor(0))
   Set fromname = New NotesName(note.From(0))
   
   If Lcase(username.Common) = Lcase(reviewername.Common) Then IsCurrentReviewer = True
   
'Statuses:  1=New, 2=In Review, 3=Review Complete     
   If note.Status(0) = 1 Then
      note.reviewernumber = 0
      ReviewerNumber = note.ReviewerNumber(0)
'savenote is a copy of the original which we save as a response to the copy that will be reviewed         
      If Not(note.HasItem("OriginalSaved")) Then
         note.save True, True, True
         Set savenote = New NotesDocument(db)
         Call note.CopyAllItems(savenote, False)
'from the Notes client, the body field is not available to note until a ui save
         If note.HasItem("Body") Then
            Set rtitem = note.GetFirstItem("Body")
            savenote.RemoveItem("Body")
            Call rtitem.CopyItemToDocument(savenote, "Body")
         Else
            note.CopyBody = True
         End If
         Call savenote.MakeResponse(note)
         savenote.~$RefOptions = "1"
         savenote.Subject = GetString(1)
         savenote.save True, True, True
         note.OriginalSaved = savenote.UniversalId
      End If
   Else
      ReviewerNumber = note.ReviewerNumber(0) + 1
   End If
[... Abschnitte für Benachrichtigung der Reviewer etc. gelöscht]
End Function

Gruß,
Oliver

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Dokument versenden aus Document Library
« Antwort #7 am: 12.09.06 - 17:43:40 »
ERSTENS: Warum sollte ein
savenote.save true, true, true
nicht funktionieren ?

Diese Notation ist in Notes genau wie in VisualBasic genauso gültig wie die mit Klammern, solange kein Rückgabe- Wert benötigt wird.
Anderes Beispiel:

Messagebox "das ist eine nachricht" , 0 , "Nachricht"
bzw
Messagebox( "das ist eine nachricht" , 0 , "Nachricht" )

ZWEITENS: Du solltest auf Deine Ausdrucksweise achten, oliver:
Du hast -wie Du selbst schreibst- keine Ahnung von der Materie, und kriegst nicht mal ein simples document.send hin (aber wahrscheinlich sind diejenigen, die Notes programmiert haben auch zu blöd um eine gute Designer- Hilfe zu schreiben), also lass die abfälligen Bemerkungen über die Programmierer von Notes.

DRITTENS: Code abzupinseln und zu modifizieren, ohne die zugrundeliegende Struktur zu kennen / verstanden zu haben, geht halt meistens schief.
Du musst:

1. ein neues NotesDocument erstellen
2. Diesem Dokument die Maske "Memo" zuweisen
3. Den Body der note in das neue Dokument kopieren (savenote kannst Du vollkommen ignorieren, das hat für diese Anforderung null Relevanz
4. das Subject in das neue Dokument kopieren (bzw. selbst modifizieren)
5. die Felder SendTo, Copyto, BlindCopyTo mit entsprechenden Empfängern füllen
6. das ganze per send verschicken

Viel Glück damit

Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz