Domino 9 und frühere Versionen > ND8: Entwicklung

Fehlermeldung bei ReplaceItemValue

(1/3) > >>

mgeidl:
Hallo!

Kann mir bitte jemand einen Tipp geben?
Ich hab eine Personalanforderungs-DB in der u.a. Auflösungen (Kündigungen) durch einen Workflow laufen. Dazu gibt´s Mitarbeiterdokumente, in denen alle MA-Daten drinnen sind, u.a., ob der MA aktiv oder inaktiv ist.
Sobald nun eine Auflösung genehmigt wird, wird der MA gesucht und das Kennzeichen (M_KZ) auf inaktiv gesetzt. Hab unten den code gepostet. In der Zeile, in der der Status ersetzt werden soll, bekomm ich die Fehlermeldung "Object variable not set". Bitte um Hilfe - Danke

Sub Click(Source As Button)
   Dim session As New NotesSession
   Dim ws As New NotesUIWorkspace
   Dim doc As NotesDocument
   Dim currdoc As NotesUIDocument
   Dim collection As NotesDocumentCollection
   Dim db As NotesDatabase
   Dim maname As String
   Dim mailto As String
   
   Set currdoc= ws.CurrentDocument
   
   maname = currdoc.FieldGetText("MA_name")
   
   
   searchFormula$ = "select Form = 'Mitarbeiter' & M_Name = '"+maname+"' "
   Set db = session.CurrentDatabase
   Set collection = db.Search(searchFormula$, Nothing,0)
   Set doc = collection.GetFirstDocument
   
   Call doc.ReplaceItemValue("M_KZ","inaktiv" )
   Call doc.Save( True, False )
   
   Call currdoc.FieldSetText("Status","genehmigt")
   Call currdoc.FieldSetText("view_status","abgeschlossen")
   Call currdoc.FieldSetText("K_gen_am",Cstr(Today))
   Call currdoc.FieldSetText("K_gen_von",session.UserName)
   
   mailto=currdoc.FieldGetText("Mail_HR")
   Call sendmail(mailto,"Kündigungsantrag","Antrag wurde genehmigt! ", False)
   
   Call currdoc.Refresh
   Call currdoc.Save
   Call currdoc.Close
   
End Sub


LG
Marietta

klaussal:

--- Zitat ---Set doc = collection.GetFirstDocument
--- Ende Zitat ---
Ist überhaupt ein Dok in der Collection ?

Da fehlt grundsätzlich eine Fehlerbehandlung !!

Glombi:
Die Searchformel ist falsch, daher ist die Collection leer und doc also Nothing.

Versuch mal folgende Formel:
searchFormula$ = |Form = "Mitarbeiter" & M_Name = "| +maname + |"|
...
 Set doc = collection.GetFirstDocument
if doc is nothing then
msgbox "Kein Dokument gefunden",0+16,"Abbruch"
exit sub
end if

ascabg:
Hallo,

Das Dein Script durch einen Button ausgeloest wiwrd ist klar.

Dennoch meine Frage.
Wo befindet sich der betreffende Button?
(wird er angeklickt, wenn ein Dokument geoeffnet ist, oder aus einer Ansicht heraus)


Andreas

mgeidl:
danke mal an alle für die antworten.

Die Aktion wird aus einem geöffneten Dokument ausgeführt.

Normal sollte er ein Dokument finden, weil in der Maske oben über einen Button ein Mitarbeiter ausgewählt wird. Also liegt´s an der Search-Formel :-(
Hab die jetzt so eingetragen - und jetzt kommt die Fehlermeldung :-(

Mir ist nicht ganz klar, wofür die | stehen?

LG
Marietta

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln