Autor Thema: Agent bei Dokumentänderung  (Gelesen 1572 mal)

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Agent bei Dokumentänderung
« am: 11.07.06 - 10:25:57 »
Moin,moin alle zusammen.

Folgende Konstellation: In Maske A werden Personaldaten gespeichert, in Maske B werden Krankenkassendaten gespeichert. Wenn sich jetzt in Maske A die Krankenkasse eines Mitarbeiters ändert, soll in Maske B die Gesamtzahl der Versicherten pro Krankenkasse neu berechnet werden.

Ich habe mir dafür folgenden Agenten geschrieben:

Sub Initialize
   Dim work As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   
   Dim s As New NotesSession
   Dim db As notesdatabase      
   Dim doc As NotesDocument
   Dim view As NotesView
   Dim Kürzel As NotesItem
   Dim item As NotesItem
   
   Set db = s.CurrentDatabase
   Set view = db.GetView("Krankenkassen Beitragssätze")
   Set doc = view.GetFirstDocument
   
   
   For i= 1 To view.AllEntries.Count
      Set kürzel = doc.GetFirstItem("Kassenkürzel")
      Set item = doc.ReplaceItemValue("Versicherte",AnzahlVersicherte(Kürzel.Text))
      Call doc.Save(True,True)
      Set doc = view.GetNextDocument(doc)
   Next i   
End Sub

Function AnzahlVersicherte(Kürzel As String)
   Dim s As New NotesSession   
   Dim db As NotesDatabase
   Dim view As NotesView
   Dim doc As NotesDocument
   Dim MitarbeiterKürzel As NotesItem
   Dim Vorname As NotesItem
   Dim Nachname As NotesItem
   Dim VersichertenName As String
   
     'Versicherte suchen und zuweisen   
   Set db = s.CurrentDatabase
   Set view = db.GetView ("aktive" )   
   Set doc = view.GetFirstDocument
   
   Dim i As Integer
   For i = 1 To view.AllEntries.Count
      Set MitarbeiterKürzel = doc.GetFirstItem("Kassenkürzel")   
      If mitarbeiterkürzel.Text = Kürzel Then         
         AnzahlVersicherte = AnzahlVersicherte +1
      End If
      Set doc = view.GetNextDocument(doc)
   Next i
End Function

Der Agent funktioniert einwandfrei, allerdings habe ich das Problem, dass die Option "nachdem ein Dokument erstellt oder geändert wurde" ein Zeitfenster von bis zu 30 min. einräumt. Der Agent muss aber direkt nach der Änderung starten.

Habe es mit dem Terminate-Ereignis der Maske A probiert, musste aber feststellen, dass er dann genau das geänderte Dokument nicht berücksichtigt, weil dieses ja noch "offen ist".

Welche Möglichkeiten gäbe es den Agent direkt nach Dokumentänderung zu starten?

In den Optionen stand noch, dass das Zeitfenster zur Laufzeit geändert werden kann. Ich habe hierzu aber nichts in der Hilfe gefunden.


Gruß
Demian

Gruß
Demian

Offline Lossa

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.404
  • Geschlecht: Männlich
    • alphaTrain
Re: Agent bei Dokumentänderung
« Antwort #1 am: 11.07.06 - 10:29:04 »
Hi,

benutzte das Postsave Ereignis.

Dann ist das Dokument gespeichert und dann kannst du es mit zählen.

Viele Grüße

Ulrich Lossa
Aktiv als Notes Admin und Entwickler seit Version 1.
Freier Trainer und Berater.
Zertifiziert für alle Versionen SA und DB.
HCL Certified Administrator
IBM Certified Advanced Application Developer (PCLP AD)
IBM Certified Advanced System Administrator (PCLP SA)
IBM Certified Instructor for System Administration and Application Development ( CLI)
IBM Certified Instructor for Websphere Software
IBM Certified Instructor for DB2
http://www.alphatrain.de
Lossa@alphatrain.de

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Agent bei Dokumentänderung
« Antwort #2 am: 11.07.06 - 10:53:42 »
Hallo Lossa,

genau das wars. Vielen Dank, es funktioniert einwandfrei.

Das Postsave-Ereignis ist mir irgendwie noch gar nicht aufgefallen  :)

Gruß
Demian
Gruß
Demian

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz