Autor Thema: Wer und wann hat was am Dokument geändert (Feld $UpdatedBy und $Revisions)  (Gelesen 6985 mal)

Offline D. Roth.

  • Aktives Mitglied
  • ***
  • Beiträge: 111
  • Ich liebe dieses Forum!
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 ?



Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Ü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

Offline D. Roth.

  • Aktives Mitglied
  • ***
  • Beiträge: 111
  • Ich liebe dieses Forum!
Es arbeiten ca 150 User offline und 100 User online mit der DB !!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
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

Offline D. Roth.

  • Aktives Mitglied
  • ***
  • Beiträge: 111
  • Ich liebe dieses Forum!
gibt es vielleicht noch eine andere Lösung? Wir haben Dokumente die von 200 Leuten editiert werden.

 :'(

Glombi

  • Gast
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

Offline D. Roth.

  • Aktives Mitglied
  • ***
  • Beiträge: 111
  • Ich liebe dieses Forum!
Hi das mit dem Agent hört sich interessant an, wie genau soll dass ablaufen?

Glombi

  • Gast
Der Agent konnte periodisch die alten Versionen in eine separate Datenbank einfügen und dann in der ursprünglichen DB löschen.

Andreas

Offline D. Roth.

  • Aktives Mitglied
  • ***
  • Beiträge: 111
  • Ich liebe dieses Forum!
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 !!


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
!!Es muss doch einfachere Lösung in LN geben !!

Warum ?

Glombi

  • Gast
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

Offline Spalter

  • Aktives Mitglied
  • ***
  • Beiträge: 109
  • Mit der Lizenz zum Löschen!!!
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

Offline Packer

  • Frischling
  • *
  • Beiträge: 3
  • Geschlecht: Männlich
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

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Dafür kannst du mit Skript die Klasse aus diesem Thread 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 gibt es die Klasse.
« Letzte Änderung: 22.03.07 - 10:52:44 von MadMetzger »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz