Domino 9 und frühere Versionen > ND9: Entwicklung

SendTo aus mehreren Feldern befüllen

(1/2) > >>

Sommersprosse:
Ich steh irgendwie auf dem Schlauch...

Wir haben eine Datenbank in der Protokolle von Meetings angelegt werden.
In der ersten Maske (Protokoll) werden die Teilnehmer eingetragen. Hierfür gibt es die Felder Participant und CopyTo.

Die einzelnen Protokolleinträge werden über eine zweite Maske eingetragen, hier gibt es ein Feld Responsible (hresponsible).

in der ersten Anforderung die ich hatte sollte der Moderator des Meetings die Möglichkeit per Button haben, eine Mail an alle Verantwortlichen (hresonsible) aus dem gesamten Protokoll zu verschicken.

Das hat auch wunderbar funktioniert...


Sub Click(Source As Button)
   
   Dim ws As New NotesUIWorkspace
   Dim session As New NotesSession
   Dim dc As NotesDocumentCollection
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim maildoc As NotesDocument
   Dim bodyitem As NotesRichTextItem
   Dim senddoc As NotesItem
   Dim mailconf As NotesDocument
   Dim mailrecip As notesitem
   Dim view As NotesView
   Dim docParent As NotesDocument
   Dim responsible As NotesItem
   Dim strUnid As String
   Dim MainID As String
   Dim docnext As NotesDocument
   Dim currentdoc As NotesUIDocument
   
   Set db = session.CurrentDatabase
   Set dc = db.UnprocessedDocuments   
   Set view = db.getview("EmbeddedProtocolEntry")
   
   Set docnext = view.GetFirstDocument
   Set refdoc = ws.CurrentDocument.Document
   namen = doc.r_mitarbeiter_abt
   
   
   MainID = refdoc.Getitemvalue("fm_minutes_DocID")(0)
   
   While Not (docnext Is Nothing)
      strUnid = docnext.Getitemvalue( "db_detail_doc_id" )(0)
      If Not docnext.HasItem("senddoc") Then
         If docnext.GetItemValue("senddoc")(0)="" Then
            If Trim (strUnid) = Trim (MainID) And Not docnext.hresponsible(0) = "" Then
               Set maildoc = New NotesDocument (db)
               maildoc.form="Memo"
               maildoc.principal="New Job available"
               Call maildoc.Replaceitemvalue("Subject",docnext.Getitemvalue("hTopic")(0))
               Call maildoc.Replaceitemvalue("sendto",docnext.Getitemvalue("hresponsible")(0))
'               Call maildoc.ReplaceItemValue("sendto",refdoc.Getitemvalue("Participant")(0))   
               Call maildoc.ReplaceItemValue("Copyto",refdoc.Getitemvalue("CopyTo")(0))
               Set bodyitem=maildoc.CreateRichTextItem("Body")
               bodyitem.AppendText "New Job for Meeting: "  & refdoc.title (0) & "  please click attached link to open --> "
               Call bodyitem.AppendDocLink( docnext, "" ) 
               Set senddoc = docnext.Replaceitemvalue("senddoc",1 )
               Call docnext.Save(True,False)
               maildoc.Send (False)
            End If
         End If
      End If
      
      Set docnext = view.GetnextDocument (docnext)
   Wend
   
End Sub

Jetzt kam die Anforderung die Teilnehmer ebenfalls mit benachrichtigen zu können,wenn neue Einträge erstellt werden.
Ich hatte es erst so versucht wie im Script ersichtlich...

               Call maildoc.Replaceitemvalue("sendto",docnext.Getitemvalue("hresponsible")(0))
'               Call maildoc.ReplaceItemValue("sendto",refdoc.Getitemvalue("Participant")(0))   
               Call maildoc.ReplaceItemValue("Copyto",refdoc.Getitemvalue("CopyTo")(0))

Aber mit der zweiten Zeile überschreibe ich mir den Wert des ersten Replaceitemvalue..
Irgendwie fehlt mir der Ansatz wie ich das in ein Arry bekomme o.ä. das beide Felder ausgelesen werden und in eins geschrieben werden.
Mache das wahrscheinlich zu selten  :-:...

Ihr habt mir bestimmt einen Tipp.
Vielen Dank Euch.

koehlerbv:
NotesItem.AppendToTextList

Sommersprosse:
Danke für den Gedankenanstoß.

Werde ich entsprechend anpassen, sollte ich hinbekommen  :)

koehlerbv:
Noch eine andere Variante:
maildoc.SendTo = Evaluate ("hresponsible : Participant", maildoc)

Tode:
oder rein LotusScript:

--- Code: ---Call maildoc.Replaceitemvalue("sendto",Fulltrim( ArrayUnique( ArrayAppend( docnext.Getitemvalue("hresponsible")(0),refdoc.Getitemvalue("Participant")(0) ) ) ) )
--- Ende Code ---

oder doch so:

--- Code: ---Dim varSendTo(1) as String
varSendTo(0) = docnext.Getitemvalue("hresponsible")(0)
varSendTo(1) = refdoc.Getitemvalue("Participant")(0)
Call maildoc.Replaceitemvalue("sendto", varSendTo )
--- Ende Code ---

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln