Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: MarkusL am 23.04.13 - 08:40:59

Titel: Fehler bei Formelsprache in LS
Beitrag von: MarkusL am 23.04.13 - 08:40:59
Hallo zusammen,

wie ich seit kurzem - dank dieses Forums - weiß, kann man auch Formelsprache in Script einbinden.
Das ist toll, weil ich dann einige Dinge, die ich bisher nur in Formelsprache hinbekommen habe, auch in einem etwas größeren Script direkt mit ausführen kann.

Leider habe ich jetzt das Problem, dass das folgende Script nicht richtig funktioniert:
Dim sUser As String
Dim vGruppen As Variant
sUser   = doc.GetItemValue("Notesname")(0)
vGruppen = Evaluate( | @DbLookup("":"" ; "Servername" : "names.nsf" ; "Admin/31. Gruppen nach Personen" ; sUser ; 3 ; [PartialMatch])| )
Call doc.ReplaceItemValue("Feldnamen", vGruppen)

Wenn ich anstatt sUser einen festen Benutzer mit "Name/Organisation" eingebe, dann wird mir dieser Benutzer korrekt ausgelesen.
Was muss ich an der obigen Formel ändern, damit es funktioniert?

Exkurs: Wir bekommt Ihr immer den Code in den grauen Feldern mit der Umrandung hin???

Danke für Eure Hilfe.
Gruß Markus
Titel: Re: Fehler bei Formelsprache in LS
Beitrag von: koehlerbv am 23.04.13 - 08:46:23
Du übergibst "sUser" an Evaluate und nicht den Inhalt von dieser Variablen.

Ad Code: BBC-Tag mit der Raute auf dem weissen Blatt verwenden, das fügt "[ code][ /code]" ein.

Bernhard
Titel: Re: Fehler bei Formelsprache in LS
Beitrag von: MarkusL am 23.04.13 - 09:02:05
Hallo Bernhard,

wie übergebe ich denn den Inhalt der Variable?
Ich habe schon alle möglichen Zeichen versicht ( || [] usw.). Hat leider nichts geholfen.

Danke für den Tipp mit dem Code.

Markus
Titel: Re: Fehler bei Formelsprache in LS
Beitrag von: ascabg am 23.04.13 - 09:12:30
Hallo,

Versuchs mal so.

Code
strMacro = {@DbLookup("":"" ; "Servername" : "names.nsf" ; "Admin/31. Gruppen nach Personen" ;"} & sUser /& {"; 3 ; [PartialMatch])}
vGruppen = Evaluate( strMacro )


Andreas
Titel: Re: Fehler bei Formelsprache in LS
Beitrag von: Peter Klett am 23.04.13 - 09:51:28
Du könntest auch dem Evaluate das Dokument mitgeben und auf die Felder des Dokuments zugreifen

vGruppen = Evaluate( | @DbLookup("":"" ; "Servername" : "names.nsf" ; "Admin/31. Gruppen nach Personen" ; Notesname ; 3 ; [PartialMatch])|, doc )

Notesname ist ein Item in Deinem Dokument doc, das Evaluate wird auf doc ausgeführt, die Formel kann daher die Felder (Items) von doc verwenden
Titel: Re: Fehler bei Formelsprache in LS
Beitrag von: MarkusL am 23.04.13 - 10:02:35
Hallo Peter,

danke für die Info. Damit klappt es. Super.

@Andreras: Dein Ansatz lief leider auf einen Fehler. Ich habe einiges ausprobiert, aber ohne Erfolg.

Danke an alle.

Gruß Markus
Titel: Re: Fehler bei Formelsprache in LS
Beitrag von: ascabg am 23.04.13 - 10:05:36
Ich sehe auch gerade, das sich ein Schreibfehler eingschlichen hat.

Code
strMacro = {@DbLookup("":"" ; "Servername" : "names.nsf" ; "Admin/31. Gruppen nach Personen" ;"} & sUser & {"; 3 ; [PartialMatch])}

Was kam denn fuer ein Fehler?


Andreas
Titel: Re: Fehler bei Formelsprache in LS
Beitrag von: MarkusL am 23.04.13 - 11:06:44
Hallo Andreas,

den Schreibfehler hatte ich schon korrigiert.
Da ich meinen Code schon komplett geändert habe, konnte ich den Fehler nicht mehr reproduzieren.

Allerdings wurde nachdem ich die Fehlermeldung nicht mehr bekam, der String strMacro nicht richtig ausgelesen, so dass vGruppen immer leer war.

Da ich wie gesagt, den Code schon geändert habe, kann ich zu dem Fehler nichts mehr sagen.

Danke dir.