Hallo!
Mein Agent soll via Lotus Script Dokumente aus einer view in eine andere Datenbank kopieren. Wenn ich den Agenten manuell starte, dann läuft er fehlerfrei durch.
Lasse ich den Agenten Zeitplan-gesteuert vom Server ausführen, dann gibt der AMgr auf der console die Fehlermeldung
[119C:0002-109C] 13.01.2015 10:21:25 AMgr: Agent ('Weitergabe_auto' in 'Einlieferer.nsf') error message: Object variable not set
aus.
Leider kann man das nicht irgendwie auch debuggen, oder?
"object variable not set" beim Agenten im Server-Kontext
- lotusfee
- Erledigt
-
-
Habe mal im oberen Teil ei paar Print-statements eingebaut.
Die DB wird aus der session gezogen.
Bei der view bekomme ich auch ein Ergebnis.
Dann hangele ich mich jetzt mal auf diese Art weiter durch... -
Hi,
Die Standardfrage in solchen Faellen.
Irgendwelche UI-Elemente sind aber in deinem Agenten nicht enthalten?
Andreas
-
nee, das wäre ja auch zu einfach.
Komischerweise wird die view gefunden, aber dann das Dokument nicht. Das interessante ist, ich habe mal auf coll umgestellt, aber die hat (auch) 0 Elemente, obwohl definitiv 2 Dokumente in der view sind und auch den Suchkriterien der coll entsprechen... -
Kannst Du mal ein bisschen Code posten?
-
%REM
Agent Weitergabe_an_PR
%END REM
Option Public
Option DeclareDim se As NotesSession
Dim db As NotesDatabase
'Dim view As NotesView
Dim query As String
Dim coll As NotesDocumentCollectionDim doc As NotesDocument
Dim profile As NotesDocument
Dim item As NotesItemDim prdb As NotesDatabase
Dim prdoc As NotesDocument
Dim prdb_srv As string
Dim prdb_name As StringDim history_text As String
Dim akt_user As StringSub Initialize
'**************************************************************************************************
'* Dokument aus der Einlieferer_DB in die PR_DB kopieren
'**************************************************************************************************
Set se = New NotesSession
Set db = se.Currentdatabase
Print db.filename
' Set view = db.Getview("($Vorlagen_PR_pending)")
query = {@contains(Form; "ARC") & Status = "1" & copied != "1"}
Print "query: " + query
' Die Abfrage wird korrekt angezeigt.
Set coll = db.Search(query, Nothing, 0)
Print "Anzahl: " + CStr(coll.Count)
' Im Debugger im User-Kontext wird hier 2 angezeigt. Im Server-Kontext 0
Set profile = db.Getprofiledocument("($Profile)")
prdb_srv = profile.PR_DB_Server(0)
prdb_name = profile.PR_DB_Name(0)
Set prdb = New NotesDatabase(prdb_srv, prdb_name)
'akt_user = se.UserNameList(0).Common
akt_user = "Server"
'Set doc = view.Getfirstdocument()
Set doc = coll.Getfirstdocument()
While Not doc Is Nothing
Set prdoc = doc.CopyToDatabase(prdb)...
-
Jetzt funktionierts!
Und soll ich Euch sagen, was das Problem war...?
Ich hatte dem Server nicht die Rolle gegeben, die er für das Leser-Feld benötigte. Also hat der Server die Dokumente natürlich nicht sehen können.