Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: D. Roth. am 14.12.04 - 14:36:03

Titel: Wer und wann hat was am Dokument geändert (Feld $UpdatedBy und $Revisions)
Beitrag von: D. Roth. am 14.12.04 - 14:36:03
Hallo zusammen,
ich hab folgendes Problem ich will abfrage wer alles wann etwas an den Dokumente geändert hat. Dafür will ich die Felder $UpdatedBy und $Revisions auslesen ("Daduch keine Replizierkonflikte).  So nun zu dem Problem wenn der gleiche User z.B. 2 mal das Dokument ändert steht er nur einmal in der Feld $UpdatedBy aber es gibt zwei Revision Einträge.


Hat jemand eine Idee wie man dass Lösen kann ?


Titel: Re: Wer und wann hat was am Dokument geändert (Feld $UpdatedBy und $Revisions)
Beitrag von: koehlerbv am 14.12.04 - 14:39:04
Über diese beiden Systemfelder wirst Du das nicht hundertprozentig zuverlässig hinbekommen.
Wieviel Leute arbeiten denn mit der Applikation ? Vielleicht gibt es ein anderes praktikables Verfahren unter Vermeidung von Replizierkonflikten.

Bernhard
Titel: Re: Wer und wann hat was am Dokument geändert (Feld $UpdatedBy und $Revisions)
Beitrag von: D. Roth. am 14.12.04 - 15:00:49
Es arbeiten ca 150 User offline und 100 User online mit der DB !!
Titel: Re: Wer und wann hat was am Dokument geändert (Feld $UpdatedBy und $Revisions)
Beitrag von: koehlerbv am 14.12.04 - 15:08:21
Offline ? Ohne zu replizieren ? So richtig offline ist man mit ND doch nie  ;)

Angesichts der Userzahlen könntest Du Deine History auch in separaten Feldern führen. Beim Speichern wird ein Item generiert (wenn nicht schon vorhanden) namens "ModifiedBy_" (oder ein anderer Begriff Deiner Wahl). An den Begriff wird der Username angehangen. Inhalt: Was Du magst ...

Die History kann man dann natürlich nicht einfach in Feldern einer Maske präsentieren, sondern muss die von einer Routine hinter einem History-Button zusammengrabbeln und / oder im PostOpen und oder dem PostRecalc zusammenstellen.

HTH,
Bernhard
Titel: Re: Wer und wann hat was am Dokument geändert (Feld $UpdatedBy und $Revisions)
Beitrag von: D. Roth. am 15.12.04 - 10:24:27
gibt es vielleicht noch eine andere Lösung? Wir haben Dokumente die von 200 Leuten editiert werden.

 :'(
Titel: Re: Wer und wann hat was am Dokument geändert (Feld $UpdatedBy und $Revisions)
Beitrag von: Glombi am 15.12.04 - 10:30:45
Es bleibt die Möglichkeit der automatischen Versionierung. Dann wird bei jedem Speichern ein Antwortdokument angelegt  -sofern das in den Maskeneigenschaften eingestellt ist.
Aber bei derart vielen Änderungen bekommst Du da eine Menge Dokumente zusammen.
Da wäre dann ein Agent zum Archivieren gefragt.

Andreas
Titel: Re: Wer und wann hat was am Dokument geändert (Feld $UpdatedBy und $Revisions)
Beitrag von: D. Roth. am 15.12.04 - 10:42:45
Hi das mit dem Agent hört sich interessant an, wie genau soll dass ablaufen?
Titel: Re: Wer und wann hat was am Dokument geändert (Feld $UpdatedBy und $Revisions)
Beitrag von: Glombi am 15.12.04 - 10:53:25
Der Agent konnte periodisch die alten Versionen in eine separate Datenbank einfügen und dann in der ursprünglichen DB löschen.

Andreas
Titel: Re: Wer und wann hat was am Dokument geändert (Feld $UpdatedBy und $Revisions)
Beitrag von: D. Roth. am 15.12.04 - 11:04:19
Hmmmm , nur die DB hat ca. 200.000 Dokument wenn es jetzt von jedem Dokument z.B. 3 Antwortdokumente gibt dann sind das ca 600.000 ;-). Die dann auch noch repliziert werden.


!!Es muss doch einfachere Lösung in LN geben !!

Titel: Re: Wer und wann hat was am Dokument geändert (Feld $UpdatedBy und $Revisions)
Beitrag von: koehlerbv am 15.12.04 - 11:09:47
!!Es muss doch einfachere Lösung in LN geben !!

Warum ?
Titel: Re: Wer und wann hat was am Dokument geändert (Feld $UpdatedBy und $Revisions)
Beitrag von: Glombi am 15.12.04 - 11:21:05
Wieviele Felder können denn geändert werden?

Du kannst bspw. Änderungen nur noch per Dialogmaske zulassen und dann ein Mail senden, wer was geändert hat.
Es gibt meistens immer eine Lösung, man muss halt kreativ sein.

Den Satz
Zitat
Dafür will ich die Felder $UpdatedBy und $Revisions auslesen ("Daduch keine Replizierkonflikte). 
verstehe ich nicht - warum Replizierkonflikte?
Die gibt es doch eh, wenn soviele Leute an einem Dokument Änderungen vornehmen - es sei denn Du hast "Konflikte mischen" aktiv und alle ändern unterschiedliche Felder.

Andreas
Titel: Re: Wer und wann hat was am Dokument geändert (Feld $UpdatedBy und $Revisions)
Beitrag von: Spalter am 15.12.04 - 11:59:59
Hmmmm , nur die DB hat ca. 200.000 Dokument wenn es jetzt von jedem Dokument z.B. 3 Antwortdokumente gibt dann sind das ca 600.000 ;-). Die dann auch noch repliziert werden.


!!Es muss doch einfachere Lösung in LN geben !!



 ;)

Hallo Neon,

bau doch eine kleine Historie in die Dokumente ein. Schreib den NutzerNamen und die Änderungen rein. Aufwändig wird das, wenn Du genau wissen welches Feld wie geändert wurde.

Gruß
Spalter
Titel: Re: Wer und wann hat was am Dokument geändert (Feld $UpdatedBy und $Revisions)
Beitrag von: Packer am 22.03.07 - 09:52:19
Hallo,

könnte mir jemand schreiben, wie ich dieses umsetze?
Code
Aufwändig wird das, wenn Du genau wissen welches Feld wie geändert wurde.

Gruß
Packer
Titel: Re: Wer und wann hat was am Dokument geändert (Feld $UpdatedBy und $Revisions)
Beitrag von: MadMetzger am 22.03.07 - 10:29:34
Dafür kannst du mit Skript die Klasse aus diesem Thread (http://atnotes.de/index.php?topic=16422.0) benutzen. Die arbeitet mit Script. Falls du es selbst schreiben willst:
- alte Feldwerde im PostOpen merken
- im PostSave auf Änderungen prüfen
- dort dann auch Änderungen in geeigneter Form ausgeben
So arbeitet auch die Klasse aus dem verlinkten Thread. Eine Anleitung ist in dem Quelltext der Klasse enthalten.

EDIT: Hier (http://atnotes.de/index.php?topic=16422.0) gibt es die Klasse.