Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet 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
-
Evtl der auszulesende Feldname falsch angegeben?
Const NotesMacro$ = {@DbLookup("" : "NoCache" ; "" : "" ; "(LookupArchivverwalternachArchivverwalter)"; "_wert" ; 2)}
Gruß
Roland
-
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?
-
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
-
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
-
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
-
Volker, das kann man auch durchaus missverstehen:
a Variant containing that value
Bernhard