Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Fbaum am 12.03.03 - 09:00:48

Titel: Protokoll erstellen
Beitrag von: Fbaum am 12.03.03 - 09:00:48
Hallo,
gibt es eine Möglichkeit in einer DB ein Log mitlaufen zu lassen das protokolliert wer, was wann geöffnet oder gelöscht hat?
Ist sowas möglich??
Bei den Datenbankeigenschaften sehe ich ja nur wer Zugriff hatte und gelesen/geschrieben hat.
Ich möchte aber genau sehen was die User machen...
Danke für Eure Info.
Gruß FBaum
Titel: Re:Protokoll erstellen
Beitrag von: klaussal am 12.03.03 - 09:21:02
@fbaum,

mir ist sowas nicht bekannt. habe mal eine lösung gesehen, aber die war handgestrickt.
ausserdem ist eventl. die rechtliche seite zu bedenken. das geht so ein bisschen in die richtung "überwachung der mitarbeiter" .....
Titel: Re:Protokoll erstellen
Beitrag von: Fbaum am 12.03.03 - 09:23:32
Ja, dachte mir schon, daß sowas selbst gemacht werden muss...
Es geht nur darum, daß verschiedene User auf der DB Löschrechte haben und diese auch brauchen. Nun ist es jedoch schon vorgekommen, daß ein User was gelöscht hat. Dies kann jedoch nicht mehr nachvollzogen werden, wann er es gelöscht hat.
Deswegen die Frage nach einem Log.
Gruß FBaum
Titel: Re:Protokoll erstellen
Beitrag von: klaussal am 12.03.03 - 09:26:39
man muss in alle masken in die entsprechenden events per script (?) einbauen, was wer gemacht hat, also so eine art doc "log" kreieren.
Titel: Re:Protokoll erstellen
Beitrag von: Fbaum am 12.03.03 - 09:29:35
Kann mir jemand sagen, wie ich das genau machen soll.
Was in das Script rein mus...???
Titel: Re:Protokoll erstellen
Beitrag von: eknori am 12.03.03 - 09:32:41
guckst du hier

http://eknori.dyndns.org/knowledge/devidea.nsf/Alpha/65B32A1066F1B3EA802568B900224E60?OpenDocument

 ;D
Titel: Re:Protokoll erstellen
Beitrag von: Fbaum am 12.03.03 - 09:56:48
Hi,
@eknori
hat irgendwie nicht so wirklick funktioniert.
Es kommt kein Fehler, ich kanns nicht debuggen...
Was muß da noch angepasst werden?
Das Script kommt in die View rein oder?
Danke schon mal....
Titel: Re:Protokoll erstellen
Beitrag von: klaussal am 12.03.03 - 10:14:40
... nein, in das datenbankscript im event "postdocumentdelete".
man LESE die überschrift.. ;D

zum testen: datenbak öffnen, doc zum löschen markieren, jetzt debugger einschalten und F9 drücken.
Titel: Re:Protokoll erstellen
Beitrag von: Fbaum am 12.03.03 - 10:19:06
Ha, genau so hab ich´s ja schon gemacht. ;D Es kommt aber kein Debugger...
Das Dokument ist gelöscht und ich sehe nicht´s was anderst wäre...
Titel: Re:Protokoll erstellen
Beitrag von: Monster am 12.03.03 - 10:36:34
hallo

ich benutze dieses Script im NAB, so kann ich sehen wer eine Speicherung an den Personen - bzw Gruppendokumente vorgenommen hat.

Beispiel für Personendokument
Einfach in QuerySave
Sub Querysave(Source As Notesuidocument, Continue As Variant)
   Dim s As New NotesSession   
   Dim db As NotesDatabase   
   Dim doc As NotesDocument
   Dim profile As NotesDocument
   Set doc = Source.Document
   
   
   'Set profile=doc.ParentDatabase.GetProfileDocument("PublicDirectoryProfile")
   'Change to REAL name of directory profile
   Set profile=doc.ParentDatabase.GetProfileDocument("DirectoryProfile")
   If profile.GetItemValue("SecureInetPasswords")(0)="1"  Then
      Call doc.ReplaceItemValue("$SecurePassword","1")
   End If
   
   Dim l As NotesLog   
   Set db = s.CurrentDatabase            
   Set l = New Noteslog  (db.Title & " (" & db.Filename & ")")
   Call l.OpenNotesLog ("SERVER", "logs\adminlog.nsf")
   Call l.logAction ( "Speicherung Person: " & Source.FieldgetText("Firstname") &" " & Source.FieldgetText("Lastname") &" - - - " &_
   " 1 Shortname : " & Source.FieldgetText("shortname") &_
   " 2 Fullname : " & Source.FieldgetText("FullName") &_
   " 3 MailSystem : " & Source.FieldgetText("MailSystem") &_
   " 4 MailServer : " & Source.FieldgetText("MailServer") &_
   " 5 MailFile : " & Source.FieldgetText("MailFile") &_
   " 6 Mailadresse : " & Source.FieldgetText("Mailaddress") &_
   " 7 Internetadresse : " & Source.FieldgetText("InternetAddress")  )
   
End Sub

Und hier für die Löschung
unter RESSOURCEN\ANDERE\DATNEBANKSCRIPT
Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
   
   Dim dc As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim l As NotesLog
   
   Set db = session.CurrentDatabase                  
   Set l = New Noteslog  (db.Title & " (" & db.Filename & ")")
   Call l.OpenNotesLog ("SERVER", "logs\adminlog.nsf")
   
   Set dc=Source.Documents
   Set doc = dc.GetFirstDocument            
   While Not doc Is Nothing      
      Call l.logAction ( "Löschung : " & doc.Firstname(0) & " " & doc.Lastname(0) & doc.Listname(0))
      Set doc = dc.GetNextDocument ( doc )
   Wend
   
End Sub

Du musst natürlich die Datenbank im Verzeichnis anlegen,
diese kannst du ja dann noch bearbeiten.
Nach Gruppen....

Man hat eine gute Übersicht über vergangene Änderungen , an Peronen- bzw Gruppendokumente.


Wichtig ist das auch jeder der eine Änderung am NAB durchführen darf, Zugriff auf die Log-DB hat , sonst kommt eine Fehlermeldung.
Gruss

Monster
Titel: Re:Protokoll erstellen
Beitrag von: Till_21 am 12.03.03 - 11:01:46
Ha, genau so hab ich´s ja schon gemacht. ;D Es kommt aber kein Debugger...
Das Dokument ist gelöscht und ich sehe nicht´s was anderst wäre...


schliess den designer und zur not auch den client...
dann nochmal...
Titel: Re:Protokoll erstellen
Beitrag von: Fbaum am 14.03.03 - 09:10:54
@eknori @klaussal...
nachdem ich das script ins Datenbankscrip stellt funzt wunderbar...
Besten Dank für Eure Hilfe... @all
Gruß FBaum
Titel: Re:Protokoll erstellen
Beitrag von: ata am 14.03.03 - 12:05:11
... ich übernehme Dokumente, die gelöscht werden in eine Waste-DB - eine Löschung im eigentlichen Sinn lasse ich nicht zu. Die Waste-DB wird dann  von Zeit zu Zeit wieder geputzt...

ata