Autor Thema: @Text(ReplicID;"*")  (Gelesen 4078 mal)

Offline Hendrik T.

  • Frischling
  • *
  • Beiträge: 33
@Text(ReplicID;"*")
« am: 16.05.12 - 12:22:36 »
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

Nur ein Praktikant, der sich mit diversen Notes (8.5) Applikationen rumärgern darf ... ;)

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: @Text(ReplicID;"*")
« Antwort #1 am: 16.05.12 - 12:59:25 »
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

  • Gast
Re: @Text(ReplicID;"*")
« Antwort #2 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

Offline Hendrik T.

  • Frischling
  • *
  • Beiträge: 33
Re: @Text(ReplicID;"*")
« Antwort #3 am: 16.05.12 - 13:35:53 »
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

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!
Nur ein Praktikant, der sich mit diversen Notes (8.5) Applikationen rumärgern darf ... ;)

Offline cebolina

  • Senior Mitglied
  • ****
  • Beiträge: 386
  • Geschlecht: Männlich
Re: @Text(ReplicID;"*")
« Antwort #4 am: 16.05.12 - 15:05:22 »
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 :)

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
Server: Lotus Domino 9.0.1FP4 HF70
Client: Release 9.0.1FP6

Offline ghostmw

  • Aktives Mitglied
  • ***
  • Beiträge: 201
  • Geschlecht: Männlich
    • BELOS - Raum+Ressourcenmanagement unter Lotus Notes
Re: @Text(ReplicID;"*")
« Antwort #5 am: 16.05.12 - 15:42:55 »
äähhh ...

sorry nicht ganz

bei
Zitat
"@Text(ReplicaID;"*")"
müssen die " in der Formel escaped (=maskiert) werden, indem man ein weiteres " voranstellt, also wäre es so dann syntaktisch richtig.

"@Text(ReplicaID;""*"")"
« Letzte Änderung: 16.05.12 - 15:44:29 von ghostmw »
Grüße
Marco Weller
Lotus Domino / Lotus Notes seit 1996 (ab 4.5x)

Offline cebolina

  • Senior Mitglied
  • ****
  • Beiträge: 386
  • Geschlecht: Männlich
Re: @Text(ReplicID;"*")
« Antwort #6 am: 16.05.12 - 15:55:20 »
Marco, Danke für den Hinweis.
Server: Lotus Domino 9.0.1FP4 HF70
Client: Release 9.0.1FP6

Offline ghostmw

  • Aktives Mitglied
  • ***
  • Beiträge: 201
  • Geschlecht: Männlich
    • BELOS - Raum+Ressourcenmanagement unter Lotus Notes
Re: @Text(ReplicID;"*")
« Antwort #7 am: 16.05.12 - 15:58:59 »
... gerne ...  :)
Grüße
Marco Weller
Lotus Domino / Lotus Notes seit 1996 (ab 4.5x)

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: @Text(ReplicID;"*")
« Antwort #8 am: 16.05.12 - 16:11:50 »
Was aber die Aussage unterstützt, dass es unübersichtlich wird. Gleiches gilt für |, wenn man das irgendwo angibt, z.B. als ODER in einer Selektionsformel in einem db.Search.

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: @Text(ReplicID;"*")
« Antwort #9 am: 18.05.12 - 10:27:31 »
... deshalb verwende ich standardisiert die geschweiften Klammern...
Grüßle Toni :)

Offline cebolina

  • Senior Mitglied
  • ****
  • Beiträge: 386
  • Geschlecht: Männlich
Re: @Text(ReplicID;"*")
« Antwort #10 am: 18.05.12 - 10:44:32 »
Vielleicht wäre es hilfreich, wenn Axel in seinem Best-Practice-Aritkel zu Evaluate http://atnotes.de/index.php/topic,28334.0.html die Problematik aufnimmt und ein paar erläuternde Worte findet?

Gruß Stefan
Server: Lotus Domino 9.0.1FP4 HF70
Client: Release 9.0.1FP6

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: @Text(ReplicID;"*")
« Antwort #11 am: 18.05.12 - 12:40:47 »
Ist angekommen. Ich werde mal sehen was sich daraus machen lässt. Im Moment fehlt mir aber leider ein bisschen die Zeit dazu.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz