Hallo zusammen,
ich hab mal wieder ein kleines Problem, für das ich einen Schubs in die richtige Richtung brauche.
Folgendes Szenario:
Ich habe ein Workflowdokument, das verschiedene Stationen durchläuft. Einige der Beteiligten müssen den Workflow kommentieren, andere müssen ein Votum abgeben und der Chef muss am Ende eine Entscheidung treffen.
Kommentare, Votum und Entscheidung werden mit Hilfe einer Dialog-Maske eingegeben, in deren QueryClose Event dann das Responsedoc erzeugt wird. Klappt soweit alles problemlos.
Um allen Beteiligten einen schnellen Zugriff auf die Antworten zu ermöglichen gibt es im Hauptdokument eine eingebettete Ansicht, die die zu diesem Doc gehörenden Antworten anzeigt. Funktioniert auch, aber ich kann in der Ansicht nicht auf alle Felder der Dokumente zugreifen.
Öffne ich die jeweiligen ResponseDocs, werden mir alle Feldinhalte korrekt angezeigt, speichere ich die Dokumente jetzt nochmals ab, stehen die Werte auch in der Ansicht zur Verfügung. Und genau hier liegt mein Problem: Wie sorge ich dafür, dass alle Feldwerte zur Verfügung stehen, ohne dass die Dokumente nochmals im Client geöffnet und gespeichert werden müssen? (Auf die Dokumente sollen nach der Anlage keine Schreibzugriffe mehr erfolgen.)
Hier mein für die Anlage der Antwordokumente verwendeter Scriptcode (nicht lachen
)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim docResp As NotesDocument
Dim AdminRead As NotesItem
Dim AllReader As NotesItem
Dim AllRoles As NotesItem
Dim UserAutor As NotesItem
Dim uComment As NotesItem
Dim typeTM As NotesItem
Dim datAnlage As NotesItem
Dim item As NotesItem
Set db = session.CurrentDatabase
Set doc = db.GetDocumentByUNID( baseID ) 'Zugehöriges Hauptdokument
Set docResp = db.CreateDocument
docResp.Form = "Kommentar"
Set item = doc.GetFirstItem("gwflow_ReaderResp")
item.IsReaders= True 'Für die Zugriffssteuerung auf die Kommentardokumente Textliste in ReaderListe wandeln
Call item.CopyItemToDocument(docResp, "gwflow_resp_ReaderWF")
item.IsReaders= False 'Zurücksetzen der Änderung
Set item = doc.GetFirstItem("gwflow_LeserImmer")
Call item.CopyItemToDocument(docResp, "gwflow_resp_ReaderRoles")
Set UserAutor = New NotesItem( docResp, "gwflow_resp_Ersteller", readerUser , AUTHORS)
Set uComment = New NotesItem( docResp, "gwflow_resp_Kommentar", comment)
Set datAnlage = New NotesItem( docResp, "gwflow_resp_AnlageDat", Today)
Select Case aktNr
Case "1":
Set typeTM = New NotesItem( docResp, "gwflow_resp_TypTM", "TM_gwflow_resp_Stellung")
Case "2":
Set typeTM = New NotesItem( docResp, "gwflow_resp_TypTM", "TM_gwflow_resp_Stellung")
Case "4":
Set typeTM = New NotesItem( docResp, "gwflow_resp_TypTM", "TM_gwflow_resp_Vstd")
Set VoteVstd = New NotesItem( docResp, "gwflow_resp_Entscheidung", voteVstd)
Case "6":
Set typeTM = New NotesItem( docResp, "gwflow_resp_TypTM", "TM_gwflow_resp_BR")
Set VoteVstd = New NotesItem( docResp, "gwflow_resp_Votum", voteBR)
Case "8":
Set typeTM = New NotesItem( docResp, "gwflow_resp_TypTM", "TM_gwflow_resp_Vstd")
Set VoteVstd = New NotesItem( docResp, "gwflow_resp_Entscheidung", voteVstd)
Case Else
Set typeTM = New NotesItem( docResp, "gwflow_resp_TypTM", "ups")
End Select
'Speichern, zum Antwortdokument machen und erneut speichern
Call docResp.Save( True, False )
Call docResp.MakeResponse( doc )
Call docResp.Save( True, False )