Domino 9 und frühere Versionen > ND6: Entwicklung
Agent funktioniert nicht ?!?
mgubler:
Hallo zusammen,
ich habe nachfolgenden Agenten geschrieben der Daten zwischen zwei Datenbanken abgleichen soll.
Er schaut nach ob neue Tickets über die Datenbank A geschrieben wurden und gleicht die Daten dann mit Datenbank B ab.
Sollte vom Prinzip funktionieren, denke ich...
Tut es aber leider nicht.
Und ich erkenne den Fehler nicht.
Laut Agent-Log ist es ein unbekannter Fehler.
Es gibt auch keine Ausgabe auf der console.
Ich hoffe mir kann jemand von euch helfen?!?
--- Code: ---Sub Initialize
Dim session As New NotesSession
Dim TicketDB As NotesDatabase
Dim SupportDB As NotesDatabase
Dim dbDirectory As NotesDirectory
Dim dateTime As New NotesDateTime( Datenumber(1995, 3, 14) )
Dim selection As String
Dim collection As NotesDocumentCollection
Dim ViewCollection As NotesViewEntryCollection
Dim ViewEntry As NotesViewEntry
Dim SupportView As NotesView
Dim TicketView As NotesView
Dim TicketDoc As NotesDocument
Dim SupportDoc As NotesDocument
Dim SupportID As String
Dim TicketID As String
Set SupportDB = session.CurrentDatabase
Set SupportView = SupportDB.GetView("(v_ReqNumber)")
Set SupportDoc = SupportView.GetFirstDocument
iCounter = SupportView.AllEntries.Count
Print iCounter + " Tickets zum abgleich mit der Ticket-DB in der Support-DB gefunden"
Set TicketDB = session.GetDatabase("Notes","troubticket.nsf",False)
Set TicketView = TicketDB.GetView("(v_ReqNumber)")
On Error Goto ErrHandler
iCounterX = 0
While Not (SupportDoc Is Nothing)
SupportID = SupportDoc.ReqNumber(0)
selection = |@Contains( ReqNumber; "| + SupportID+ |" )|
Print "Suche in der Ticket-DB nach dem Ticket " + SupportID
Set collection = TicketDB.Search( selection, dateTime, 0 )
Set TicketDoc = collection.GetFirstDocument()
If (TicketDoc Is Nothing) Then
Print "Ticket " + SupportID + " wurde nicht in der Ticket-DB gefunden! Nächstes Dokument (" + iCounterX + " / "+iCounter+")"
Goto EndeIf
End If
While Not TicketDoc Is Nothing
TicketID = TicketDoc.ReqNumber(0)
If (SupportID = TicketID) Then
tmpString=TicketDoc.GetItemValue("solution")
Call SupportDoc.ReplaceItemValue("solution", tmpString)
tmpString=TicketDoc.GetItemValue("tx_usercomment")
Call SupportDoc.ReplaceItemValue("tx_usercomment", tmpString)
tmpString=TicketDoc.GetItemValue("Status")
Call SupportDoc.ReplaceItemValue("Status", tmpString)
tmpString=TicketDoc.GetItemValue("supporter")
Call SupportDoc.ReplaceItemValue("supporter",tmpString)
Call SupportDoc.Save(True, True)
Goto EndeIf
End If
Wend
EndeIf:
Set SupportDoc = SupportView.GetNextDocument(SupportDoc)
iCounterX = iCounterX +1
Wend
Print "Alle Tickets (" + iCounterX +" / " + iCounter + ") bearbeitet. ENDE"
ErrHandler: ' Error-handling routine
Print "Error " & Err & " at line number " &Erl
Resume Next
Ende:
End Sub
--- Ende Code ---
s_Old:
An welcher Stelle haut´s ihn denn aus den Latschen -> sollte das nicht durch die Fehlerbehandlung ersichtlich sein: DEBUGGER!
mgubler:
Das ist es ja.
Lasse ich den Debugger laufen und starte den Agent über das Menü gibt es keine Probleme.
Ich weiß es also nicht, wo das Problem liegt =(
flaite:
--- Zitat ---Das ist es ja.
Lasse ich den Debugger laufen und starte den Agent über das Menü gibt es keine Probleme.
Ich weiß es also nicht, wo das Problem liegt =(
--- Ende Zitat ---
Wie läßt du den Agenten sonst starten? Zeitgesteuert oder so.
Schau auf die Serverkonsole oder ins Log.nsf. Da könnten sich Meldungen finden.
Vielleicht fehlen dem Server irgendwelche Rechte. Z.B. auf die Ticket-Datenbank.
koehlerbv:
--- Zitat von: mgubler am 04.03.09 - 18:28:15 ---... Tut es aber leider nicht ...
... Laut Agent-Log ist es ein unbekannter Fehler ...
--- Ende Zitat ---
Na, das sind alle tolle Hinweise, die Du für die hilfebereite Community bereit stellst.
Aus Deinen unklaren Angaben postuliere ich jetzt mal:
- Der Agent tut, was er soll, wenn er über den Client ausgeführt wird.
- Er tut nicht, wenn er scheduled läuft.
Du instantiierst da alle mögliche Objekte, ohne deren Verfügbarkeit zu prüfen: Das ist schon mal extrem schlecht. Allein, wenn Du das mal protokollieren würdest, kämst Du auch erheblich näher an die Stelle heran, die den Fehler wirft.
Wenn Du nähere Informationen hast, die nur Du beibringen kannst, dann wirst Du vermutlich schon selbst den Fehler finden, ansonsten gibt es hier schnelle Hilfe.
Bernhard
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln