Moin,moin,
ich muss in einer "Schnittstellen-"DB den Status von Dokumenten überwachen. Es handelt sich hierbei um Auftragsnummern, die in einem fremden System eingelesen werden. In der DB neu erstellte Nummern müssen den Status N(ew) enthalten, damit diese im Fremdprogramm angelegt werden. Im Fremdsystem bereits vorhandene Nummern, die in der DB geändert wurden müssen den Status U(pdate) enthalten. Ich meine hier auch schonmal nen Beitrag zum Thema "Statusüberwachung" gesehen zu haben, finde ihn aber nicht mehr
Ich habe mir jetzt folgende Vorgehensweise für die Maskenereignisse überlegt:
Postopen:IsNewDoc auswerten und Ergebnis in globaler Variable (NewDoc) speichern. Wenn NewDoc = false, alle zu überprüfenden Feldinhalte ebenfalls in globalen Variablen speichern um diese im Postsave auf Änderungen zu prüfen.
Prüfen, ob bereits ein Status-Kennzeichen vorhanden ist (N = New, U = Update), da z.B. ein vorhandener Status "N" bis zur Schnittstellenbildung beibehalten werden muss, auch wenn zwischenzeitlich Änderungen erfolgt sind, da die Nummer ja sonst nicht im Fremdsystem angelegt wird. Diesen Status ggf. auch in globaler Variable speichern,
Querysave:Wenn NewDoc = false, zu überprüfende Feldinhalte in globalen Variablen speichern, um diese im Postsave mit den Feldinhalten aus Postopen zu vergleichen.
Postsave: Wenn NewDoc = true, dann DocStatus = „N“, sonst Feldinhalte aus Postopen mit Feldinhalten aus Querysave vergleichen und bei Änderungen DocStatus = „U“. Vorraussetzung für Status „U“, dass im Postopen nicht bereits Status „N“ vorhanden war. In dem Fall wird trotz Änderung Status „N“ beibehalten.
Bei der eigentlichen Schnittstellen-Bildung (Agent) wird das Statuskennzeichen dann wieder gelöscht.
Habe ich jetzt irgendwas grundlegendes vergessen, oder gehe ich irgendwo zu umständlich an die Sache ran? Bin für jegliche Tipps dankbar.
Gruß
Demian