Abfrage von "Initially Created" und "In this File Created" ?

  • hi,
    es gibt ja den @created befehl zur abfrage, wann
    das document erstellt wurde. gibt es irgendwie die
    möglichkeit anzufragen, wann das document in dieser
    datei erstellt wurde?
    hintergrund: unser außendiest erstellt in den lokalen
    repliken neue einträge und diese werden dann beim
    replizieren auf dem server erstellt. nun möchten wir
    wissen, wann das doc lokal und wann auf der server-
    replik erstellt wurde
    thx
    marc

    ......
    Dieser Eintrag wurde nach bestem Wissen und ohne Gewissen erstellt :hammer: ...

  • Kurz: Keine Chance.


    Lang: Es gibt dieses NICHT als eigenschaften im dokument, und deshalb sind diesen properties (noch) nicht erreichbar. Es könnte passieren das mit notes 6.5 oder 7.0 dieses endlich verfügbar wird, aber bis dahin.. keine chance..

  • Mit der C-API sollte es gehen.


    Siehe : NSFDbGetNoteInfo
    retNoteOID - Returns the populated ORIGINATORID (OID) structure containing the database creation time/date, note creation time/date, note sequence number, and the sequence time/date (when added to database).


    Bye
    Torsten

    Bye
    Torsten


    IBM Advanced Certified System Administrator - Lotus Notes and Domino 8.5

  • Hmm.. also wenn es möglich wäre, dann hast du trotzdem schlechte karten..
    Diese information kannst du nicht in das dokument schreiben, weil es damit das dokument ändern würde. Ohne die information im dokument zu haben würde es aber nicht anzeigbar sein.
    WENN du jetzt denkst das einen "einfache" agent dieses machen könnte, soll ich dich mal wirklich vorwarnen. Das wird NICHT klappen, und masive replication und Konflicte verursachen. Weil die information sich PRO replizierung ändert, und damit nach JEDER replication ändern wird, und der Agent würde nach jeder replication die feldwerte ändern, welches dann bei einen wirkliche änderung (user) sofort einen replizier konflict generieren würde. Mehr server betrieb wäre auch katastrophe vorprogrammiert.


    Solange es mit LS oder formel sprache nicht erreichbar ist, ist dieses leider nicht möglich zwecks ansicht verwendung.

  • Also nach einiges überlegen UND vorsichtigen tests kann ich den aussage machen das eine möglichkeit da ist dieses DOCH auszuwerten in eine Datenbank.
    Und zwar wie folgt:
    Über den API einen dokument collection erstellen mit diesen kriterien, und damit dann ein ordner füllen. Diesen ordner wäre dann gefüllt mit den dokumenten und damit ersichtlich.
    Nachteile:
    1) Es ist (da api) einen externe aufruf einer DLL, oder es ist ein server task.
    2) Es handelt sich um einen moment aufnahme, und bei den nächsten replication ist es wieder anders, ordner bleibt allerdings dann mit alte inhalt gefüllt..


    Dynamisch kann es dann auch nicht genannt werden...

  • Aloha!


    Tja, vielleicht stell ich mir das ja zu einfach vor, aber wenn du in der Form ein Author-Feld einbaust, das mit dem @Created-Wert gefüllt wird und als einzig berechtigten den User nimmst, sollte doch bei der Replizierung auf den Server der Wert nicht überschrieben werden. So weißt du, wann das Doc lokal erstellt wurde. In einem zweiten Feld kannst du dann abfragen, ob die DB auf dem Server liegt, und es dann (und nur dann) füllen lassen. Dann weißt du, wann es auf den Server repliziert wurde...


    Oder täusche ich mich?


    greetz
    RW

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Da täuscht du dich..
    Das feld muß von irgend ein mechanismus gefüllt werden, und der replicator wird das nicht machen, also muß irgend ein agent das machen.
    Den agent hat kein ZUGRIFF auf die information wann das dokument in der Datenbank angekommen oder geändert worden ist, wiel diese information nicht zur verfügung steht für diesen agent.
    Ausserden wenn IRGEND jemand ein dokument ändert wird nicht nur das feld selber geändert, sondern es werden verschiedene felder automatisch neu gespeichert ($Modified, $Revisions und noch anderen), Folge wäre damit das ein replizier und speicherkonflict auftauchen würde (wenn feldebene replication / replications konflicte mischen nicht an ist).

  • Hallo,


    wenn man eh schon an der DB rumschrauben muss, kann man es auch gleich richtig machen.
    Man braucht ein Feld in dem geschrieben wird ob es lokal oder auf dem Server erstellt wurde. Nennen wir es Maschine.
    Beim Erstellen von Dokumenten wird immer der Servername oder "Lokal" reingeschrieben.
    Dann brauchen wir ein Feld in dem die Zeit zu der es auf dem Server gelandet ist, reingeschrieben wird (Name: ServerZeit).
    Und schreiben wir noch einen freundlichen kleinen Agenten der losrennt wenn Dokumente erstellt oder geändert werden.
    Der schaut bei den Dokumenten nach, ob im Feld Maschine "lokal" steht (oder man schränkt die Dokumente über die agenteneigene Suche gleich darauf ein) und wenn ja trägt er bei ServerZeit die aktuelle Zeit ein und bei Maschine seinen eigenen. Wenn ein Server mit einem anderen repliziert rennt der Agent zwar auch los, findet aber keine Dokumente und es passiert nichts.
    Jetzt hast du aber nicht die ganz genaue Uhrzeit, weil der Agent nun nicht genau in dem Moment losrennt, wo die Dokumente ankommen, aber ich glaub da gibts 'nen anderen Hintergrund der sicher eher in Stunden ausdrücken lässt.


    Bye
    Torsten

    Bye
    Torsten


    IBM Advanced Certified System Administrator - Lotus Notes and Domino 8.5