Domino 9 und frühere Versionen > Entwicklung
Feldänderungen festhalten
KiTaMann:
Guten Morgen zusammen,
als Script-Anfänger stehe ich vor folgendem Problem:
Ich möchte die Änderungen an einem Dokument feldweise dokumentieren und jede Änderung in einem Änderungsdokument festhalten.
Dabei bin ich folgendermaßen vorgegangen:
Im PostOpenEvent des zu beobachtenden Dokuments wird die Prozedur AenderungenAufzeichnen aufgerufen.
Diese Prozedur hält den Inhalt der einzelnen Felder nach dem Öffenen des Dokuments fest, also
Sub AenderungenAufzeichnen (Source as NotesUIDocument)
Set doc = Source.Document
If Source.IsNewDoc Then Exit Sub
Feld1Anfang = Source.FieldGetText("Name")
usw....
Wenn der Benutzer das Dokument speichern möchte, rufe ich über den QuerySave-Event folgende Funktion auf:
Function Aenderungen (Source as NotesUIDocument) As Integer
Dim session As New NotesSession
Dim uiws As New NotesUIWorkspace
Dim db As NotesDatabase
Dim uidoc As NotesUiDocument
Dim Doc As NotesDocument
Dim Feld1Ende As String
usw...
Feld1Ende = Source.FieldGetText("Name")
usw....
Aenderungen = False
If Not source.IsNewDoc Then
If Strcompare(Feld1Ende, Feld1Anfang, 5)<>0 Then
Aenderungen = True
Set Doc = New NotesDocument(db)
Doc.Form = "Protokoll"
Doc.Bemerkungen = | Der Name wurde von | & |"| & Feld1Angang & |"| & | auf | & |"| & Feld1Ende & |"| & | geändert|
Doc.AktuellesDatum = Today
usw...
End If
Laut Debugger bekomme ich keine Fehlermeldung, auch stehen die Anfangsdaten in gewünschter Form bereit.
Wo liegt der (Denk-)fehler? Wer kann mir weiterhelfen?
Danke schonmal
Grüße
Klaus
Axel:
Auf den ersten Blick sehe ich jetzt mal keinen Denkfehler.
Dass der Debugger keinen Fehler meldet ist erstmal ein Zeichen, dass kein grober Fehler vorliegt. Aber hast du mal deine Variableninhalte genau untersucht? Was steht wann in welcher Variable und muss/darf das zu diesem Zeitpunkt drin stehen.
Außerdem müssen die Variablen Feld1Anfang,... global sein.
Axel
KiTaMann:
Hallo, Axel,
danke für die prompte Antwort.
Hatte vergessen zu erwähnen, dass ich die Anfangswerte in den Globals | (Declarations) deklariert hatte, um sie später verfügbar zu machen.
Mein Problem ist, dass ich nicht genau nachvollziehen kann, was nicht funktioniert, da sich der Debugger zu einem gewissen Punkt einfach "verabschiedet" und seine Pflichten vernachlässigt; sonst wäre das Problem sicherlich besser einzugrenzen.
Fakt ist, dass keine neuen Änderungsdokumente erstellt werden, hierfür jedoch Maske und Felder vorhanden sind ???
Wie kann man denn das Debugger-Problem lösen?
Weiß hierauf jemand eine Antwort?
Klaus
Thomas Schulte:
Blöde Frage. Warum nimmst du nicht die History Klasse von Michael Woehrer. Die ist gut dokumentiert, sauber zu integrieren und von außen konfigurierbar, welche Felder überwacht werden sollen.
Die findest du hier im Forum und wenn du ein Integrationsbeispiel brauchst, auch im !!Help!!.
KiTaMann:
Danke, Thomas,
werde mich gleich auf die Suche danach machen...
Vielleicht fallen mir beim nächsten Problem ja "schlauere" Fragen ein ;D
Grüße
Klaus
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln