Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: CLI_Andreas_Schmidt am 28.02.03 - 11:55:29
-
Hallo an alle,
ich bräuchte ein Script, was mir Daten (Name, wann, Inhalt) beim Löschen eines Dokuments in ein Berichtsdokument schreibt.
Hat da jemand was für mich ?
Gruss
Andreas.Schmidt@lotus-schmidt.de
-
ich habe sowas mit einer Log db gemacht
- Abfangen der Aktion im Querydocumentdelete
- Infos über den Benutzer abfragen
- log db öffnen - einen Eintrag in das rtf Feld des letzten doks machen, falls eine gewisse Grösse überschritten wird ein Neues dok anlegen - Vorgang war genauso wie in der log.nsf.
cu
-
Super danke. Prima. Das reicht mir schon als Stütze.
;D
Gruss
Andreas.Schmidt@lotus-schmidt.de
-
Hallo,
ich habe gerade die Antwort zu diesem Problen gelesen.
Ich soll für das Raumreservireungssystem unter Notes für gelöschte Dokumente eine eigenes Logfile in der Datenbank anlegen. Ich habe aber nur, aufgrund meiner geringen Lotus Script-Kenntnisse nur dieses Script zustande bekommen, welches jedes Mal ein neues Dokument mit den jeweiligen Daten erstellt. Könnt Ihr mir da weiterhelfen?
If note.Form(0) = "Reservation" Then
Dim Session As New notessession
Dim db As notesdatabase
Set db=session.currentdatabase
Dim doc As notesdocument
Set doc=db.createdocument
Dim feld As notesitem
Set view=db.getview("LogFile")
doc.form="LogArchiv"
Set feld=doc.appenditemvalue("ArchivFeld", note.ResourceName)
Set feld=doc.appenditemvalue("UserFeld", session.CommonUserName)
Set feld=doc.appenditemvalue("DatumvonbisFeld", note.CalendarDateTime)
Set feld=doc.appenditemvalue("RaumFeld", note.ApptUNID)
Set feld=doc.appenditemvalue("LoeschDatum", Now)
Call doc.Save(True, False)
Exit Sub
End If
Gruß + Danke
Marshuhn
-
Hi Marshuhn,
im Datenbankscript "QueryDocumentDelete" eine Funktion einbauen,
der das zu löschende Dokument übergeben wird um die Werte auszulesen.
So oder so ähnlich.
function CreateLogEntry(note as notesdocument)
If note.Form(0) = "Reservation" Then
Dim db As new notesdatabase("DeinServer", "DeinDBName")
Dim doc As notesdocument
Set doc = db.createdocument
doc.form="LogArchiv"
doc.ArchivFeld = note.ResourceName
doc.UserFeld = session.CommonUserName
doc.DatumvonbisFeld = note.CalendarDateTime
doc.RaumFeld = note.ApptUNID
doc.LoeschDatum = Now
Call doc.Save(True, False)
End If
end function
-
Kurz, knackig und prägnant ;-)
Und wenn es die Ressourcen-DB selber sein soll, in der geloggt wird, dann heißt es:
Dim session as New NotesSession
Set db = session.CurrentDatabase
Aber Obicht: Bei jedem Update der Reservierungs-DB mit einem neuen Template von Lotus sind Deine Änderungen auch wieder dahin.
Weiterhin mußt Du natürlich unbedingt im QueryDocumentDelete abfangen, daß nicht Deine Log-Dokumente selber gelöscht werden. Das kannst Du ja aus dem bereits vorhandenen Code im Event gut ableiten.
HTH,
Bernhard
-
Recht herzlichen Dank für die schnelle Hilfe.
Gruß + Danke
Marshuhn