Domino 9 und frühere Versionen > ND8: Entwicklung
GetDocumentByKey läuft teilweise nicht auf 8.5.2FP1 64bit
kawie:
Dieser Fehler wurde bereits im 8.5.1 behoben (ich glaube FP3)
Und ganz recht "Object variable not set" hatte damit nichts zu tun.
--- Zitat von: DAU-in am 24.02.11 - 10:29:22 ---unter 8.5.2 gibt es bei uns im Haus ebenfalls Probleme mit Backendagenten und dem Zugriff über getdocumentByKey. Die genaue Konstellation kenn ich nicht, aber 8.5.2. ist nicht ganz bugfrei an dieser Stelle.
--- Ende Zitat ---
Habe ich bisher noch nichts von gehört. Gibt es diesbezüglich irgendeine Referenz oder ein Beispiel ?
Gruss
Kai
DerAndre:
Was es geben kann ist
This collection has become invalid
mind1:
Hallo zusammen,
sorry für die späte Antwort! Bin etwas im Stress :-)
Ich versuche mal, die Fragen zu beantworten.
Es geht um ein Analyse-Tool, mit dem ich Auswertungen über eine Maske anwerfe. Die Maske "used" eine LS-Librory, die die Sub "setGlobals" enthält. Diese hat den Zweck, globale Einstellungen zu setzen, wie z.B. alle beteiligten Datenbanken und auch ein Dokument mit globalen settings. Das ist allerdings das, was ich mit der erwähnten Maske geöffnet habe und von der ich aus "setGlobals" starte. Das Doc ist natürlich vorher gespeichert.
Dies hier ist Teil der setGlobals. Die Variablen sind global in der Librory deklariert.
--- Code: ---
Dim session As New NotesSession
Set db = session.CurrentDatabase
Set vwGlobalSettings = db.GetView("vwGlobalSettings")
'##########################################################################################################
'Set docGlobalSettings = vwGlobalSettings.GetDocumentByKey(strDedicatedTo + "~" + strDominoServer, True)
'Fix for Version 8.5.2 FP1
Dim collTmp As NotesDocumentCollection
Set collTmp = db.search({Form="frmGlobalSettings" & fldDedicatedTo="} + strDedicatedTo + {" & fldServerName="} + strDominoServer + {"},Nothing,0)
Set docGlobalSettings = collTmp.getFirstDocument
'##########################################################################################################
--- Ende Code ---
Die Ansicht "vwGlobalSettings" enthält in der ersten Spalte zwei Textfelder, die über die Tilde miteinander verbunden sind. (fldDedicatedTo + "~" + fldServerName, z.B. "0~CN=S01/O=COMPANY"). Also ganz simpel. Den Key habe ich schon ausgeprintet, der passt.
Wie man im Code erkennt, ist dort mein angesprochener Fix schon drin. Der bezieht sich ja auf die gleichen Felder und MUSS deshalb eigentlich auch das selbe Ergebnis liefern. Das tut er aber nur, wenn der Agent auf einem 8.5.1FP4 läuft und nicht auf einem 8.5.2FP1. Immer von der gleichen Workstation mit 8.5.2 ausgehend.
Läuft der Code auf dem 8.5.2er, kommt immer exakt dann der Fehler "Object Variable Not Set", wenn ich zum ersten Mal auf das Doc zugreifen möchte. Ich sehe mir das jetzt mal mit dem Debuger an.
Ich hatte bei der Umstellung von 8 auf 8.5 schon einmal ein ähnliches Problem. Damals sah der Domino-Server es bei Server-Agenten plötzlich etwas enger. An einigen Stellen hatte ich versehendlich ein und dieselbe NotesDatabase-Variable doppelt "gesettet", also ein mal in Initialize und ein mal in einer Sub. Beides natürlich mit derselben Datenbank, die dahinter steht (also zwei identische Zeilen in einem Agenten). Bei 8.5. war das ergebnis dann "Object Variable Not Set".
Gruß, Bernd
kawie:
Hi Bernd,
ich habe versucht es irgendwie nachzustellen bekomme es aber nicht hin.
Habe eigentlich auch nur zwei ideen für dich.
1) Checken der Selektionsformel der View (Hast du sicher schon gemacht)
2) Ein
--- Code: ---Call notesView.Refresh
--- Ende Code ---
bevor du das Dokument holst.
Gruss
Kai
mind1:
Oh mann, nach unzähligen Printbefehlen ist mir nun der Fehler aufgefallen. Es gab eine zweite View mit dem gleichen Alias-Namen und anscheinend läuft die "Rangfolge" gleicher Namen bei der neuen Version nun anders herum ab. Zuvor nie als Problem aufgetaucht wird einem so eine Unaufmerksamkeit dann irgendwann doch zum Verhängnis.
Vielen Dank für alles!
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln