Domino 9 und frühere Versionen > Entwicklung
Dokument öffnen, speichern und wieder schließen in Script
Christian97:
Hallo,
im Anschluß an einen Import möchte ich in den Dokumenten noch einige Felder berechnet lassen. In der Maske sind diese Felder vom Typ "Berechnet beim Anlegen". Allerdings muß ich dazu jedes importierte Dokument zum Bearbeiten öffnen, speichern und wieder schließen. Ich habe versucht, mir einen Button-Agenten in der Ansicht zu erstellen, der mir jedes Dokument in der Ansicht durchgeht, die Dokumente nacheinander öffnet, speichert und wieder schließt. Bisher sieht mein Code so aus:
Sub Click(Source As Button)
Dim ws As New notesuiworkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim uidoc As NotesUIDocument
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
Set doc = collection.GetFirstDocument()
While Not(doc Is Nothing)
Set uidoc = ws.CurrentDocument
Call ws.EditDocument(True)
Call uidoc.save
Call uidoc.close
Set doc = collection.GetNextDocument(doc)
Wend
End Sub
Beim Save und Close kommt aber immer die berühmte Fehlermeldung "Object variable not set". Aber ich hab doch das uidoc gesetzt. Was mach ich falsch?
Danke
Christian
Glombi:
Du brauchst das UI Dokument nicht, sondern kannst ComputeWithForm verwenden.
Sub Click(Source As Button)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
Set doc = collection.GetFirstDocument
While Not(doc Is Nothing)
call doc.ComputeWithForm(false,false)
call doc.Save(true,true,true)
Set doc = collection.GetNextDocument(doc)
Wend
End Sub
Andreas
ata:
... dein uidoc wird falsch initialisiert, den du hast kein ws.CurrentDocument
Set uidoc = ws.EditDocument( True , doc )
Driri:
Btw : Meistens reicht für den Fall auch ein simpler @Command([ToolsRefreshSelectedDocs]) bzw. @Command([ToolsRefreshAllDocs]).
Christian97:
Vielen Dank erstmal an Euch drei!
@Driri:
Hätte nicht gedacht, daß es doch noch eine @Formel-Lösung gibt. Allerdings muß ich da erst alle Dokumente markieren.
@Glombi:
Bei Deiner Lösung passiert bei mir gar nichts. Ich erkenne hinterher zumindest nicht, daß die neuen Felder (und auch der Fenstertitel) berechnet wurden.
@ata:
Ich habe die eine Zeile abgeändert. Aber ich muß vorher alle Dokumente markieren. Werden nicht durch die Collection automatisch alle Dokumente der Ansicht durchlaufen?
Christian
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln