Domino 9 und frühere Versionen > ND9: Entwicklung

Abfrage des form-Items funktioniert nicht zuverlässig

(1/3) > >>

JayDee:
Ein Problem, das schon lange auftritt, aber nur in einer Datenbank, es wirkt sich auf Ansichten und Search-Abfragen (Lotusscript > NotesDatabase.Search ist gemeint) aus. Ein Workaround ist zwar erfolgreich, aber ich wüsste gern wo es hier hakt, wo ich ansetzen könnte,  und ob noch jemand das Problem kennt.

Also:
Eine Ansicht oder eine db.Search-Abfrage findet Dokumente nicht, wenn das Form-Item 1:1 abgefragt wird:

form="xyz" & doc_ident="123"

Die Ansicht zeigt das Dokument so nicht an, ein db.Search(...) liefert eine Collection mit Count=0
Schreibt man die obige Auswahl- bzw. Suchformel aber wie folgt um:

@Contains(form;"xyz") & doc_ident="123"

dann ist alles i.O. , die Ansicht zeigt das Dokument an, db.Search liefert nun eine Collection mit Count=1.

Die Datenbank ist natürlich FT-indiziert, nur spielt das ja hier gar keine Rolle.
Die Datenbank enthält einige tausend Dokumente, und bevor der Workaround da war, wurden dann z.B. mal eben 800 Dokument einfach nicht angezeigt/gefunden.

Durch den funktionierenden Workaround gibt es kein akutes Problem mehr, aber irgendeinen Grund muss das Verhalten ja haben, ich würd es halt gern verstehen/lösen.

eknori (retired):
Das Einzige, was ich mir vorstellen kann:

form enthält "xyz", " xyz" , "xyz "

Dann würde form= nur den ersten Fall zurückliefern.

@Contains liefert aber für alle Fälle Dolumente zurück.

Da beide Varianten CaseSensitive sind würde ich auch noch mit @Contains(@lowercase(form);"xyz") arbeiten, um auch noch diese Variante abzufangen.

Ich verwende schon seit ewigen zeiten @Contains

Peter Klett:
Ich würde mir die Form-Items der Dokumente ansehen, die nicht mit Form = "xyz" gefunden werden, da ist bestimmt etwas krumm. Ein Form-Item ist ja nicht anders als irgendein anderes Item. NotesDatabase.Search nutze ich sehr intensiv und habe dieses Verhalten noch nie feststellen können. Allerdings beinhalten unsere Masken alle ein "Form"-Feld, und über dieses Feld bekommen alle Masken zwingend den gleichen Wert, z.B. bzgl. Groß-Kleinschreibung.

Tode:
Ergänzend zu Ulrich: Schau Dir doch mal die Properties des betroffenen Dokumentes an und kopier Dir den Content des Items "Form" ... da siehst Du, was "wirklich" drin steht...

JayDee:
Tja man muss das alles nur mal aufschreiben und schon kommen neue Eingebungen  ;)
Danke für eure Tipps.
Ich habe festgestellt, dass die Form-Items bei den Dokumenten, die nicht angezeigt/gefunden werden, vom Typ "Textlist" sind. Ändert man diesen mit scanEZ um auf "Text", ist das Problem sofort verschwunden.
Jetzt gilt es also zu klären, warum manche Dokumente hier einen anderen Typ haben...

Wir haben bislang prinzipiell kein Form-Feld in unseren Masken.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln