Autor Thema: Problem mit Evaluate und @Name  (Gelesen 3977 mal)

Driri

  • Gast
Problem mit Evaluate und @Name
« am: 21.10.04 - 16:32:35 »
Hallo,

ich habe einen Agent fürs Web, der per WebQuerySave getriggert werden soll. Innerhalb dieses Agents möchte ich aus einem berechneten Feld (enthält @UserName) den Wert auslesen und mir den gekürzten Namen ausgeben lassen.
Ich probiere das mit Evaluate und @Name, allerdings kriege ich da keinen Wert raus.

Ich habe mir mal folgenden simplen Agent gebaut, mit dem ich das Verhalten simulieren wollte, bekomme als Fehlermeldung allerdings immer "Operation failed".

Bin ich zu blöde, hab ich Tomaten auf den Augen oder will Evaluate schlicht nicht mit @Name zusammenarbeiten ?

Zitat
   Dim ws As New NotesUIWorkspace
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim view As NotesView
   Dim doc As NotesDocument
   Dim user As String
   Dim formel As String
   
   Set db = session.CurrentDatabase
   Set view = db.GetView("VThema")
   Set doc = view.GetFirstDocument
   
   formel = "@Name([CN];"+doc.CreatedBy(0)+")"
   
   user = Evaluate(formel, doc)
   
   Call ws.Prompt(PROMPT_OK, "Test", user)
« Letzte Änderung: 21.10.04 - 17:42:29 von Driri »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit Evaluate und @Name
« Antwort #1 am: 21.10.04 - 16:38:00 »
Evaluate gibt auf jeden Fall ein Variant zurück. Du darfst user also nicht als String deklarieren und musst das Ergebnis dann mit user (0) abfragen.

(Habe aber eben das nur kurz überfliegen können. K.A., ob noch was klemmt).

HTH,
Bernhard

Driri

  • Gast
Re: Problem mit Evaluate und @Name
« Antwort #2 am: 21.10.04 - 16:50:06 »
Hi Bernhard,

hab ich geändert, die Fehlermeldung bleibt leider die selbe. Ich hab mir das mal im Debugger angesehen.

Was ich ein wenig merkwürdig finde ist, daß die Variable "formel" folgenden Wert enthält :

@Name([CN];CN=User/OU=OU/O=ORG/C=DE)

Müßte der Wert nicht eigentlich in Anführungszeichen gesetzt sein ? Ohne müßte @Name das doch eigentlich als Feldnamen oder Variable interpretieren, oder ?

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit Evaluate und @Name
« Antwort #3 am: 21.10.04 - 17:02:52 »
So, jetzt längerer Blick. Deine Formel muss so aussehen, Ingo:

formel = {@Name([CN]; "} + doc.CreatedBy (0) + {")}

HTH,
Bernhard

Driri

  • Gast
Re: Problem mit Evaluate und @Name
« Antwort #4 am: 21.10.04 - 17:41:59 »
*Klatscht sich beide Hände vor die Stirn*

Ich sags ja, ich hab Tomaten auf den Augen. Danke Bernhard, das wars  ;)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit Evaluate und @Name
« Antwort #5 am: 21.10.04 - 17:43:38 »
Wie immer: Gern geschehen, Driri.

Bernhard

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: Problem mit Evaluate und @Name
« Antwort #6 am: 22.10.04 - 11:15:55 »
Hi,

es geht auch einfacher:

...
formel = {@Name([CN]; CreatedBy)}
user = Evaluate(formel, doc)
...

Der Bezug zum Dokument wird über den zweiten Parameter von Evalute hergestellt.


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

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit Evaluate und @Name
« Antwort #7 am: 22.10.04 - 17:59:19 »
Du hast natürlich vollkommen Recht, Axel. Mein Blick war immer noch zu kurz (und die Gedanken eigentlich bei einem ganz anderen Problem). Weiter, als zu "irgendwie kommt mir das jetzt komisch vor" hat es gestern nicht gereicht ...

Danke,
Bernhard

Driri

  • Gast
Re: Problem mit Evaluate und @Name
« Antwort #8 am: 25.10.04 - 10:20:17 »
Macht ja nix, funktioniert ja in beiden Fällen.

Aber da hätte ich noch mal eine Frage zu :

Gibt es einen Unterschied zwischen der Verwendung von {} und | als Abgrenzung ?
Ich hatte die Formel erst so wie von Bernhard aufgemalt im Script, allerdings mit |. Ich dachte bisher immer, daß man die genauso verwenden kann, ist dem nicht so ? Weil mit den Pipes hatte ich immer die Fehlermeldung.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit Evaluate und @Name
« Antwort #9 am: 25.10.04 - 10:26:37 »
Der Unterschied zwischen geschweiften Klammern und Pipes besteht eigentlich nur darin, dass mit den Pipes auch Zeilenumbrüche in den String mit aufgenommen werden - ansonsten ist es egal, welche Zeichen man verwendet.

Bernhard

Glombi

  • Gast
Re: Problem mit Evaluate und @Name
« Antwort #10 am: 25.10.04 - 10:28:28 »
" | und { sind alles String Delimiter.
Welches sinnvoll ist, hängt auch von dem ab, was im String stehen soll.
Wenn Du bspw. einen db.Search String bastelst und Du willst (in Formelsprachen Syntax) ein OR haben, so musst Du | verwenden. Daher scheidet | als String Delimiter aus.

{ hat den Vorteil, dass Du leicht Zeilenumbrüch machen kannst, bspw.
msgbox{Das ist eine Meldung,
die über mehrere Zeilen geht und in der man
kein chr(13) oder so braucht ;-)}

Andreas

Driri

  • Gast
Re: Problem mit Evaluate und @Name
« Antwort #11 am: 25.10.04 - 10:29:36 »
Okay, vielen Dank für die Erläuterung. Dann weiß ich in Zukunft bescheid  ;)

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Problem mit Evaluate und @Name
« Antwort #12 am: 25.10.04 - 13:57:19 »
Ingo, warum überhaupt @name verwenden?

Dim Namen as New NotesName (doc.CreatedBy(0))
Resultat = Namen.Abbreviated
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Glombi

  • Gast
Re: Problem mit Evaluate und @Name
« Antwort #13 am: 25.10.04 - 14:01:59 »
Noch kürzer mit

name = session.CommonUsername

Andreas

P.S.: Ok, ok, ich nehme es zurück  ;D
Es ist ja eine Web-Anwendung, das hatte ich überlesen. Eine wie immer kleine aber feine Einschränkung  ;)

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Problem mit Evaluate und @Name
« Antwort #14 am: 25.10.04 - 14:12:40 »
Aehm, Andreas, das geht, wenn man den Agenten mit der Option "Run as web-user" definiert.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Glombi

  • Gast
Re: Problem mit Evaluate und @Name
« Antwort #15 am: 25.10.04 - 14:19:42 »
Stimmt Jens,
wenn das eingestellt ist, geht es. Aber es ist ja nicht die Regel und da wollte ich keine falsche Fährte legen  ;)

Andreas

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Problem mit Evaluate und @Name
« Antwort #16 am: 25.10.04 - 15:29:05 »
Das ist allerdings ein weiser Entschluss, tatsächlich ist es häufig nicht eingestellt, dabei ist das ein ganz schön praktisches Feature
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Driri

  • Gast
Re: Problem mit Evaluate und @Name
« Antwort #17 am: 25.10.04 - 16:17:53 »
@Jens :

Danke für den Tipp, die Klasse hab ich mir noch nie zu Gemüte geführt.

Ich habs jetzt allerdings mit @Name umgesetzt, funktioniert ja auch wunderbar.

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Problem mit Evaluate und @Name
« Antwort #18 am: 25.10.04 - 23:34:28 »
Ingo, dann schau doch mal diesen Artikel zum Namensystem an, da steht noch mehr dazu drin.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz