Autor Thema: Anwendername beim Öffnen eines Dokumentes in Liste wegschreiben  (Gelesen 2277 mal)

Offline Nuwanda

  • Frischling
  • *
  • Beiträge: 16
  • Geschlecht: Männlich
Hallo !

Habe noch eine weitere Frage bitte:

Wie kann ich beim Öffnen einen Dokumentes den betreffenden Usernamen "erfassen" und zum Beispiel in ein Feld "zuletzt_geöffnet_durch" wegschreiben ?

Versuche z. B. mit "computed for display", aber es geht irgendwie nicht so recht. Wahrscheinlich denke ich wohl zu sehr in der Basic-Schablone, wo ich ein Feld mit ...

zuletzt_geöffnet_durch=zuletzt_geöffnet_durch+Usernamen

füllen könnte.

Hintergrund:

Es soll möglich sein zu ersehen, wer alles ein Dokument geöffnet hat - als Dokumentenhistory sozusagen. Die Usernamen sollen tabellarisch untereinander weggeschrieben werden.

Vielen Dank für Eure Hilfe ...

Newbie-Grüsse,

Nuwanda
*- Expect nothing - be ready for anything -*

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
deine Formel ist ansatzweise schon richtig.
Frage; ist geöffnet bei dir = gelesen oder bedeutet das bei dir bearbeitet ( also in den edit modus gewechselt ) ?
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Computed for display heisst tatsächlich das, was es aussagt: Das wir berechnet zur Anzeige, aber niemals gespeichert.
So geht es also nicht.

Du stehst aber vor weiteren Problemen (die teilweise auch mit Formelsprache nur schlecht oder gar nicht gelöst werden können). Vorab aber das Leichte - Darstellung soclher Werte als Liste. Die Formel dafür lautet:
Feldname := Feldname : <NeuerWert>. Der Doppelpunkt als "Erzeuger" eines neuen Listeneintrages ist der casus knactus.

Jetzt aber zu Deinen wirklichen Problemen:
- Was passiert, wenn das Dokument nur zum Lesen geöffnet wird ? Ein berechnetes Feld wird dadurch nicht gespeichert.
- Es bleibt der Ausweg "LotusScript": Du füllst das Feld im PostOpen Event. A-Bär:
- Was ist, wenn Notes-typisch zwei Personen "gleichzeitig" (öffnen, aber noch nicht wieder schliessen" reicht hier als "gleichzeitig" öffnen) ? Du schreibst beim Öffnen in EIN Feld, beim Speichern gibt es Gemecker wegen Speicherkonflikt.
- Noch übler wird es, wenn Auf Server A und auf Server B das betreffende Dokument "gleichzeitig" (also zwischen zwei Replikationen) geöffnet wird: Dann gibt es Replizierkonflikte.

Sag' mal bitte genau an, was Du konkret erreichen willst. Das Thema ist einer Diskussion würdig, aber es geht eben weit tiefer als Du momentan ahnst: Du hast ein Problem wegen der Vorteile von Notes ;-)

Bernhard

PS: @Ulrich - weder die Formel noch der Feldtyp sind richtig ...

Offline Nuwanda

  • Frischling
  • *
  • Beiträge: 16
  • Geschlecht: Männlich
Danke für die Info ... melde mich nun (von der Arbeit aus) ab und mache mich auf den Heimweg. Melde mich dann später nochmal dazu, ok ?!

Danke und bis dann :)

Gruss ...

PS: geöffnet = gelesen
*- Expect nothing - be ready for anything -*

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Zitat
geöffnet = gelesen

dann wird es schwierig  ;)
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Ein zweiteiliger Script Ansatz der in solchen Fällen immer funktioniert, auch wenn das Dokument nur zum lesen geöffnet ist, ist über ein weiteres Dokument je Benutzer zu gehen. Kein Profildokument sondern ein normales Dokument.
In dieses Dokument baut man zwei Felder ein. Ein Multivalue Feld ein in das man jedesmal das Datum/Uhrzeit und die UNID des Dokumentes schreibt und ein Feld in dem der Benutzername drinsteht.  In Postopen Event fragt man ab, ob es mit für diesen Benutzer  an diesem Tag bereits ein Dokument gibt. Wenn ja, dann wird einfach das neue Datum und die UNID des Dokumentes an die bereits vorhandenen Einträge angehängt. Wenn nein, dann wird ein neues Dokument mit diesen Informationen erstellt. Das ist der Teil der für die Erstellung der Informationen verantwortlich ist.
Im zweiten Teil werden die erstellten Dokumente der vorhergehenden Tage (bei überschreitung der Datumsgrenzen) auf EINEM Server über einen Agent verarbeitet und dann in die Originaldokumente zurückgeschrieben.
Vorteil: Es kann keine Replikationskonflikte geben die sonst gerade bei verteilten Anwendungen zwingend auftreten
Nachteil: Die Informationen sind nicht sofort verfügbar. Bei Workflow Anwendungen die darauf angewiesen sind das schnell reagiert werden kann, kann das Probleme geben.

Thomas
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Nuwanda

  • Frischling
  • *
  • Beiträge: 16
  • Geschlecht: Männlich
Hallo und danke für die zahlreichen Antworten.

Scheint ja leider nicht so ganz zu funktionieren, wie ich es mir laienhaft vorgestellt hatte.

Um die Frage nach dem "was ich konkret erreichen möchte" zu beantworten:

Es sollen angehänge Dokumente via Notes verteilt werden, weil jeder Aussendienstler bei uns einen Notes-Account hat und via Replikation diese Sache recht unproblematisch durchzuführen ist. Als Kontrolle, ob ein Aussendienstler die Dateianhänge gelesen hat, sollte sein ID-Name als Listeneintrag mitgeführt werden. Somit wäre unsere Zentrale in der Lage festzustellen, ob die verteilten Dokumente tatsächlich gelesen wären. Naja ... ob der Mitarbeiter zumindest das Notes-Dokument geöffnet hat, in dem die Dokumente liegen.

Gruß,

Nuwanda
*- Expect nothing - be ready for anything -*

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Hallo,

nur so als Idee:

beim Öffnen oder Schließen des Dokumentes eine Mail in eine MAil-DB oder lokale Datenbank, die dann repliziert wird. Der User hat nur Archivar-rechte auf die DB, die dann eben regelmäßig repliziert werden muß => Push

als Subject den Usernamen und die DocID - und ggf. ein Trennzeichen...

das entspricht in ungefähr dem, was du haben willst.

Grüßle Toni :)

Offline Nuwanda

  • Frischling
  • *
  • Beiträge: 16
  • Geschlecht: Männlich
Hallo !

Vielen Dank für alle Antworten ...  ich kann Eure Hilfestellungen leider nur nicht so recht umsetzen, da es mir (noch) an dem nötigen Fachwissen fehlt.   ???

Habe mich mit meinen "hausinternen Auftraggeber" geeinigt, daß die betreffende Person, welche das Notes-Dokument öffnet, auf einen Button klicken soll, um damit zu bestätigen, daß er die Dokumentenanhänge (Attachments) zur Kenntnis genommen hat.

Habe also einen Button erstellt, mit folgender Formel: @Command([FileSave])

Dazu noch ein Listenfeld, in dem der User eingetragen werden soll.
Dort ist die Formel @Name([CN]; @Subset($UpdatedBy;-1)) hinterlegt, um den Namen zu erfassen.

Mein Problem ist nur: Wie kann ich eine Art Endlosliste erzeugen, bzw. die Einträge untereinander in das Listenfeld wegschreiben und anzeigen lassen, so das es wie folgt aussieht:

User1
User2
User3
etc ...

Meine Formel
doku_gelesen_von:= doku_gelesen_von : @Name([CN]; @Subset($UpdatedBy;-1))

funktioniert leider nicht *ratlos dasteh*

Vielen Dank nochmals für Eure Hilfe ...

Viele Grüße,

Nuwanda
*- Expect nothing - be ready for anything -*

Offline Nuwanda

  • Frischling
  • *
  • Beiträge: 16
  • Geschlecht: Männlich
Hurra ... habe ein Formel-Schnipsel gefunden, der funktioniert:

field doku_gelesen_von:=@trim(@Name([CN];@username):doku_gelesen_von);""


Topic geschlossen  :)

Viele Grüße,

Nuwanda
*- Expect nothing - be ready for anything -*

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Ich hab's mal schnell nachgebaut.

mein Feld heißt UserList, berechnet, Wert UserList

In der Maske habe ich eine Aktion "Zur Kenntnis genommen" mit folgender Formel:

_userList:=Userlist + @NewLine + @Name([CN];@UserName);
@SetField("UserList";_userList);
@Command([FileSave])

bei jedem Click auf die Aktion wird dem Feld ein neuer Eintrag hinzugefügt

Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Da es hier um R5 geht, muss Ulrichs Formel noch ergänzt werden durch ein führendes FIELD _userList := _userList.

HTH,
Bernhard

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Nö  ;D falsch !!

Richtig: FIELD UserList := UserList.
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Jo, nu isses perfekt.  ;)

Offline Nuwanda

  • Frischling
  • *
  • Beiträge: 16
  • Geschlecht: Männlich
Habe noch ein bißchen angepasst:

FIELD UserList := UserList + @NewLine + @Name([CN];@UserName) + " - " + @Text(@Modified);
@Command([FileSave])


Vielen Dank für Eure Mithilfe - Ihr habt mir sehr geholfen  :D

Gruss,

Nuwanda
*- Expect nothing - be ready for anything -*

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz