Autor Thema: Counter für Maske  (Gelesen 3300 mal)

Offline chriss76

  • Junior Mitglied
  • **
  • Beiträge: 99
  • Ich liebe dieses Forum!
Counter für Maske
« am: 07.01.08 - 17:18:35 »
Hallo,

ich möchte gerne in einer Maske einen Counter einbauen, mit dem ich erkennen kann, wie häufig ein Dokument aufgerufen wurde, wenn es geöffnet wurde (QueryOpen?)

Am besten beim Öffnen des Dokuments sollte der Counter um 1 erhöht werden!
Wie kann ich das einbauen, sodass auch jeder, auch der nur Leseberechtigung hat, den Counter beeinflusst?

Hat jemand ein Beispielcoding in LS?

Vielen Dank im voraus

Euer Chris

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Counter für Maske
« Antwort #1 am: 07.01.08 - 17:38:09 »
Das wird sehr schwierig. Ich will nur mal einige Probleme nennen:
- Leser (für das Dokument - geregelt über Autorenfeld) können direkt in das Dokument gar nichts schreiben.
- Leser (via ACL) können in der ganzen Datenbank nichts hinterlassen
- Replizierkonflikte: Soll - abgesehen von den oben genannten Einschränkungen - direkt in das aufgerufene Dokument geschrieben werden, dann sind massive Replizierkonflikte vorprogrammiert
- Alternative: Jeder Aufruf des Dokuments erzeugt ein neues Dokument in dieser (oder einer anderen) DB mit (ggf.) wer und wann. Hierüber lassen sich die Aufrufe auch einfach zählen, aber das bläht natürlich die Datenbank (oder die "Zähl-DB") massiv auf.
- Alternative: Jeder Aufruf eines Dokuments erzeugt eine Mail an eine Mail-In-DB, die dort FIFO abgearbeitet werden und dann dort tatsächlich und ohne Replizierkonflikte pro Dokument in der eigentlichen DB "Zähldokumente" führen.
- Sicherheit: Dokumente kann man auch lesen, ohne sie zu öffnen  ;)  Issue bei der Mail-Lösung: Arbeitet jemand lokal, kann er die erzeugten Mails vor dem Versand aus der lokalen MAIL.BOX killen.

To be continued ... Und: In der Programmierung (insbesondere LS) sollte man hierfür schon recht fit sein.

Bernhard

Offline chriss76

  • Junior Mitglied
  • **
  • Beiträge: 99
  • Ich liebe dieses Forum!
Re: Counter für Maske
« Antwort #2 am: 09.01.08 - 17:20:29 »
Hallo Bernhard,

Danke für das Platzen des Traumes! ;-)

- Mail in box scheint mir zu aufwendig zu sein
- Replizierkonflikte lasse ich mal ausser acht, da die DB nur eine Infothek darstellen soll,
und lokale Kopie könnte es geben, will ich aber nicht beachten.
- dann gebe ich allen Besuchern Schreibrechte und werde es dann die Berechtigungen auf eine andere Art und Weise versuchen umzusetzen

Hast Du oder jemand anderes dann ein bisschen Beispiel LS Coding, an dem ich mich entlang hangeln könnte, damit ich ungefähr sehe, wie es zu tun ist?


Viele Grüsse und nochmal Danke

Chris

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Counter für Maske
« Antwort #3 am: 09.01.08 - 17:28:19 »
Replizierkonflikte lasse ich mal ausser acht, da die DB nur eine Infothek darstellen soll,
und lokale Kopie könnte es geben, will ich aber nicht beachten.

Chris, Du hast die Problematik nicht verstanden. Lese bitte nochmal aufmerksam mein Statement durch.

Bernhard

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Counter für Maske
« Antwort #4 am: 09.01.08 - 17:33:50 »
Wie lautet der Imperativ von "lesen"? ;)
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline WernerMo

  • @Notes Preisträger
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.050
  • Geschlecht: Männlich
Re: Counter für Maske
« Antwort #5 am: 09.01.08 - 17:34:07 »
Hallo Bernhard,

Chris, Du hast die Problematik nicht verstanden.

für mich klingt das eher "beleidigt", so als ob er es nicht verstehen will.
Da helfen dann auch gute Ratschläge nichts mehr, da muss (und wird) es erst richtig krachen, dass Dir geglaubt wird.

Gruß Werner
Gruß Werner
  o                                                  o   
 /@\  Nächster @Notes-Stammtisch  /@\  online Sept. 2020?
_/_\__________________________/_\_ Details folgen.

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Counter für Maske
« Antwort #6 am: 09.01.08 - 18:27:43 »
Habe das hier in meiner grabbelkiste gefunden


Code
  Sometimes it's nice to see just how many people have read documents in that Knowledge Datasbase that you've spent many days/weeks/years (delete as applicable) developing.
Here is a small formula that you can put into a document to store such information.
How it works:
Quite simply it creates a suite of profile documents for each document. Why? Well then you don't get any replication/save conflicts since the document is not changed in any way. 
Each profile contains a count and timestamp value. The first is how many times it has been read, the second is when it was first read.
Personally, I place this field (along with others like Author, Creation Date, Last Modification, Age of document etc.) 
into a subform called Document History on my master template. Now whenever I need such functionality in any database, it's instantly ready for use. 
     
Code:  Simply create a computed for display text field and insert the following:


profilename := "Document History Usage Count"+ @Text(@DocumentUniqueID);
timestamp := @Now;
count := @GetProfileField(profilename; "Count");
@If(@IsNewDoc | @IsDocBeingSaved;
@Do(@Set("count"; 0));
count=0;
@Do(@Set("count";1); @SetProfileField(profilename; "TimeStamp"; timestamp));
@Do(@Set("timestamp";@GetProfileField(profilename; "TimeStamp")); @Set("count"; count+1)));

@SetProfileField(profilename; "Count"; count);
"This Document has been accessed " + @Text(count) + " time(s) since " + @Text(timestamp; "D0T1S2") 



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
Re: Counter für Maske
« Antwort #7 am: 09.01.08 - 20:00:38 »
Ulrich, das für dann aber zu unsicheren Ergebnissen, sowie Repliken vorhanden sind. Ich befürchte zudem, dass irgendwo eine Grenze für ProfileDocs liegt, ähnlich wie bei Feldern.

Bernhard

Offline chriss76

  • Junior Mitglied
  • **
  • Beiträge: 99
  • Ich liebe dieses Forum!
Re: Counter für Maske
« Antwort #8 am: 17.01.08 - 15:04:09 »
Hallo eknori,

vielen Dank für Deine pragmatische Lösung, sollte ausreichen!

Viele Grüsse

Chris

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz