Autor Thema: Letzter Author in ein Feld eintragen  (Gelesen 6713 mal)

Offline LotusBleifrei

  • Aktives Mitglied
  • ***
  • Beiträge: 136
  • Geschlecht: Männlich
  • ja nee, is klar...
    • www.aarensan.com
Letzter Author in ein Feld eintragen
« am: 04.03.04 - 15:03:03 »
Hallo,

ich denke mal wieder ein einfaches Ding für euch.
Ich habe ein Feld, in diesem Feld wird der Author eingetragen der zuletzt etwas in der Maske abgespeichert hat.

Nun kann ich ja für das Feld einen Typ eintragen:
Typ: Author => Berechnet zur Anzeige

danach trage ich noch den Wert für das Feld @Author ein!

Sobald ich einen neuen Eintrag über diese Maske mache, dann trägt er mir auch fein und richtig den Author ein!

Aber sobald ich einen vorhandenen Datensatz öffne und bearbeite und anschliessend speichere dann wird der zuletzt genannte nicht Angezeigt es steht immer noch der Ersteller im Feld. Ich würde aber gerne die Person drinstehen haben die zuletzt etwas verändert hat am Datensatz.

Was muss ich verändern am Feld?

MfG Deny
1 Domino-Cluster 6.5.1 auf W2kS
2 Domino 6.5.1 auf Win W2kS
¸,ø¤´°`¤ø,¸¸,»http://www.lachschon.de«,¸¸,ø¤´°`¤ø,¸

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Letzter Author in ein Feld eintragen
« Antwort #1 am: 04.03.04 - 15:14:00 »
1. Berechnet zur Anzeige speichert den Wert nicht ab

2. @Author sucht sich den Wert im Dokument zusammen, schau Dir mal die Designer-Hilfe zu dieser Funktion an, da steht genau, was zurückkommt.

3. Wenn Du protokollieren willst, wer das Dokument bearbeitet hat, dann tue das, indem Du den gegenwärtigen Benutzer (@Username) im QuerySave in eine Liste einträgst und diese mit abspeicherst.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
Re:Letzter Author in ein Feld eintragen
« Antwort #2 am: 09.03.04 - 10:42:46 »
Die Information muss nicht gesondert abgespeichert werden, da sie in dem Feld "$UpdatedBy" automatisch mitgeführt wird. Der Zugriff sollte über ein Feld erfolgen, welches nur zur Ansicht berechnet wird:

@If($UpdatedBy = "";@Name([CN];@UserName);@Subset($UpdatedBy;-1))

Da das Feld "$UpdatedBy" erst gefüllt wird, wenn das Dokument tatsächlich eine Revision erhält (sprich: ein vorhandenes Dokument wird erneut abgespeichert), erfolgt die Unterscheidung ob das Feld leer ist oder nicht.

Viele Grüße
Harry
Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Letzter Author in ein Feld eintragen
« Antwort #3 am: 09.03.04 - 11:12:02 »
Das stimmt nur bedingt, schau mal in der Designer-Hilfe den Eintrag zu $UpdatedBy an.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Glombi

  • Gast
Re:Letzter Author in ein Feld eintragen
« Antwort #4 am: 09.03.04 - 11:17:01 »
$UpdatedBy hat den Vorteil, dass damit auch der "wirkliche" Autor der letzten Änderung angezeigt wird. Wenn man mit Feldern und Querysave arbeitet, bekommt man es auf diese Weise nicht mit, wenn das Dokument von außen - bspw. per Agent oder Backendscript - geändert wurde.
Im dem Zusammenhang sei auch noch $Revisions genannt.
Leider gibt es zwischen beiden keine eindeutige Beziehung.
Aber die jeweils letzten Einträge der beiden Items liefern Name und Zeitpunkt zurück - ausser man ist in der Maske und speichert. Dann wird es nicht korrekt angezeigt.

Andreas

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Letzter Author in ein Feld eintragen
« Antwort #5 am: 09.03.04 - 11:20:39 »
Das braucht in jedem Fall ein Author-Feld, damit es wirklich tut, wie man es erwartet.

Ansonsten, wenn man vom System die gewünschten Auskünfte bekommt, sollte man das natürlich nutzen.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Letzter Author in ein Feld eintragen
« Antwort #6 am: 09.03.04 - 11:24:59 »
$UpdatedBy würde ich auch bevorzugen - es sei denn, man will maschinelle Änderungen ausblenden.
Wozu braucht es aber ein Autorenfeld ? Ein berechnetes Feld vom Typ Text tut es doch auch ...

Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Letzter Author in ein Feld eintragen
« Antwort #7 am: 09.03.04 - 11:29:48 »
Weil Domino das Feld sonst nicht wirklich nachführt. Siehe Hilfe
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
Re:Letzter Author in ein Feld eintragen
« Antwort #8 am: 09.03.04 - 11:31:15 »
@Semeaphoros

Die Hilfe sagt leider nur die halbe Wahrheit. Das Feld "$UpDatedBy" wird auch ohne Existenz eines Autorenfeldes in der Maske gefüllt.

Nachteil der Funktion @Authors ist, dass diese die Autorenfelder zurückgibt, so diese denn vorhanden sind, unabhängig davon, ob diese tatsächlich das Dokument bearbeitet haben oder nicht.

Viele Grüße
Harry
Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Letzter Author in ein Feld eintragen
« Antwort #9 am: 09.03.04 - 11:33:58 »
Es wird gefüllt, aber wie ich mal schmerzlich feststellen musste, nicht zuverlässig nachgeführt. Frag mich nicht, nach welchen Kriterien das Feld gefüllt wird, wenn kein Autor-Felf vorhanden ist, ein wirkliches Rekonstruieren ist jedenfalls ohne ein Autor-Feld im Dok nicht möglich. Nebst dem Problem, dass man den Zeitpunkt nicht dazu bekommt
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Letzter Author in ein Feld eintragen
« Antwort #10 am: 09.03.04 - 11:34:12 »
@Jens:
Nachführen bei Namensänderungen meinst Du ? Wenn dies denn gewünscht ist. Wenn, dann muss natürlich der Feldtyp "Autoren" sein.

@Harry:
Vorsichtig bei @Authors: Das kann man in diesem Zusammenhang überhaupt nicht verwenden. Und: Die Funktion gibt den Inhalt des *ersten* Autorenfeldes wieder (zumindest in R5)

Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Letzter Author in ein Feld eintragen
« Antwort #11 am: 09.03.04 - 11:36:55 »
Nein, nein, nicht bei Namensänderung. Nicht jedes Speichern (mit neuen Werten!) führt zu einem Nachtrag in $UpdatedBy, ausser wenn ein Autor-Feld drin ist. Daher auch der Text in der Hilfe. Damit ist das Feld in einem Dok ohne Zugriffssteuerung simpel nicht "History-Fähig".

Anders ausgedrückt: Die Designer-Hilfe hat guten Grund, das so zu schreiben, wie sie es schreiben, auch wenn sie keine Begründung dazu geben --- leider
« Letzte Änderung: 09.03.04 - 11:37:49 von Semeaphoros »
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Letzter Author in ein Feld eintragen
« Antwort #12 am: 09.03.04 - 11:44:22 »
Darüber bin ich noch gestolpert ... Man lernt eben dauernd noch dazu  ;D
Andererseits hatte ich mit $UpdatedBy noch nie ein Problem. Von nun an werde ich das aber mit äusserster Vorsichtig geniessen !

Merci,
Bernhard

Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
Re:Letzter Author in ein Feld eintragen
« Antwort #13 am: 09.03.04 - 11:45:19 »
@Harry:
Vorsichtig bei @Authors: Das kann man in diesem Zusammenhang überhaupt nicht verwenden. Und: Die Funktion gibt den Inhalt des *ersten* Autorenfeldes wieder (zumindest in R5)

Bernhard

Würde ich auch nie tun! Wie kommst du darauf?

Viele Grüße
Harry
Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Letzter Author in ein Feld eintragen
« Antwort #14 am: 09.03.04 - 11:49:58 »
Das ist mir zum Glück ziemlich früh mal passiert, dass ich glaubte, $UpdatedBy sei zuverlässig. Dann stellten wir mal fest, dass zwei Sachbearbeiter es nicht gewesen sein wollten, die sich nicht an die Konventionen gehalten haben, und es hätte nicht viel gefehlt, dass sie sich gegenseitig dauernd das Zeugs "korrigiert" hätten. Na ja, da stellte sich dann heraus, dass wir nicht zuverlässig feststellen konnten, wer den aktuellen Zustand abgespeichert hatte ...... Seitdem ......
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
Re:Letzter Author in ein Feld eintragen
« Antwort #15 am: 09.03.04 - 11:53:49 »
Nein, nein, nicht bei Namensänderung. Nicht jedes Speichern (mit neuen Werten!) führt zu einem Nachtrag in $UpdatedBy, ausser wenn ein Autor-Feld drin ist. Daher auch der Text in der Hilfe. Damit ist das Feld in einem Dok ohne Zugriffssteuerung simpel nicht "History-Fähig".

Anders ausgedrückt: Die Designer-Hilfe hat guten Grund, das so zu schreiben, wie sie es schreiben, auch wenn sie keine Begründung dazu geben --- leider


Allerdings stellt sich mir in diesem Zusammenhang die Frage, woher die LotusScript Eigenschaft "Authors" der NotesDocument Klasse ihre Informationen holt, wenn nicht aus dem $UpdatedBy-Feld. Ich glaube nicht an ein mysteriöses, von dem Benutzer nicht zugreifbares Feld, welches die gewünschten Informationen zuverlässig speichert. Die Redundanzen wären enorm und würden Performanceeinbrüche erzeugen, die nicht vertretbar wären.

Nach meiner Beobachtung passiert mit den Feldern "$UpdatedBy" und "$Revisions" folgendes: "$Revisions" wird bei jedem Speichern mit einem neuen Zeitstempel versehen. "$UpdatedBy" wird aktualisiert, wenn der aktuelle Bearbeiter nicht der letzte Bearbeiter ist. Das Problem bei diese Vorgehensweise ist, dass man zuverlässig nur den letzten Bearbeiter und die letzte Version abfragen kann. Eine echte Historie lässt sich daraus nicht ableiten.

Wenn du eine echte Historie mit allen Bearbeitern zu dem jeweils zugehörigen Speicherdatum haben willst, musst du wirklich eigene Felder mitführen. Hierzu sind Autorenfelder aber nur dann sinnvoll, wenn das Dokument und die Datenbank mit Hilfe von Autorenfeldern Zugriffsrechte festlegt. Ansonsten würde ich Textfelder mit Mehrfachwerten bevorzugen.

Viele Grüße
Harry
Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Letzter Author in ein Feld eintragen
« Antwort #16 am: 09.03.04 - 13:02:46 »
Kann nicht sein, der letzte Bearbeiter steht nicht immer an letzter Stelle im $UpdatedBy Feld. Das war ja genau das, was wir feststellen mussten, der letzte Bearbeiter lässt sich nicht zuverlässig feststellen.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
Re:Letzter Author in ein Feld eintragen
« Antwort #17 am: 10.03.04 - 13:40:04 »
Kann nicht sein, der letzte Bearbeiter steht nicht immer an letzter Stelle im $UpdatedBy Feld. Das war ja genau das, was wir feststellen mussten, der letzte Bearbeiter lässt sich nicht zuverlässig feststellen.

Dann stellen sich mir die folgenden Fragen:

1. Arbeitet die Eigenschaft "Authors" der Klasse "NotesDocument" zuverlässig?
2. Falls ja, wo holt sie ihre Informationen her?

Viele Grüße
Harry
Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Letzter Author in ein Feld eintragen
« Antwort #18 am: 10.03.04 - 14:03:44 »
Zuerst stellt sich die Frage, ob alle Bearbeiter im $UpdatedBy vorhanden sind oder nicht. Das weiss ich tatsächlich nicht mehr.

Dann stellen sich tatsächlich die Fragen, die Du hier aufgeführt hast.

Ich weiss es nicht, weil ich dort, wo es nötig ist, eine eigen History führe, das auch deshalb, weil bei $UpdatedBy ja auch kein Zeitpunkt dabei steht, und der ist manchmal wichtig.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz