Domino 9 und frühere Versionen > ND8: Entwicklung
agent.run in QuerySave
Bruce Willis:
Hallo,
ich möchte per LS im Querysave einer Maske einen Agenten aufrufen, aber der Agent startet scheinbar nicht.
Woran kann es liegen?
Es geht um einen FormesSprache-Agenten, der einige Felder des Dokuments ändert bzw. ändern soll.
Als QuerySave noch in FS geschrieben war, ging es einwandfrei... :-:
Gruß
Leo
--- Code: ---Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
'Agent zur Bearbeitung und Übertragung aller Änderungen und Senden der Mails
Dim agent As NotesAgent
Set agent = db.GetAgent("L_EnterChangesInHistory")
If agent.Run = 0 Then
Print "Agent ran - Success"
Else
Print "Agent did not run - Failure"
End If
--- Ende Code ---
koehlerbv:
Was sind die Einstellungen des Agents? Er zielt auf ...? Hantiert der Agent mit dem Frontend? Findet sich in der Statuszeile / im lokalen Log ein Hinweis?
Bernhard
pram:
Der Agent hat kein Dokument wenn er nur mit run gestartet wird.
Entweder du verwendest runwithdocumentcontext oder du gibst eine NoteId an.
(wobei letzeres hier wohl zu Speicherkonflikten führt)
Gruß Roland
koehlerbv:
In die Richtung zielte auch meien Nachfrage, Roland. Mir stellt sich überhaupt die Frage: Wozu muss ich im QuerySave (oder PostSave oder QueryClose) einen Agent aufrufen? Ein RunOnServer vielleicht noch, aber dann müsste die Sache einerseits schon sehr komplex sein und zweitens sehr, sehr gut begründet.
Bernhard
Bruce Willis:
--- Zitat von: koehlerbv am 16.01.12 - 18:28:14 ---Was sind die Einstellungen des Agents? Er zielt auf ...? Hantiert der Agent mit dem Frontend? Findet sich in der Statuszeile / im lokalen Log ein Hinweis?
--- Ende Zitat ---
Hi Bernhard,
1. Auslösen "Durch Ereignis", Auswahl im Menü 'Aktionen", Ziel "Keines"
2. Der Agent protokolliert im Dokument beim Speichern im Feld "History" und einigen anderen alles, was im Dokument geändert wurde.
Beispiel bzw. Auszug:
--- Code: ---REM {Bearbeitung der Feldern falls Schalter zur CMDB Angaben changed};
newValue := @Text(cmdb) ;
oldValue := @Text(oldcmdb) ;
tmp1 := @If(oldcmdb =""; " setzte"; " änderte") ;
tmp2 := " den CMDB-Relevanz-Schalter auf " ;
newEntry := WannWer + tmp1 + tmp2 + "'" + newValue + "'";
@If( oldValue != newValue ; @Do (
@StatusBar(tmp1 + " ... " + tmp2);
@SetField("oldcmdb"; newValue) ;
@SetField("History"; @NewLine + newEntry + @Left(History; 30000 ) ) ;
@SetField("History_1"; @Left(History_1; 30000 ) + newEntry + @NewLine )
); @Success );
--- Ende Code ---
3. Beim Starten (aus FS QuerrySave) brachte der Agent den Hinweis in der Statusleiste.
Jetzt aber nicht mehr. Als ob er gar nicht startet.
Obwohl die Meldung "Agent ran - Success" aus LS QuerySave kommt. :(
--- Code: ---@StatusBar("Aktualisierung gestartet...");
--- Ende Code ---
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln