Domino 9 und frühere Versionen > ND6: Entwicklung

Script PutInFolder

(1/3) > >>

Thorsten Kalweit:
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


--- Code: ---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

--- Ende Code ---

DerAndre:
Ist ja auch klar.

Source ist ja auch nothing.

Deklariert Ja, instanziert Nein.

Mach ein

dim workspace as new ui workspace

set currentdocument = workspace.currentdocument.document

BigWim:
Hallo Thorsten,

das aktuelle Dokument erhälst Du über die notesuiworkspace-Klasse, also

Dim uiws as new notesuiworkspace
dim source = uiws.currentdocument

Aber bei Agenten mit FrontEnd-Klassen ist immer ein wachsames Auge geboten ....

Markus

Thorsten Kalweit:
Hallo zusammen,

vielen Dank für Eure Hilfe. Der Agent arbeitet nun so, wie es sein sollte.

Hier das funktionierende Script:

--- Code: ---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

--- Ende Code ---

Driri:
Mit Option Declare wärst Du direkt auf den Fehler hingewiesen worden. Das sollte man sich im Programmers Pane als Standard setzen.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln