Guten Morgen zusammen,
mein Script bricht immer mit der Fehlermeldung "Object variable not set ab". Der Debugger stoppt immer in der Zeile "Set currentDocument = Source.Document".
Woran liegt das?
Zum Hintergrund:
In einer Datenbank zur Archivverwaltung wählt der Benutzer ein Dokument aus einer Auswahlliste aus. Von dem ausgewählten Dokument wird u.a. die DocID in dem Feld "docIDAkte" zwischengespeichert. Sobald der Benutzer auf die Aktion "Als Favorit ablegen" drückt, wird der Agent gestartet, der das unten angehängte Script ausführt.
Dieses Script soll das Dokument anhand der DocID finden und in den Ordner "Meine Akten" (am Besten als Kopie) ablegen.
Vielen Dank im Voraus.
Thorsten
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim Source As NotesUiDocument
Dim currentDocument As NotesDocument
Set currentDocument = Source.Document
Set db = session.CurrentDatabase
Set dc = db.FTSearch(currentDocument.GetItemValue("docIDAkte")(0),1)
Set doc = dc.GetFirstDocument
While Not(doc Is Nothing)
Call doc.PutInFolder("Meine Akten",True)
Set doc = dc.GetNextDocument(doc)
Wend
End Sub
Hallo zusammen,
vielen Dank für Eure Hilfe. Der Agent arbeitet nun so, wie es sein sollte.
Hier das funktionierende Script:
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim workspace As New Notesuiworkspace
Dim currentDocument As NotesDocument
Set currentDocument = workspace.currentdocument.document
Set db = session.CurrentDatabase
Set dc = db.FTSearch(currentDocument.GetItemValue("docIDAkte")(0),1)
Set doc = dc.GetFirstDocument
While Not(doc Is Nothing)
Call doc.PutInFolder("Meine Akten",True)
Set doc = dc.GetNextDocument(doc)
Wend
End Sub
So!
Habs dann jetzt so gelöst ;D ... bin sehr stolz auf mich :P Learning by Doing
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim vc As NotesViewEntryCollection
Dim workspace As New Notesuiworkspace
Dim currentDocument As NotesDocument
Set db = session.CurrentDatabase
Set currentDocument = workspace.currentdocument.document
Set view = db.GetView("(alleAktenNachDocID)")
Set vc = view.GetAllEntriesByKey(currentDocument.GetItemValue("docIDAkte")(0))
Call vc.PutAllInFolder("Meine Akten")
End Sub
... und es funktioniert super