Autor Thema: DocumentUniqueID wird beim Kopieren nicht neu gesetzt  (Gelesen 3062 mal)

Offline iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Hallo liebes Forum,

ich habe ein Dokument, in der ich ein Textfeld mit @Text(@DocumentUniqueID) mit einer eindeutigen Nummer fülle. Diese wird in einer Ansicht angezeigt.

Nun ist mir aufgefallen, dass wenn ein User das Dokument in einer Ansicht mit STRG C und V kopiert und einfügt, das kopierte Dokument in dem Feld immer noch die Ursprungs-ID anzeigt. Erst nach öffnen und aktualisieren wird die richtige, neue ID angezeigt.

Gibt es eine Möglichkeit, das Dokument beim Einfügen gleich zu aktualisieren?

Vielen Dank für Eure Tipps

Thomas
Thomas von der IuK

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: DocumentUniqueID wird beim Kopieren nicht neu gesetzt
« Antwort #1 am: 16.07.15 - 17:02:00 »
Dazu musst Du Code schreiben, der auf das pasten reagiert: Das machst Du im PostPaste- Event der Ansicht, in der das kopieren passiert.

Leider kann man das nicht generell für eine ganze Datenbank hinterlegen, sondern Du musst daran denken, das in jeder Ansicht, die Du erstellst mitzuziehen...
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Re: DocumentUniqueID wird beim Kopieren nicht neu gesetzt
« Antwort #2 am: 16.07.15 - 17:10:10 »
Alles klar, sowas wie Postpast hab ich in den Eigenschaften des Dokuments gesucht, an die Ansicht  hab ich nicht gedacht.

Danke
Thomas von der IuK

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: DocumentUniqueID wird beim Kopieren nicht neu gesetzt
« Antwort #3 am: 16.07.15 - 22:27:50 »
ich habe ein Dokument, in der ich ein Textfeld mit @Text(@DocumentUniqueID) mit einer eindeutigen Nummer fülle. Diese wird in einer Ansicht angezeigt.

Wenn im Feld sowieso nur die UNID steht, warum verwendest du nicht gleich @Text(@DocumentUniqueID) in der Ansicht? Dann kannst du dir das Feld eigentlich ganz sparen.

Das mit dem PostPaste in den Ansichten ist immer eine lästige Sache... Es gibt mindestens eine Ansicht in der man es vergessen hat ;)

Gruß
Roland

Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Re: DocumentUniqueID wird beim Kopieren nicht neu gesetzt
« Antwort #4 am: 28.07.15 - 10:58:43 »
Sorry, war ein paar Tage nicht da.

Mir kommt es ja garnicht so sehr auf die Ansicht drauf an, Spalte mit der UniqueID wird nachher eh versteckt.

Mich stört die Tatsache, dass die kopierten Dokumente auch die UniqueID mitkopieren. In dem Feld steht ohne aktualisieren des Dokuments was falsches drin. Wenn ich nun auf Basis dieses Dokuments ein weiteres Dokument erstelle, und dort die UniqueID des markierten Dokuments übernehmen möchte, dann stehen da falsche Werte drin.

Zur Erläuterung:

Ich möchte unterschiedlichste Dokumente auf Basis dieser UniqueID eines "Hauptdokumentes" später in einer Ansicht bündeln.

Wenn das  Hauptdokument nun dupliziert wird ohne es zu verändern, und dabei das Feld mit der UniqueID falsch ist, funktioniert das Ganze fehlerhaft.
Thomas von der IuK

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: DocumentUniqueID wird beim Kopieren nicht neu gesetzt
« Antwort #5 am: 28.07.15 - 11:25:59 »
Das ist aber doch logisch, wie sollte Notes "von selbst" das ändern?

Angenommen Du kopierst ein Mitarbeiterdokument, bei dem der Name "Meier" steht. Das neue Dokument soll aber den Namen "Müller" bekommen, da musst Du das auch von Hand anpassen. Es ist schließlich nur ein ganz normales Item in dem Dokument, das kopiert wird.

In Deinem Fall ist es so, dass sich der Inhalt des Feldes aus einer Eigenschaft des Dokumentes berechnet. Da kannst Du einfach generell einen Agenten laufen lassen, der das bereinigt

FIELD MeinFeld := @Text (@DocumentUniqueID)

Wie ist denn das Feld in der Maske definiert? Berechnet biem Anlegen? Du kannst es auch auf "Berechnet" stellen, denn derjenige, der ein Dokument kopiert, wird es danach doch wohl noch anpassen wollen, und beim Speichern wird dann die richtige ID gespeichert (sofern das neue Dokument bearbeitet wird, und nicht das alte).

Das Verhalten ist für mich völlig natürlich. Du nutzt eine Steuerung außerhalb der Notes-Standard-Eigenschaften, dann musst Du die auch selbst verwalten.

Wir machen in unseren Systemen übrigens genau das gleiche, dort haben wir auch Felder, in denen die ID des Dokumentes gespeichert ist, und es gab auch einen Grund dazu, weshalb wir das gemacht haben (ist aber schon sehr lange her). In unseren Anwendungen verbieten wir, Dokumente per Zwischenablage einzufügen. Wenn doch eine Kopie eines Dokuments benötigt wird, gibt es einen Kopie-Button, mit dem eine Kopie des markierten Dokuments erstellt und dieses geöffnet wird. So hat ein gespeichertes Dokument immer die richtige ID gespeichert. Und für Admins, die auch über die Zwischenablage kopieren dürfen, gibt es ein SmartIcon, um das Feld zu korrigieren.

Offline iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Re: DocumentUniqueID wird beim Kopieren nicht neu gesetzt
« Antwort #6 am: 28.07.15 - 12:06:56 »
Klar ist das im Grunde logisch, dass der Inhalt mit kopiert wird.
Daher ja auch meine Frage ganz oben, wie ich es schaffe, das Dokument gleich beim Einfügen wieder zu aktualisieren.
Da das Feld mit der UniqueID auf "berechnet" gestellt ist, wäre dann dieses Problem behoben.

Das Kopieren zu unterbinden habe ich in einer anderen DB auch schon eingesetzt, sollte kein Problem sein.

Aber es hätte ja vielleicht auch eine elegantere Lösung geben können, die mir  nicht geläufig ist.
Und zumindest die Sache mit dem PostPaste Event in der Ansicht war schonmal was neues für mich.

Und du hast natürlich Recht, in der Regel wird das neue Dokument noch bearbeitet werden müssen, da sich doch ein paar Daten im neuen Dokument immer ändern.
Thomas von der IuK

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: DocumentUniqueID wird beim Kopieren nicht neu gesetzt
« Antwort #7 am: 28.07.15 - 12:27:01 »
... Und du hast natürlich Recht, in der Regel wird das neue Dokument noch bearbeitet werden müssen, da sich doch ein paar Daten im neuen Dokument immer ändern.
Aber die Wahrscheinlichkeit ist hoch, dass nach dem Kopieren das alte Dokument geändert wird, da man i.d.R. als Endanwender nicht erkennen kann, welches Dokument das neue ist, und dann hat das neue ungeänderte Dokument die falsche ID

Driri

  • Gast
Re: DocumentUniqueID wird beim Kopieren nicht neu gesetzt
« Antwort #8 am: 28.07.15 - 13:00:27 »
Ich würde Dir empfehlen, von dem PostSave-Event in den Ansichten Abstand zu nehmen. Wenn neue Ansichten dazukommen, mußt Du immer daran denken und dann hast Du immer noch das Problem, daß sich ggf. Anwender private Ansichten erstellen.

Sauber bekommst Du das in meinen Augen nur hin, wenn Du das so wie Peter es skizziert hat machst. Oder Alternativ dir noch mal Gedanken beim Anlegen neuer "Antwort"-Dokumente machst.

Offline cg-home

  • Aktives Mitglied
  • ***
  • Beiträge: 172
  • Geschlecht: Männlich
  • atnotes = Retter in der Not
Re: DocumentUniqueID wird beim Kopieren nicht neu gesetzt
« Antwort #9 am: 28.07.15 - 13:03:58 »
da hat Peter Recht, ist uns auch schon oft so gegangen, dass dann das "alte" Dok verändert wurde
und wenn da z.B.: schon Antworten drang hingen, ist das Chaos perfekt.
Bei so heiklen DBs unterbinden wir das Kopieren generell oder machen es auch über eine Aktion.
Oder über einen Agenten getriggert auf das Ereignis "Wenn Dokumente eingefügt werden", das
spart uns die Anpassung aller Ansichten.
Darüber schreiben wir dann noch im Titel oder Subject ein " - Kopie" mit Datumscode, die Historie
geleert und befüllt mit "Kopiert von .... am ..... " usw.
Somit ist für den Benutzer ersichtlich welches die Kopie ist.

Gruß Christian
11     Server R11.0.1FP3 - Windows Server 2012R2
700   Clients R11.0.1FP3 - Windows Server 2012R2 über Citrix
Traveler R11 | PowerTools 14 | Ytria | DomNavigator

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz