Domino 9 und frühere Versionen > ND7: Entwicklung
Agent zieht sich trotz Schlüssel die falschen Daten aus einer View.
Lancelot:
Hallo Leute,
ich habe ein Phänomen und weiß nicht wie ich das gelöst bekomme.
Habe eine Agent der eine TXT Datei einliest und darauf Doc erstellt.
In der Datei stehen Userdaten wie Name, Personalnummer, Abteilung etc.
In einer anderen DB gibt es eine Ansicht mit ein paar Sonderfällen.
Diese Ansicht ist in der 1. Spalte nach Personalnummer sortiert und wenn da ein Doc vorhanden ist,
dann zieht er sich diese Daten, wenn nicht nimmt er die Daten aus der TXT Datei.
Es gibt da einen User der die Personalnummer 91 als Text hinterlegt hat.
Für diesen User gibt es keinen Sonderfall, also auch kein Doc in der Ansicht mit den Sonderfällen.
Aber es gibt in der Ansicht einen User mit der Nummer 9147 und genau die Daten zieht er sich dann.
Das kommt auch nur bei diesem User vor, bei den anderen klappt alles prima.
Datenformate sind beide als String vorhanden.
Leerzeichen wurden mit Trim beseitigt.
Die Datenbank ist Volltextindiziert.
Den Aufruf mache ich per Script wie folgt:
key = Trim$(numstring)
Set userview = konfigdb.GetView("($konfigview_abtlt)")
Set userdoc = userview.GetDocumentByKey(key)
Ich weiß nicht woran das liegen kann.
Bin für alle Hilfen Dankbar.
Setzen Notes 7.0.3 auf Server und Client ein.
WildVirus:
Moin Moin,
was passiert denn, wenn Du im Client in die Ansicht gehst, und "91" eingibst ? Dann springt der Cursor zu dem Eintrag, weil er mit 91 beginnt.
Nehme an, dass GetDocumentByKey ähnlich arbeitet.
Mach doch danach eine Prüfung, ob Personalnummer aus Textdatei = Personalnummer aus Ansicht ist. Und fertig ist's
CU,
Axel
TRO:
--- Zitat von: Lancelot am 24.09.09 - 07:29:36 ---Set userdoc = userview.GetDocumentByKey(key)
--- Ende Zitat ---
Set userdoc = userview.GetDocumentByKey( key, True )
hth
thomas
Felix Ziegler:
Die Funktion GetDocumentByKey hat noch einen zweiten Parameter:
Set notesDocument = notesView.GetDocumentByKey( keyArray [, exactMatch% ] )
--- Zitat ---exactMatch%
Boolean. Optional. Specify True if you want to find an exact match. The first document that matches the key exactly is returned. If you specify False (the default) or omit this parameter, a partial match succeeds. A partial match returns the first document that matches the initial characters of the key.
--- Ende Zitat ---
Dieser gibt an ob nach einem exakten Treffer gesucht werden soll. Da die Personalnummer in deinem Fall mit 91 beginnt und der zweite Parameter der Funktion GetDocumentByKey standardmäßig auf false gesetzt ist bekommst du als Rückgabewert das Dokument mit der Personalnummer 9147.
Beste Grüße
Felix
Felix Ziegler:
Hmm... zu langsam... das nächste mal schreib ich weniger Erklärung ;-)
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln