Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: DerVissi am 14.02.14 - 16:44:05
-
Hallo zusammen,
ich bekomme ab und zu den Fehler "object variable not set" bei alone = PersDoc.fullname(0) & "@" & PersDoc.MailDomain(0)
Also springt er mir nicht in Dim PersDoc As NotesDocument rein
Wahrscheinlich ein Verständnisfehler von mir. Könnt ihr mir weiterhelfen?
MfG
Andreas
Function EmpfaengerBearbeiten(alone As String) As Variant
On Error GoTo Problem
Dim session As New Notessession
Dim namesDB As NotesDatabase
Set namesDB = session.GetDatabase("Servername", "names.nsf")
Dim PersDoc As NotesDocument
If Not alone = "" Then
Set PersDoc = namesDB.GetView("($Users)").getdocumentbykey(alone)
alone = PersDoc.fullname(0) & "@" & PersDoc.MailDomain(0)
EmpfaengerBearbeiten = alone
End If
End Function
-
In die Zeile mit dem Dim wird niemals "gesprungen", das ist eine Vereinbarung für den Compiler.
Vielmehr greift Dein GetDocumentByKey ins Klo - dort musst Du den Erfolg sicherstellen, bevor Du weitzere Sunts mit dem gar nicht vorhandenen Doc machst.
Bernhard
-
Ich werd mal weiter testen, aber kannst du mir einen Tipp geben?
Die Ansicht in der ich suche ist sortiert und das Ergebnis nach dem ich suche ist definitiv der erste Treffer.
-
Errorhandling wäre ja mal keine schlechte Idee.. Dann könntest Du Dir im Errorfall "alone" in Dein ErrorLog printen lassen, dann wüsstest Du, ob Dein "definitiv" wirklich stimmt, oder ob vielleicht die Variable gar nicht richtig gefüllt ist...
-
N'abend,
ich arbeite immer mit dem Agentlog. Alle Agenten kennen den normalen und den verbose-Modus. Im Verbosemodus wird nahezu jede Variablenänderung protokolliert.
In Deinem Fall hätte ich ein
if verbose then call alog.logaction("Starte Function EmpfaengerBearbeiten für [" & alone & "]")
als zweite Zeile genommen. Die erste ist immer on error goto errhandle :-)
Dann kann ich im Agentlog direkt sehen, welche Routine wann anläuft und ob und wie die Variablen gefüllt sind.
Evtl. kommt ja einer mit alone = " " in Deine Routine, und das findet sich im nab nicht.
Noch eine Anmerkung - Servername im Code ist ein absolutes NoGo bei uns.
CU,
Axel
-
Sowas geht nicht:
Set PersDoc = namesDB.GetView("($Users)").getdocumentbykey(alone)
Du musst die View in einer Variable abspeichern. Sonst räumt die Garbagecollection die View aus den Speicher und damit auch alles was du daraus geholt hast.
Gruß Roland
-
Sowas geht nicht:
Set PersDoc = namesDB.GetView("($Users)").getdocumentbykey(alone)
Du musst die View in einer Variable abspeichern. Sonst räumt die Garbagecollection die View aus den Speicher und damit auch alles was du daraus geholt hast.
Gruß Roland
Ich hab die Scriptzeilen auf der IBM Homepage gefunden. :)
Aber die view in ner Variable abspeichern hat mir geholfen.
Danke an alle die geantwortet haben.
MfG
Andreas
-
Ich hab die Scriptzeilen auf der IBM Homepage gefunden. :)
Ich würde lieber bei jemandem suchen, der sich damit auskennt ... :-X