Autor Thema: Evaluate mit @dbLookup verwenden  (Gelesen 4810 mal)

Offline Akunin

  • Junior Mitglied
  • **
  • Beiträge: 82
Evaluate mit @dbLookup verwenden
« 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 :)

Zitat
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

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Evaluate mit @dbLookup verwenden
« Antwort #1 am: 12.08.08 - 15:49:55 »
Was spricht gegen NotesView.GetAllDocumentsByKey ?
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline Akunin

  • Junior Mitglied
  • **
  • Beiträge: 82
Re: Evaluate mit @dbLookup verwenden
« Antwort #2 am: 12.08.08 - 15:53:15 »
hmm, gute Frage, hab ich noch nicht ausprobiert :)

Driri

  • Gast
Re: Evaluate mit @dbLookup verwenden
« Antwort #3 am: 12.08.08 - 16:05:05 »
Ein Tipp, wenn Du Dir das mal im Debugger anschaust, wirst Du schnell sehen, wo der Fehler liegt.  ;)

Offline Akunin

  • Junior Mitglied
  • **
  • Beiträge: 82
Re: Evaluate mit @dbLookup verwenden
« Antwort #4 am: 12.08.08 - 16:14:36 »
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? :)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Evaluate mit @dbLookup verwenden
« Antwort #5 am: 12.08.08 - 16:18:19 »
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

Offline Akunin

  • Junior Mitglied
  • **
  • Beiträge: 82
Re: Evaluate mit @dbLookup verwenden
« Antwort #6 am: 12.08.08 - 16:22:25 »
jo schon gemerkt das meine 2te Frage doof war, eigentlich total simpel :)

Driri

  • Gast
Re: Evaluate mit @dbLookup verwenden
« Antwort #7 am: 12.08.08 - 16:33:43 »
Worauf ich hinaus wollte :

Zitat
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 :

Zitat
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.

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re: Evaluate mit @dbLookup verwenden
« Antwort #8 am: 15.08.08 - 17:26:33 »
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
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz