Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Akunin am 12.08.08 - 15:45:11
-
Hi, ich habe folgendes Problem und zwar will ich in LotusScript ein DBLookup machen und benutze dazu Evaluate, allerdings will das ganze nicht so funktionieren wie ich es will :)
TestServer = "IDSA3/Web"
TestDB = "Test\\Autowerkstatt.nsf"
TestView = "By_Pin"
TestKey = pin
TestDC = "Kennzeichen"
KM_Kennzeichen = Evaluate ( {@dblookup ("Notes" : "NoCache"; TestServer : TestDB; TestView; TestKey ; TestDC) }, thisdoc)
Problem ist allerdings das "KM_Kennzeichen" leer bleibt, so als wenn er garnicht das Evaluate ausführt, kann mir jemand von euch da weiter helfen warum er das nicht macht ?
danke im vorraus
-
Was spricht gegen NotesView.GetAllDocumentsByKey ?
-
hmm, gute Frage, hab ich noch nicht ausprobiert :)
-
Ein Tipp, wenn Du Dir das mal im Debugger anschaust, wirst Du schnell sehen, wo der Fehler liegt. ;)
-
also ich hab mir das schon mehrmals im Debugger angeschaut bin aber nicht fündig geworden :(
allerdings mit notesView.GetAllDocumentsByKey sieht das schon ganz gut aus.
jetzt stellt sich mir nur die Frage wie bekomm ich den Inhalt der ColumnValues bestimnmten variablen zugewiesen? :)
-
Du solltest Dich mal näher mit den ganzen Methoden der Notes-Klassen auseinandersetzen ...
Möglichkeiten:
NotesView.GetAllDocumentsByKey, und Du schiebst die Items aus den Treffern um.
NotesView.GetAllEntriesBy Key, dann kannst Du ColumnValues auslesen.
Also: Ganz, wie es beliebt.
Bernhard
-
jo schon gemerkt das meine 2te Frage doof war, eigentlich total simpel :)
-
Worauf ich hinaus wollte :
KM_Kennzeichen = Evaluate ( {@dblookup ("Notes" : "NoCache"; TestServer : TestDB; TestView; TestKey ; TestDC) }, thisdoc)
Evalute führt dann folgende Formel aus und zwar genau so :
@dblookup ("Notes" : "NoCache"; TestServer : TestDB; TestView; TestKey ; TestDC)
Was Du aber eigentlich haben möchtest, ist daß die Werte aus den Variablen von DBLookup ausgelesen werden. Dafür mußt Du den String, den Du an Evaluate übergibst aber anders aufbereiten.
Das sieht dann in etwa so aus :
KM_Kennzeichen = Evaluate ( {@dblookup ("Notes" : "NoCache";} & TestServer & {:} & TestDB & {;} & TestView & {;} & TestKey & {;} & TestDC & {)}, thisdoc)
Empfehlenswert ist es auch, den String für Evaluate vorher in eine Variable zu packen. Dann sieht man nämlich im Debugger direkt, mit was man Evaluate dann eigentlich füttert.
Das aber nur als Tipp für die Nutzung von Evaluate. Für deinen Zweck brauchst Du das ja nicht unbedingt.
-
Hallo,
also prinzipiell geht das schon mit Evaluate. Ist nicht so schön wie ein view.GetDocumentByKey, aber es geht. Dein Problem ist, dass es sich bei TestServer, TestDB, TestView usw. um Variablen handelt. Diese sind im Evaluate nicht verfügbar.
Der Evaluate-Befehl arbeitet auf dem übergebenen Dokument, in Deinem Fall also thisDoc. Wenn es unbedingt ein Evaluate sein soll, dann musst Du die Variablen zu Feldern im Dokument thisDoc machen. Also z. b. thisDoc.TestServer = TestServer.
Nicht schön, aber selten, und es funktioniert... ;)
Gruß,
Joachim