Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: wittmann_franz am 23.05.12 - 11:29:26

Titel: evaluate liefert kein Ergebnis
Beitrag von: wittmann_franz am 23.05.12 - 11:29:26
Hallo zusammen,

stehe hier mächtig auf dem Schlauch und komme nicht weiter mit einem Script insbesondere evaluate

Const NotesMacro$ = {@DbLookup("" : "NoCache" ; "" : "" ; "(LookupArchivverwalternachArchivverwalter)"; _wert ; 2)}
Dim vEval As Variant
scode = doc.Abteilungscode(0)   
searchFormula = {(Form = "Akte") & (Abteilungscode = "} & scode & {")}
Set coll = db.Search(searchFormula, Nothing, 0)
Set dcdoc = coll.GetFirstDocument ()
      
While Not (dcdoc Is Nothing)
   vEval = Evaluate (NotesMacro$ , dcdoc)
   dcdoc.abtRegistratur = vEval
   Call dcdoc.Save(True,False)
   Set dcdoc = coll.GetNextDocument(dcdoc)
Wend      

Die Collection liefert Dokumente zurück, kann ich im Debugger nachvollziehen.
Es ist im Übrigen egal welche Fromel in der Constanten steht es wird kein Ergebnis auf die Variable vEval zurückgegeben.
Die Formel dblookup in einem berechneten Feld funktioniert ansonsten.
Es erscheint auch keinerlei Fehler bei Ausführung des Scriptes.

Vielen Dank für Eure Hilfe.

Server 8.5.2
Client 8.5.2
Titel: Re: evaluate liefert kein Ergebnis
Beitrag von: pram am 23.05.12 - 11:47:07
Evtl der auszulesende Feldname falsch angegeben?

Const NotesMacro$ = {@DbLookup("" : "NoCache" ; "" : "" ; "(LookupArchivverwalternachArchivverwalter)"; "_wert" ; 2)}

Gruß
Roland
Titel: Re: evaluate liefert kein Ergebnis
Beitrag von: wittmann_franz am 23.05.12 - 12:14:39
Hallo Roland,

vielen Dank, genau das wars. _wert ist natürlich eine Variable und nicht der Feldname.

Die Hilfe sagt, dass NotesMacros einen array zurückgeben und dieser nur 1 element enthält.
Bei mir sollte eigentlich auch mehrere Werte zurückgegeben werden, ist aber wie in der Hilfe beschrieben nicht so.
Es wird nur der erste Wert zurückgegeben.

Wie kann ich das ändern?
Titel: Re: evaluate liefert kein Ergebnis
Beitrag von: koehlerbv am 23.05.12 - 12:27:26
Die Hilfe sagt, dass NotesMacros einen array zurückgeben und dieser nur 1 element enthält.
Wo liest Du das? Evaluate liefert ein Variant zurück, das durchaus ein Array mit n Elementen enthalten kann.

Bernhard
Titel: Re: evaluate liefert kein Ergebnis
Beitrag von: pram am 23.05.12 - 13:06:56
http://www-10.lotus.com/ldd/ddwiki.nsf/dx/dblookup-troubleshooting.htm

Ggf. ist es eine der folgenden Ursachen:

- When returning multiple values (as will occur if there are multiple documents matching your key), formula language returns them as a list. But a list can have only one datatype
- If the column is multivalued, but the column option to display multiple values in separate rows is not selected, you can only match the first value in a lookup.

(Außerdem gibt es noch einen Bug in Verbindung mit RETURNDOCUMENTUNIQUEID + Mehrfachwerten http://www-10.lotus.com/ldd/nd8forum.nsf/0/8f7fd6d8c8b308c085257603002956ca?OpenDocument)

Gruß
Roland

Titel: Re: evaluate liefert kein Ergebnis
Beitrag von: wittmann_franz am 24.05.12 - 08:40:28
Guten Morgen,

hatte das Ergebnis gestern nur im Debugger angeschaut und nicht das Ergebniss im Feld überprüft. Es gab gar kein Problem alle Werte werden zurückgegeben und auch richtig verarbeitet.
Der einzige Fehler war also mein falsches kopieren aus der Formel, in das Evaluate im Script. (_wert)

Danke Roland

@Bernhard
ja, Du hast natürlich vollkommen Recht, ich habe die Hilfe falsch interpretiert.

Einen schönen sonnigen Tag
Titel: Re: evaluate liefert kein Ergebnis
Beitrag von: koehlerbv am 24.05.12 - 08:45:39
Volker, das kann man auch durchaus missverstehen:
Zitat
a Variant containing that value

Bernhard