AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
05.02.12 - 15:25:05
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino 7
| |-+  ND7: Entwicklung (Moderatoren: eknori, Glombi, koehlerbv)
| | |-+  Agent bei Dokumentänderung
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Agent bei Dokumentänderung  (Gelesen 389 mal)
Demian
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 558



« 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

Gespeichert

Gruß
Lossa
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1400



WWW
« Antworten #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.

Gespeichert

Viele Grüße

Ulrich-Thomas Lossa
Aktiv als Notes Admin und Entwickler seit Version 1.
Freier Trainer und Berater.
Zertifiziert für alle Versionen SA und DB.
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
Demian
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 558



« Antworten #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  Smiley

Gruß
Demian
Gespeichert

Gruß
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: Tinte / Toner günstig