Domino 9 und frühere Versionen > ND7: Entwicklung
Reminder Problem
Alperen15:
Hallo alle zusammen. Ich bräuchte wieder mal Tipps von euch. Ich habe einen Reminder erstellt und laut Debugger springt der an einer Stelle raus wo ich nicht weiss was das Problem ist
An der fett markierten Stelle flieg ich raus..... Ich wäre dankbar, wenn Ihr mir weiter helfen könntet. Danke
Hier der Quellcode
Sub Initialize
'Agent wird automatisch gestartet Leasing ende vor 6 Monaten
Dim oSession As New NotesSession
Dim db As NotesDataBase
Dim oHeute As NotesDateTime
Dim oCreated As NotesDateTime
Dim oDoc As NotesDocument
Dim oSearchDoc As NotesDocument
Dim oProfilDoc As NotesDocument
Dim oNeuDoc As NotesDocument
Dim oRTItem As NotesRichTextItem
Dim cDate As String, kWeek As String, cText As String, nAnz As Long
Dim oView As NotesView
Dim Empmanager As String
Dim Empresponsible As String
Set db = oSession.CurrentDataBase
Set oHeute = New NotesDateTime(Now)
Set oProfilDoc = db.GetProfileDocument("PDAllgemein") ' *** Adressat der Wiedervorlage
Set oView = db.GetView("vwRem") ' *** Ansicht Reminder 1 (7 Tage nach Eingangsdatum)
Set oNeudoc = db.CreateDocument ' *** neues Mail-Dokument kreieren
oNeudoc.Form = "Memo" ' *** die Maske für e-Mail Aufrufen
nAnz = 0
Empmanager = oProfilDoc.fdNameRequestManager(0) ' *** Reminder1 aus Profildoc sind Empfänger
Empresponsible = oProfilDoc.fdNameRequestClarification(0)
On Error Goto ErrorPrint
REM Tracerinitialisierungsparameter
Dim aTracerPara(1) As Variant
cgTracerVorzugRem1 = "aaReminder2 test"
aTracerPara(0) = "Request DB"
aTracerPara(1) = "PDAllgemein"
If Not(xQAnfangID(aTracerPara)) Then
Print "Agent: Request DB Test: Konnte Tracer/Logger/Protokoll nicht initialisieren. Abbruch der Funktion."
Exit Sub
End If ' If Not(xQAnfangID(aTracerPara)) Then
Set oRTItem = New NotesRichTextItem(oNeuDoc, "Body") ' *** in Body des Memos reinschreiben
Call oRTItem.AppendText("Bei folgenden Dokumenten blabla test.")
Call oRtitem.AddNewLine(1)
Call oRTItem.AppendText("Link zur Datenbank ---> ")
Call oRTItem.AppendDoclink(oView, oView.Name)
Call oRtitem.AddNewLine(2)
cDate = oHeute.DateOnly
Set oSearchDoc = oView.GetFirstDocument
While Not (oSearchDoc Is Nothing)
Set oCreated = New NotesDateTime(oSearchDoc.Created)
cDate = oCreated.DateOnly
Call oRtitem.AddNewLine(1)
'Call oRTItem.AppendText(Cstr(oSearchDoc.ENDE(0)) + " --- " + Cstr(oSearchDoc.OBJEKT_KFZ_KENNZ(0)) + " --- " + Cstr(oSearchDoc.HERSTELLER(0)) + " " + Cstr(oSearchDoc.TYP(0)) + " ---> ")
Call oRTItem.AppendDoclink(oSearchDoc, " Verbindung zum Wiedervorlagedokument. Bitte klicken.")
nAnz = nAnz + 1
Set oSearchDoc = oView.GetNextDocument(oSearchDoc)
Wend
cText = "aaReminder2: " + Cstr(nAnz) + " Dokumente zur Prüfung gefunden"
Call XQSchreiben("0", "1", cgTracerVorzugRem1, cText, 632637&)
' *** Mail fertigstellen
oNeuDoc.Subject = "Leasing in 6 Monaten zu Ende: Folgende Dokumente sind heute zur Vorlage fällig."
If nAnz <> "0" Then
If oProfilDoc.fdNameRequestClarification(0) <> "" Then
oNeuDoc.SendTo = Empresponsible
Call oNeuDoc.Send(False)
Call XQSchreiben("0", "1", cgTracerVorzugRem1, "aaReminder2 Leasing: Mail an Personenkreis Reminder 1 verschickt", 632637&)
Else
oNeuDoc.SendTo = Empmanager
Call oNeuDoc.Send(False)
Call XQSchreiben("0", "1", cgTracerVorzugRem1, "aaReminder2 Leasing: Mail an Personenkreis Reminder 1 verschickt", 632637&)
End If
End If
Goto EndeAlles
ErrorPrint:
Call XQSchreiben("0", "1", cgTracerVorzugRem1, "aaReminder2 Leasing: Fehler bei der Verarbeitung", 632637&)
Resume Next
EndeAlles:
Call xQEnde ' *** Schreiben und schließen LogFile
End Sub
Driri:
Was heißt denn "er springt raus" ?
Und was ist "xQAnfangID" ?
Alperen15:
der Debugger springt an der Stelle raus.... Der Agent ist kopiert, den habe ich umgeändert die Felder, Ansichtname usw....
Driri:
xQAnfangID dürfte wohl eine Funktion sein, die da aufgerufen werden soll. Vermutlich findet er die Funktion nicht. Vielleicht steckt die in einer Scriptbibliothek, die nicht mitkopiert wurde oder nicht eingebunden ist ?
Man sollte niemals Code einfach kopieren und anpassen, den man nicht kennt bzw. versteht. Das führt gerade bei Code, der aus mehr als einer Handvoll Zeilen besteht fast garantiert zu Problemen.
Im übrigen wäre es evtl. gerade zu Übungszwecken besser, so einen Agenten selber zu schreiben.
Und noch ein Tipp. Diese Zeile hier
--- Zitat ---Set oView = db.GetView("vwRem") ' *** Ansicht Reminder 1 (7 Tage nach Eingangsdatum)
--- Ende Zitat ---
sieht ganz verdächtig nach Verwendung von @Today in der Selektionsformel der Ansicht aus. Das sollte man sich aus Performancegesichtspunkten gut überlegen. Dazu gibt es hier im Forum diverse Beiträge.
Edit :
Wenn ich meine Antwort lese, kommt sie mir ein bißchen schroff vor. Das ist nicht so gemeint, ich habe nur keine Zeit, an den Formulierungen zu schleifen ;)
Alperen15:
Kein Problem Ingo ich schau mir den Agenten mal genauer an und die bibliothek dann melde ich mich ncoh mal. Der Reminder soll ja produktiv werden sollte heute noch fertig werden ^-^
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln