Hallo Forum,
der Urlaub ist rum, der Halbmarathon bestanden und nun stehe ich im Geschäft mal wieder auf meinem Scriptanfängerschlauch.
Ich habe folgendes Problem wo ich einfach keine Lösung finde:
Ich übergebe aus einem Antwortdokument an das Hauptdokument mit @setdocfield Werte, die dort auch einwandfrei landen. Diese Werte müssen im Hauptdokument verarbeitet werden, und das Ergebnis an alle Antwortdokumente wieder übergeben werden.
Dank der hilfreichen Dokumentation im BP (Arbeiten mit Haupt- und Antwortdokumenten) ist das normalerweise ja kein Beinbruch, dazu habe ich im Querysave des Hauptdokuments den Code
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Set db = session.CurrentDatabase
If Source.IsNewDoc Then Exit Sub 'Wenn UIDoc neu ist dann verlasse Script
Set doc = Source.Document 'UIDoc zu Backend-doc
'alle Antwortdocs des Backend-Docs werden in die Collection aufgenommen
Set dc = doc.Responses
'Setze alle Felder der Collection, gespeichert wird automatisch
Call dc.StampAll( "WerteinesPunktes" , doc.BetragjePunkt(0) )
reinkopiert und bearbeitet.
Wenn ich das Hauptdokument manuell öffne und speicher wird der BetragjePunkt übergeben, meine Berechnungen passen. Nun würde ich das aber gerne auch automatisiert durchführen.
Mein Ansatz war beim Verlassen des Antwortdokuments das Hauptdokument zu suchen, um dieses dann zu speichern. Hab ich im Queryclose des Antwortdokuments wie folgt lösen wollen:
Sub Queryclose(Source As Notesuidocument, Continue As Variant)
Dim ndAntwort As NotesDocument
Dim ndHaupt As Notesdocument
Dim uidoc As NotesUIDocument
Set ndAntwort = Source.Document
Dim Ref As String
Ref = ndAntwort.ParentDocumentUNID
Dim ndb As NotesDatabase
Set ndb=source.Document.Parentdatabase
Set ndHaupt=ndb.getdocumentbyUNID(Ref)
Call ndHaupt.Save(True, False)
End Sub
Klappt aber nicht, durch das Saven im Backend wird das Querysave oben nicht aufgerufen.
Kann ich das ndHaupt Dokument nun in ein Frontend umwandeln und dieses dann aktualisieren und refreshen? Dann müsste doch das Querysave greifen. Oder geht das garnicht, Backend in Frontend umwandeln?
Oder seh ich den Wald mal wieder vor lauter Bäumen nicht, und es gibt eine viel einfachere Lösung?