Domino 9 und frühere Versionen > ND9: Entwicklung
Merkmal "doc Is Nothing" wird nicht erkannt
(1/1)
aoibhneach:
Hallo Forum,
Ich habe einen merkwürdigen Fall. Es passiert, dass ein "Objekt" myDoc zwar im Variablenpool beim debug angezeigt wird, aber ohne jegliche Eigenschaften.
Angenommen, das ist so in Ordnung. Aber: Trotzdem lande ich in der "While ... Wend" Schleife.
Wird der Zustand hier nicht vor dem erstmaligen Betreten der Schleife geprüft? Liegt hier mein Denk-Fehler?
Was mache ich falsch?
Vielen Dank für Eure Ideen.
Viele Grüße, Nils
--- Code: ---Sub mySub (doc as NotesDocument)
Dim coll As NotesDocumentCollection
Dim respDoc as NotesDocument
Set coll = doc.Responses
set respDoc = coll.GetFirstDocument
While Not (myDoc Is Nothing)
'mach was
Call mySub(respDoc)
Set respDoc = coll.GetNextocument(respDoc)
Wend
...
--- Ende Code ---
Tode:
Manchmal liefern Funktionen Dokumente zurück, die entweder schon gelöscht sind, oder grundsätzlich ungültig oder "irgendwie da" aber ohne jegliche Items. Deshalb nutze ich in solchen Fällen immer mindestens die Abfrage "isDeleted" und "isValid", manchmal auch isArray( doc.Items). Weil ich das nicht jedesmal tippen will, habe ich eine eigene Funktion dafür:
--- Code: ---Function IsValidDocument( doc As NotesDocument ) As Boolean
On Error Goto ErrorRoutine
'===================================================================================================================================
IsValidDocument = False
If Not doc Is Nothing Then
If doc.Isvalid Then
If Not doc.Isdeleted Then
If Isarray( doc.Items ) Then
IsValidDocument = True
End If
End If
End If
End If
'===================================================================================================================================
EndOfRoutine:
Exit Function
ErrorRoutine:
Resume EndOfRoutine
End Function
--- Ende Code ---
Und dann in Deinem Beispielcode:
--- Code: ---While Not (respDoc Is Nothing)
If IsValidDocument(respDoc) Then
'mach was
Call mySub(respDoc)
End If
Set respDoc = coll.GetNextocument(respDoc)
Wend
--- Ende Code ---
Ich hoffe, Du hast nur fürs Forum einen Fehler eingebaut, weil Deine While- Abfrage auf myDoc is Nothing entspricht nicht der inneren Verarbeitung von respDoc
aoibhneach:
Hallo Torsten,
riesigen Dank. Zuerst; mit dem Tip IsValid und .IsDeleted hast Du mir zu einem entspannteren Wochenende verholfen. Ich werde Deine Idee am Montag umsetzen.
Mit meinen müden Sinnen nach langem Suchen ist mir dann noch das „myDoc“ passiert. Du hast Recht. Das war aber nicht extra für‘s Forum erdacht. ;D Ich wollte es so allgemein wie möglich darstellen. Hab den Fehler dann auch nicht mehr gesehen. Im Original ist es richtig ;)
Rück-/Erfolgsmeldung folgt. Nochmals vielen Dank .
Viele Grüße, Nils
aoibhneach:
Ergänzung:
Hallo Torsten
Hab meinen Code entsprechend ergänzt. Nun läuft die Kiste erstmal :)
Ich werde aber erst am Montag die Anzahl der verarbeiteten Docs usw. vergleichen.
Viele Grüße,
Nils
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln