Autor Thema: DBlookup bringt falsches Ergebnis  (Gelesen 7369 mal)

Offline harapat

  • Frischling
  • *
  • Beiträge: 11
  • Geschlecht: Männlich
DBlookup bringt falsches Ergebnis
« am: 25.06.12 - 15:56:07 »
Hallo allerseits!

Ich möchte in einer Maske aus einer Ansicht nach einem Key eine unbestimmte Anzahl von Sätzen auslesen und danach eine bis mehrere Ergebnisse über ein Dialogfeld auswählen und speichern. Es handelt sich hierbei um Email-Adressen.

@Text(@DbLookup(""; ""; "(Lookupansprech)"; Nummer; 4))

Funktioniert super, ich bekomme zb. 3 Möglichkeiten im Dialog angezeigt, wähle eine aus und das Ergebnis steht im Datenfeld.

Wenn aber das Ergebnis groß ist dann passiert folgendes: Ich bekomme die Möglichkeiten in dem Dialogfeld angezeigt, wähle aus und ich bekomme immer einen falschen Satz. Meist den Satz davor! ???

Kann jetzt nicht sage wie viele Datensätze das sein müssen damit dieser Effekt eintritt, aber kann das was mit der 65 K problematik zu tun haben, die es bei anderen Routinen gibt?
Habe auch schon ReCache versucht, hat aber auch nichts gebracht. :-:

Bitte Hilfe.
Danke.


Vers. 8.5.3

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: DBlookup bringt falsches Ergebnis
« Antwort #1 am: 25.06.12 - 16:02:34 »
Erst mal: Der DBLookup ist eigentlich der Befehl, bei dem man am häufigsten über die 64k- Thematik stolpert... aber dann bekommt man entsprechende Fehlermeldungen.

Ich vermute, dass der Fehler in Deinem weiteren Code liegt, z.B. bei der Auswahl... Wahrscheinlich enthält Dein Ergebnis einen Text (z.B. ein Semikolon), das an irgendeiner Stelle des Codes als Mehrfach- Trennzeichen interpretiert wird, und deshalb "verrutscht" das alles.

Aber: Mehr input = mehr output. In der geposteten Zeile passiert der Fehler definitiv nicht, obwohl es worst practice ist, einen DBLookup ohne @Iserror zu handeln...
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline harapat

  • Frischling
  • *
  • Beiträge: 11
  • Geschlecht: Männlich
Re: DBlookup bringt falsches Ergebnis
« Antwort #2 am: 25.06.12 - 16:14:01 »
Danke für die schnelle Antwort.

Also ich hab nur diesen Code... in einem Dialogfeld
Dort habe ich bei Auswahl "Formel für Auswahl verwenden" diesen Code. Sonst gibts da nix....
 ???
Vers. 8.5.3

Offline harapat

  • Frischling
  • *
  • Beiträge: 11
  • Geschlecht: Männlich
Re: DBlookup bringt falsches Ergebnis
« Antwort #3 am: 25.06.12 - 16:57:37 »
Hier der Aufruf
Vers. 8.5.3

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: DBlookup bringt falsches Ergebnis
« Antwort #4 am: 25.06.12 - 18:30:17 »
Jetzt mal Butter bei die Fische: Was heisst denn "grosses Ergebnis"? Die 64-k-Grenze solltest doch Du abschätzen können - wir können das ja nun gar nicht beurteilen.
Ich glaube da aber noch nicht so richtig dran, denn bei >60kB+ fliegt Dir das ganze Konstrukt auseinander, eine falsche Datenübernahme habe ich noch nie gesehen (was nix heissen wollen - auch nicht nach 20 Jahren Notes).

Letzte Frage: Was soll denn das komische @Text um das @dbLookup? Liest Du Text aus oder nicht?? Vor dem nächsten Test diesen vermutlichen Quatsch also in die Tonne drücken!

Bernhard

Offline MarkusL

  • Aktives Mitglied
  • ***
  • Beiträge: 124
  • Geschlecht: Männlich
Re: DBlookup bringt falsches Ergebnis
« Antwort #5 am: 26.06.12 - 12:01:11 »
Hallo zusammen,

ich habe eine ergänzende Frage, die an diese Stelle meiner Meinung nach passt:
Ich frage mit einem dblookup Werte aus einer Ansicht ab. Dies funktioniert auch wunderbar.
Wenn allerdings ein neuer Wert in die Ansicht eingetragen wird oder sich ein bestehender Wert ändert, werden diese Änderungen nicht übernommen. Ich muss dann erst Notes schließen und wieder öffnen.
Kann mir jemand sagen, warum die Werte nicht aktualisiert werden, obwohl ich schon NoCache und ReCache ausprobiert habe.
Die Formel im Feld "Raum" lautet:
@DbLookup( "" : ReCache ; "" : "" ; "viewRessourcen" ; @GetField("Raum_Ort") ; 1 ; [FAILSILENT])

Weitere Frage:
Wenn ich das Feld "Raum_Ort" ändere, ruft die Formel im Feld "Raum" erst dann die richtigen Werte ab, wenn ich die Maske speichere oder aktualisiere. Ich habe im Feld "Raum" den Haken bei "Auswahl bei Dokumentaktualisierung aktualisieren" gesetzt (s. Kommentar von harapat). Warum fragt die Formel dann nicht sofort den richtigen Wert ab?

Danke für die Hilfe.

Markus
Version Lotus Notes / Domino: 8.5.3
Server: 1 Cluster, 1 weiterer Server
Anzahl Benutzer: ca. 230

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: DBlookup bringt falsches Ergebnis
« Antwort #6 am: 26.06.12 - 12:16:33 »
Kann mir jemand sagen, warum die Werte nicht aktualisiert werden, obwohl ich schon NoCache und ReCache ausprobiert habe.
Die Formel im Feld "Raum" lautet:
@DbLookup( "" : ReCache ; "" : "" ; "viewRessourcen" ; @GetField("Raum_Ort") ; 1 ; [FAILSILENT])

Notes ist Weltmeister im Cachen von Daten.  ;)

Da helfen auch die Parameter NoCache oder ReCache nichts. Aber normalerweise sollte ein erneutes Öffnen des Dokumentes reichen.
 

Weitere Frage:
Wenn ich das Feld "Raum_Ort" ändere, ruft die Formel im Feld "Raum" erst dann die richtigen Werte ab, wenn ich die Maske speichere oder aktualisiere. Ich habe im Feld "Raum" den Haken bei "Auswahl bei Dokumentaktualisierung aktualisieren" gesetzt (s. Kommentar von harapat). Warum fragt die Formel dann nicht sofort den richtigen Wert ab?

Das sagt doch schon die Beschreibung der Option aus, "Auswahl bei Dokumentaktualisierung aktualisieren". Bei Dokumentenaktualisierung und die findet eben normalerweise nicht automatisch statt.

Du kannst allerdings in den Maskenoptionen einstellen, dass eine automatische Aktualisierung stattfinden soll, aber ich hatte da schon sehr unschöne Seiteneffekte, dass Werte falsch angezeigt wurden da z.B. die Maske noch nicht vollständig ausgefüllt war. Außerdem kann die Performance sehr stark darunter leiden.

Axel
 
« Letzte Änderung: 26.06.12 - 12:21:18 von Axel »
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: DBlookup bringt falsches Ergebnis
« Antwort #7 am: 26.06.12 - 12:24:23 »
Ich könnte mir vorstellen, dass das am @GetField liegt, vielleicht muss das Dokument gespeichert sein, damit da der aktuelle Wert herauskommt. Probier mal

@DbLookup( "" : ReCache ; "" : "" ; "viewRessourcen" ; Raum_Ort; 1 ; [FAILSILENT])

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: DBlookup bringt falsches Ergebnis
« Antwort #8 am: 26.06.12 - 12:30:07 »
EVtl. liegt es auch einfach daran, dass man ReCache in Anführungszeichen schreibt...
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: DBlookup bringt falsches Ergebnis
« Antwort #9 am: 26.06.12 - 12:35:21 »
EVtl. liegt es auch einfach daran, dass man ReCache in Anführungszeichen schreibt...

Mit Sicherheit ...

Offline MarkusL

  • Aktives Mitglied
  • ***
  • Beiträge: 124
  • Geschlecht: Männlich
Re: DBlookup bringt falsches Ergebnis
« Antwort #10 am: 26.06.12 - 12:37:07 »

Agrrrrrrrr  :P
Wenn man die Syntax beachtet, dann klappt es auch. Danke an Tode.

Danke für die Hilfe an alle.

Schönen Tag noch
Markus
Version Lotus Notes / Domino: 8.5.3
Server: 1 Cluster, 1 weiterer Server
Anzahl Benutzer: ca. 230

Offline harapat

  • Frischling
  • *
  • Beiträge: 11
  • Geschlecht: Männlich
Re: DBlookup bringt falsches Ergebnis
« Antwort #11 am: 26.06.12 - 13:24:28 »
Habe jetzt auch ohne @text gestestet. Hilft nichts.
Bzgl Datenmenge - habe jetzt nochmals nachgerechnet. sind weniger als 54 K.
Vers. 8.5.3

Offline harapat

  • Frischling
  • *
  • Beiträge: 11
  • Geschlecht: Männlich
Re: DBlookup bringt falsches Ergebnis
« Antwort #12 am: 26.06.12 - 14:00:24 »
Heb jetzt unterschiedliche sätze entfernt und die satzanzahl von über 50 auf ca.10 reduziert. es funktioniert. habe dann gtestet und einen nch dem andere satz gelösct. unter 50 funktionirt es.... sobald ich den 51.tn himzufüge habe ich wieder datensalat....
Vers. 8.5.3

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: DBlookup bringt falsches Ergebnis
« Antwort #13 am: 26.06.12 - 14:14:51 »
EVtl. liegt es auch einfach daran, dass man ReCache in Anführungszeichen schreibt...

Grrr... Das hatte ich übersehen.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline harapat

  • Frischling
  • *
  • Beiträge: 11
  • Geschlecht: Männlich
Re: DBlookup bringt falsches Ergebnis
« Antwort #14 am: 26.06.12 - 14:16:54 »
Das ich ein ganz anderes problem habe anscheinend auch....  ;)
Vers. 8.5.3

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: DBlookup bringt falsches Ergebnis
« Antwort #15 am: 26.06.12 - 14:26:06 »
@MarkusL: Das nächste Mal bitte nicht fremde Threads kapern, nur weil sie zufällig vom gleichen Befehl handeln...

@harapat: Passiert das immer beim gleichen Datensatz, oder hängt das wirklich nur von der Anzahl der Sätze ab? Ich kenne dieses Phänomen aus alten Versionen bei der Adressbuchauswahl, wo Notes mit Sonderzeichen (vor allem dem ö) durcheinander kam und auch immer den Satz vorher verwendet hat....

Sind denn die 51 Datensätze "geheim", oder könntest Du uns eine leere Datenbank nur mit der Lookup- Ansicht mit den 51 Datensätzen und der Maske (bzw. einer leeren Maske mit dem Feld SendTo2 und dem Feld "ParNummer") hier hochladen, damit wir das mal bei uns nachvollziehen können?

ggf. Ist auch das Feld SendTo2 kaputt... Erstell das mal komplett neu, und berichte, ob das eine Änderung bewirkt.
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline harapat

  • Frischling
  • *
  • Beiträge: 11
  • Geschlecht: Männlich
Re: DBlookup bringt falsches Ergebnis
« Antwort #16 am: 26.06.12 - 16:22:22 »
Also ich habe das Feld neu ersellt. Leider kein anderes Ergebnis.
Die Daten sind Kundendaten und doch etwas heikel.
Aber es wird immer ein vorheriger Datensatz genommen. entweder der direkt davor liegende oder2 - 3 vorher.
Scheint in die Richtung zu gehen die du gemeint hast.

Vers. 8.5.3

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: DBlookup bringt falsches Ergebnis
« Antwort #17 am: 27.06.12 - 15:32:46 »
Hi

Hast Du schon mal ein "NoCache" anstatt "ReCache" probiert?
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline harapat

  • Frischling
  • *
  • Beiträge: 11
  • Geschlecht: Männlich
Re: DBlookup bringt falsches Ergebnis
« Antwort #18 am: 27.06.12 - 16:04:30 »
bzgl. ReCache und Nocache - ja beides schon probiert. Auch kein ergebnis... :(
Vers. 8.5.3

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: DBlookup bringt falsches Ergebnis
« Antwort #19 am: 28.06.12 - 07:16:06 »
Mach mal folgendes, sonst kann man das nicht sauber debuggen: erstell ei. feld, berechnet, mehrachwerte zulassen, und schreib deine dblookup formel da rein. Dann schau Dir in einem gespeicherten dokument das feld via properties an. Wenn das feld keine sensiblen daten enthält, dann kopiere uns den inhalt des lookups doch mal hier rein. Kannst ja vorher ein @ReplaceSubstring (@Lowercase(DeinLookup); "a" : "b" : "c" : "d" : "e" : "f" : "g" : "h" : "i" : "j" : "k" : "l" : "m" : "n" : "o" : "p" : "q" : "r" : "s" : "t" : "u" : "v" : "w" : "x" : "y" : "z" ; "x" ) drum machen, um das komplett zu anonymisieren.

Hast Du in den Werten zufälligerweise aliase drin (also das Pipe- Zeichen |) ?
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz