Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Jeremias am 04.05.11 - 11:55:21

Titel: Wie am elegantesten kopierte Dokumente erkennen.
Beitrag von: Jeremias am 04.05.11 - 11:55:21
Hallo,

folgendes Problem:
Mitarbeitern ist es verboten, per Copy & Paste Dokumente zu erstellen. Sie sollen die dafür vorgesehenen Actionbuttons verwenden.
Da es aber so bequem ist und eine Menge Arbeit erspart, ist die Versuchung stets gegenwärtig.
Um dies zu verhindern, habe ich die meisten Ansichten schon entsprechend modifiziert, um das Kopieren und Einfügen zu unterbinden.
Leider habe ich dies bei neuen Ansichten ab und zu vergessen anzupassen. Deshalb hat es heute morgen etwas "Theater" gegeben, weil diese "neue Lücke" sofort ausgenutzt wurde!

Nun, wie ich das in Zukunft verhindern kann, ist mir klar.
Allerdings soll nun zu Aufklärungszwecken, eine Ansicht erstellt werden, in der alle Dokumente angezeigt werden, die durch Copy&Paste entstanden sind.

Deshalb meine Frage, was zu diesem Zweck ein eleganter Weg wäre. Man müsste wohl irgendwie kucken bei welchen Dokumenten das Erstellungsdatum exakt gleich ist.... Aber mein Gefühl sagt mir, dass ich noch irgendwas übersehe...

Jemand ne gute Idee ?

Mfg
Titel: Re: Wie am elegantesten kopierte Dokumente erkennen.
Beitrag von: Peter Klett am 04.05.11 - 12:20:47
Nein, das Erstelldatum ist nicht gleich, denn wenn Du ein Dokument kopierst, bekommt es ein eigenes Erstelldatum.

M.E. ist es grundsätzlich nicht möglich, kopierte Dokumente zu erkennen, wenn Du nicht irgendwelche eindeutigen Felder im Dokument hast (z.B. ein beim Anlegen errechnetes Erstelldatum, das weicht dann vom Erstelldatum des Dokuments ab). Wenn Du sowas für die Zukunft eindeutig nachweisen willst, erstelle in den Masken ein Feld, berechnet beim Anlegen, das die UniversalID (@Text (@DocumentUniqueID)) enhält. Stimmen UniversalID und Feldinhalt nicht überein, ist das Dokument nicht auf dem vorgesehenen Weg erstellt worden.

Du könntest dann z.B. schon im PostOpen eine entsprechende Routine einbauen, die einen Hinweis ausgibt und das Dokument sofort wieder schließt. Ebenso könnten die Ansichten nur Dokumente zeigen, die nach der Bedingung gültig sind. Ideen gibt es dann viele.
Titel: Re: Wie am elegantesten kopierte Dokumente erkennen.
Beitrag von: Tode am 04.05.11 - 12:27:26
zunächst Mal: Verhindern würde ich es über einen Agenten, der reagiert "Wenn Dokumente eingefügt wurden".
Dann kann nicht ein Benutzer sich eine persönliche ANsicht erstellen, wo halt Dein code nicht drin ist...

Als Beispiel kannst Du den "(RenamePastedAccounts)" (oder so ähnlich) Agenten aus dem Domino 8.5.2- pubnames- Template nehmen.

Einziger Nachteil: du reagierst erst, NACHDEM das Paste stattgefunden hat, und musst halt per doc.Remove selbst aufräumen... Evtl. ist es besser, beide Mechanismen einzubauen (den Querypaste- Agent für den Fall, dass der erste Mechanismus ausgehebelt wird).

Im nachhinein kannst DU solche eingefügten Dokumente nicht mehr erkennen, die haben keinerlei Referenz zum original- Dokument, und das Erstellungs- / Änderungsdatum wird auch komplett neu gesetzt.

Tode
Titel: Re: Wie am elegantesten kopierte Dokumente erkennen.
Beitrag von: Jeremias am 04.05.11 - 12:58:41
Ok,
vielen Dank für Eure Antworten! Das mit dem Erstelldatum ist natürlich Blödsinn.
Nun habe ich zwar tatsächlich ein berechnetes Feld, welches das Erstelldatum anzeigt. Aber nützen tut mir das auch nix  :-:

Mir ist aufgefallen, dass die Information aus "$UpdatedBy", anscheinend die Historie des Originaldokumentes enthält...
Vielleicht lässt sich daraus was machen...

Es muss doch irgendeine Möglichkeit geben ???