Domino 9 und frühere Versionen > ND6: Entwicklung

Agent funktioniert nicht ?!?

(1/9) > >>

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