Domino 9 und frühere Versionen > ND7: Entwicklung
Serverseitiger Agent bei Feldänderung aufrufen
dormi:
Hallo,
ich möchte gerne einen Agenten auf dem Server ausführen, wenn ein bestimmtes Feld in einem Formular geändert wird.
Kann mir jemand sagen, wie das geht?
Danke
Jürgen
ascabg:
Eventuell hilft dieses hier.
aus der Designer-Hilfe - Klasse NotesAgent
--- Code: ---status = notesAgent.RunOnServer( [ noteID$ ] )
--- Ende Code ---
Andreas
dormi:
Hallo,
ich hab das mal nach dem Hilfe Beispiel so gelöst:
--- Code: ---Sub Exiting(Source As Field)
Dim s As New NotesSession
Dim db As NotesDatabase
Dim agent As NotesAgent
Set db = s.CurrentDatabase
Set agent = db.GetAgent("Kunden_Agent_ODBC_OF")
If agent.RunOnServer = 0 Then
Messagebox "Agent ran",, "Success"
Else
Messagebox "Agent did not run",, "Failure"
End If
End Sub
--- Ende Code ---
Das klappt auch.
Was ist denn mit unseren ADM, die nur eine lokale Replik auf Ihren Notebooks haben? Die haben dort keine Verbindung zu der ODBC Datenbank.
Kann ich es irgendwie erreichen, dass der Client eine Zeiger auf den geänderten Datensatz setzt und der Server nach der nächsten Replikation die Aktualsierungen durchführt?
Thomas Schulte:
Ja das kannst du ....
Erst mal musst du deinen Exiting Teil so ändern, das der Agent nur dann läuft wenn er nicht lokal arbeitet und anstelle des Agents dann ein "Flagitem" im Dokument setzt. Und dann brauchst du einen periodischen Agent, der grundsätzlich alles was das Flagitem hat durchnudelt und da die Daten aus der ODBC Datenbank holt. Logischerweise muss der anschließend das Flag Item löschen.
dormi:
OK, falls mir jetzt jemand eine Lösung posten würde, könnte ich das, ansonsten muss ich den Agenten halt serverseitig auf jedes geänderte Dokument loslassen, was leider relativ lange dauert und viel Last für die Repliken bedeutet :-(
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln