Domino 9 und frühere Versionen > ND8: Entwicklung

@Text(ReplicID;"*")

(1/3) > >>

Hendrik T.:
Ich muss euch mal wieder behelligen ;)

Es geht um einen Agenten, der unsere Datenbanken in einer Dafür angelegten Datenbank pflegen soll, als eine Art Übersicht. Idee ist es daher, die benötigten Daten der Anwendungen aus dem Katalog(7) (catalog.nsf) zu ziehen. Funktioniert so weit auch prima prima.

DOCH: Die Replic ID, wie sie angezeigt ist im Katalog und wir sie auch haben möchten, entsteht durch ein Feld berechnet zur Anzeige. Diese Berechnung bezieht sich auf ein anderes Feld (ReplicID), welches mit der Formel @Text(ReplicID;"*") die Replich ID (Ein Datum) in das von uns gewünschte Format überführt.

Unser Problem: Wie komme ich an das gewünschte Format? Die Methode "Evaluate" will er nicht, die Methode CStr$ wandelt das Datum einfach in eine Zeichenkette um, aber ändert sonst am Format nichts.

Ein Beispiel, wie das Format sich ändert:
ReplicID: 25.02.2002 13:40:52
Anzeige im Katalog nach der erwähnten @Formel: C1256B6B0045A8D3

Wie bekomme ich nun diese Umwandlung auch meinem Agenten beigebracht?

Achja: Notes Client ist 8.5.3

ascabg:
Hallo,

Der Beschreibung entnehme ich, dass es mit Script gemacht werden soll?

Wenn Ja.
Dann sie Dir doch mal die Klasse 'NotesDatabase' etwas genauer an.
Hier gibt es die Eigenschaft NotesDatabase.ReplicaID.


Andreas

Glombi:
Wer "will" kein Evaluate  ?

Also folgendes geht problemlos:

Dim session As NotesSession
   Dim db As NotesDatabase
   Dim dc As NotesDocumentCollection
   Dim doc As NotesDocument   
   Dim ret_eval As Variant
   Set session = New NotesSession
   Set db = session.CurrentDatabase
   Set dc = db.UnprocessedDocuments
   Set doc = dc.GetFirstDocument
   
   ret_eval = Evaluate( |@Text(ReplicaID;"*")|, doc )
   Msgbox ret_eval(0)

Andreas

Hendrik T.:

--- Zitat von: Glombi am 16.05.12 - 13:30:31 ---Wer "will" kein Evaluate  ?

Also folgendes geht problemlos:

Dim session As NotesSession
   Dim db As NotesDatabase
   Dim dc As NotesDocumentCollection
   Dim doc As NotesDocument   
   Dim ret_eval As Variant
   Set session = New NotesSession
   Set db = session.CurrentDatabase
   Set dc = db.UnprocessedDocuments
   Set doc = dc.GetFirstDocument
   
   ret_eval = Evaluate( |@Text(ReplicaID;"*")|, doc )
   Msgbox ret_eval(0)

Andreas

--- Ende Zitat ---

Einwandfrei, das funktioniert tadellos :)

In der Hilfe hat er mir nicht die | angezeigt für die Syntax. Die habe ich noch benutzt, jetzt macht er das genau wie gewünscht :)

Dank dir!

cebolina:

--- Zitat von: Hendrik T. am 16.05.12 - 13:35:53 ---In der Hilfe hat er mir nicht die | angezeigt für die Syntax. Die habe ich noch benutzt, jetzt macht er das genau wie gewünscht :)

--- Ende Zitat ---

Evaluate erwartet die Formel als String.
Du kannst die Formel mit "<Formel>", |<Formel>| oder {<Formel>} schreiben.
Also so:
"@Text(ReplicaID;"*")"
oder so:
|@Text(ReplicaID;"*")|
oder so:
{@Text(ReplicaID;"*")}

Da Evaluate mit " in der Formel schnell unübersichtlich wird, verwenden viele Entwickler eben | oder {}.

Gruß Stefan

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln