Domino 9 und frühere Versionen > ND8: Entwicklung
Exiting -> Agent ausführen
Hedwig14:
Hallo!
ich möchte in einer Exiting-Formel (s.u.) einen Agenten (s.u.) starten.
Der Agent soll in diversen Felden nach dem Verlassen des Feldes(Exiting-Formel) eine Berechnung vornehmen.
Die Berechnungsformel will ich aber nur im Agenten hinterlegen.
Hier meine ersten Versuche. Leider werden mir die Felder nicht berechnet angezeigt !
Exiting-Formel
Sub Exiting(Source As Field)
Dim s As New NotesSession
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim uidoc As NotesUIDocument
Dim agent As NotesAgent
Set db = s.CurrentDatabase
Set uidoc=ws.CurrentDocument
Set doc = uidoc.Document
'Agent mit übergabe der Dokumenten ID starten
Set agent = db.GetAgent("(AbrechnungBelegeSummenUSt)")
Call agent.Run(doc.NoteID)
End Sub
Agent
Sub Initialize
Dim ws As New NotesUIWorkspace
Dim doc As NotesDocument
Dim uidoc As NotesUIDocument
Dim note As NotesDocument
Dim session As New NotesSession
Dim agent As NotesAgent
Dim db As NotesDatabase
Set db=session.CurrentDatabase
Set agent = session.CurrentAgent
Set doc=db.GetDocumentByID(agent.ParameterDocID)
'Hotelkosten incl. Umsatzsteuer
'Umsatzsteuer Hotel
doc.AB_USt_Hotelkosten = doc.AB_Übernachtungskosten_gesamt(0) * doc.AB_Hotelumsatzsteuer(0)
End Sub
ata:
... das wird so auch nicht gehen, da das Dokument im Backend geändert wird - und nicht erkennbar gespeichert wird. Das ist nicht der richtige Ansatz. Warum unbedingt ein Agent?
Toni
Hedwig14:
Hallo Toni !
Soll ich lieber eine Funktion verwenden ?
ata:
... auf jeden Fall wäre eine Library am Besten. Ich mache es so, daß ich sogar noch zwischen Frontend und Backend in unterschiedliche Lib's trenne und die beiden Lib's über einen USe verknüpfe
Also zwei Libraries:
lib.[MASKENNAME].frontend
lib.[MASKENNAME].backend
In der lib.[MASKENNAME].frontend wird per use dann lib.[MASKENNAME].backend eingebunden.
Das hat den Vorteil, daß dir keine Frontendobjekte bei Hintergrundagenten im Weg stehen. Ausserdem kannst du diesen Code dann universell überall einsetzen.
Das aktuelle Dokument kannst du nun auch als uidoc (frontend) oder doc (backend) durchreichen. In diesem Fall bist du in der Lage Änderungen im aktuell geöffneten Dokument sehen zu können.
Wieviel Erfahrung hast du mit LS?
Hedwig14:
Danke für Deinen Tip !
Aber ich glaube das ist def. zu hoch für mich....
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln