Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: chris2212 am 10.03.05 - 10:56:36

Titel: Object Variable not Set
Beitrag von: chris2212 am 10.03.05 - 10:56:36
Hallo,

in einer Dokumenten Datenbank soll folgende Agent den DocumentTitle
prüfen, wenn im Titel Zertifikat erhalten steht soll er in der Adress Datenbank
auf dem Kontakt der das Zertifikat erhalten hat einen Feldwert setzten.

Es sind ca. 1500 Dokumente die den Titel enthalten, bei 137 bleibt der Agent
stehen und bring die Fehlermeldung Object Variable not Set.
In der Dokumenten Datenbank sind 50.494 Dokumente.

Ich habe den Agent auch schon am Server laufen lassen, dann bekomme ich auch die Fehlermeldung.

Dim session As New NotesSession
Dim docDB As NotesDatabase
Dim docCol As NotesDocumentCollection
Dim docDocument As NotesDocument
   
Set docDB = session.CurrentDatabase
Set docCol = docDB.AllDocuments
Set docDocument = docCol.GetFirstDocument

Dim adrDB As NotesDatabase
Dim adrDBView As NotesView
Dim adrDoc As NotesDocument

Set adrDB = session.GetDatabase("Server","AdrDB",False)
Set adrDBView = adrDB.GetView("(SearchKey)")
While Not (docDocument Is Nothing)
   If Instr(docDocument.DocTitle(0), "Zertifikat erhalten") <> 0 Then
      Set adrDoc = AdrDBView.GetDocumentByKey(docDocument.SearchKey(0),True)
      If (adrDoc.IsValid = True) And (adrDoc.Form(0) = "Kontakt") Then
         Call adrDoc.ReplaceItemValue("Zertifikat","erhalten")
         Call adrDoc.Save(True,False,False)   
      End If         
   End If
   Set docDocument = docCol.GetNextDocument(docDocument)
Wend

Ist der Agent falsch aufgebaut oder gibt es eine Beschränkung beim Zugriff auf
eine andere DB?

Für jeden Tipp dankbar !

Danke & Gruß
Chris
Titel: Re: Object Variable not Set
Beitrag von: Semeaphoros am 10.03.05 - 11:01:02
Ich würde fast wetten, der findet das AdrDoc nicht. Aber schalte mal den Debugger ein und sag mal, in welcher Zeile der Fehler denn auftritt, und überprüfe dann mal den Inhalt Deiner Variablen, fast sicher ergibt sich die Antwort von selber .....
Titel: Re: Object Variable not Set
Beitrag von: Thomas Schulte am 10.03.05 - 11:09:10
Und in welcher Zeile????
Mit der Fehlermeldung sagt dir Notes einfach, "Hey ich hab hier was was ich nicht gefunden habe und du willst eine Atkion damit machen. Das geht nicht!"
Also gibt es, da es deinen Search view zu geben scheint und du das Vorhandensein des Basisdocumentes abfängst eigentlich nur die Möglichkeit das mit dem Doctitle kein gültiges Dokument in deiner anderen DB gefunden werden kann. Das hast du nämlich vergessen abzufangen.
Set adrDoc = AdrDBView.GetDocumentByKey(docDocument.SearchKey(0),True)
-> if not adrdoc is nothing then
      If (adrDoc.IsValid = True) And (adrDoc.Form(0) = "Kontakt") Then
         Call adrDoc.ReplaceItemValue("Zertifikat","erhalten")
         Call adrDoc.Save(True,False,False)   
      End If         
-> end if
Das noch mit einbauen und du hast den Fehler warscheinlich eliminiert, aber da muss dann noch Benachrichtungslogik dahinter gelegt werden.
Titel: Re: Object Variable not Set
Beitrag von: chris2212 am 10.03.05 - 12:33:34
Hallo,

danke für die Unterstützung!

Das hatte gefehlt, jetzt geht es.
Nachdem ich mir die Antwort von Thomas angeschaut habe,
ist mir auch klar geworden warum :-(
Naja, bald ist Wochenende :-)

Vielen Dank für die schnelle Unterstützung!

Danke & Gruß
Chris