Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Kermit am 11.10.04 - 14:32:36
-
Hallo,
ich möchte diesen Agenten nach Eingang neuer Mail oder periodisch starten. Manuell geht das. Aber automatisch geht nix:
Function SendToSms
Dim ws As New NotesUIWorkspace
Dim CurrentDb As NotesDatabase
Dim StrBody As String
Dim StrSubject As String
Dim DocsToDuplicate As NotesDocumentCollection
Dim Heute As NotesDateTime
Dim MyMime As NotesMIMEEntity
Dim MyBodyItem As NotesItem
Dim MySubjectItem As NotesItem
Dim CurrentDoc As NotesDocument
Dim iCount As Integer
Dim MyItem As NotesItem
Set CurrentDb = ws.CurrentDatabase.Database
Set DocsToSend = CurrentDb.UnprocessedDocuments
Set Heute = New NotesDateTime("")
Call Heute.SetNow
Set CurrentDoc = DocsToSend.GetFirstDocument
While Not CurrentDoc Is Nothing
On Error Goto SendError
Set MyBodyItem = CurrentDoc.GetFirstItem("Body")
Set MySubjectItem = CurrentDoc.GetFirstItem("Subject")
If Not MyBodyItem Is Nothing And Not MySubjectItem Is Nothing Then
If MyBodyItem.Type = MIME_PART Then
Set MyMime = MyBodyItem.GetMimeEntity
If Not MyMime Is Nothing Then
StrBody = MyMime.ContentAsText
End If ' Not MyMime Is Nothing
Else
StrBody = MyBodyItem.Text
End If ' MyBodyItem.Type = MIME_PART
StrSubject = MySubjectItem.Text
If Not Isnumeric(StrSubject) Then
Messagebox "ungültige Betreffzeile: " + StrSubject
Else
CurrentDoc.Sendto = StrSubject + "@xxxxxxx.xxxxx.xxx"
CurrentDoc.Subject = StrBody
Call CurrentDoc.Send(False)
Call CurrentDoc.ReplaceItemValue("SMSistSCHONgesendet","1")
Call CurrentDoc.ReplaceItemValue("PostedDate",Heute)
Call CurrentDoc.RemoveItem("DeliveredDate")
Call CurrentDoc.RemoveItem("ExcludeFromView")
Call CurrentDoc.Save(True, False)
End If
End If ' Not MyBodyItem Is Nothing And Not MySubjectItem Is Nothing Then
Set CurrentDoc = DocsToSend.GetNextDocument(CurrentDoc)
Goto weiter
SendError:
Messagebox Err(), "Error in Zeile : " + Str(Erl())
weiter:
Wend
End Function
:'(
-
Du instantiierst mit dem NotesUIWorkspace ein FrontEnd-Objekt, das ist in scheduled agents nicht erlaubt. Schmeiss den 'raus und nimm NotesSession her.
Bernhard
-
Hallo, vielen Dank.
Wenn ich NotesUIWorkspace
gegen NotesSession
tausche, erhalte ich eine Fehlermeldung:
"Daten wurden aufgrund von Fehlern im Script nicht gespeichert"
...bin leider kein Programmierer, muss das Ding nur zum fliegen kriegen.
(Programmierer ist im Urlaub).
-
Hi,
statt
Dim ws As New NotesUIWorkspace
schreibst du
Dim session as New Notessession
und statt
Set CurrentDb = ws.CurrentDatabase.Database
Set CurrentDb = session.CurrentDatabase
HTH
-
Hi,
die Script-Anweisung Messagebox funktioniert in getriggerten Agenten auch nicht. bin mir aber nicht ganz sicher, ob diese Anweisung die Ausführung verhindert. Nimm aber trotzdem anstatt Messagebox die Anweisung Print, dann siehst du die Meldungen im Notes-Protokoll.
Axel
-
Hallo,
vielen Dank für Eure schnelle Hilfe.
Ich habe alles so geändert.
Aber wie gehabt, manuell geht und periodisch oder nach Eingang neuer Mail und vor Eingang neuer Mail geht nix.
Gruß
Kermit
-
Schreibt Notes eine Fehlermeldung auf die Konsole oder passiert einfach nichts?
Für welche Dokumente gilt der Agent?
(Wird die Function überhaupt im Initialize des Agents überhaupt aufgerufen? (Müsste eigetlich, sonst würde es manuell nicht funktionieren))
-
Im Initialize: Sub Initialize
Call SendToSms
End Sub
Wie gesagt, manuell klappt alles.
Das Protokoll sagt der Agent sei noch nie gelaufen.
Gruß
Kermit
-
..sorry
periodisch:
für "alle neuen und geänderten Dokumente seit dem letzten Start".
-
Hi,
mit welcher ID ist denn der Agent signiert und hat die ID die notwendigen Ausführungsrechte?
Überprüf mal die Sicherheitseinstellungen im Serverdokument.
Hast du auch mla einen Momwent gewartet? Manchmal dauert es eine Weile bis Notes reagiert.
Axel
-
periodisch:
für "alle neuen und geänderten Dokumente seit dem letzten Start".
Sorry, ein "Applaus, Applaus !!!" à la "Kermit der Frosch" kann ich jetzt leider nicht aussprechen ...
Du fummelst seit mehr als einen Monat an Eurem Mail2SMS-Agent herum. Ein Profi hätte das für Euch in einer Stunde erledigt.
Allein die Agent-Einstellung "alle neuen und geänderten Dokumente" ist für die Aufgabenstellung ja schon vollkommen verkehrt, und Du wartest offensichtlich auf die falsche Reaktion des Agents, der das so natürlich nicht liefern kann.
Du schreibst:
...bin leider kein Programmierer, muss das Ding nur zum fliegen kriegen.
(Programmierer ist im Urlaub).
Warum wartest Du nicht eigentlich, bis Euer Programmierer zurück aus dem Urlaub ist ? Und warum hast Du damit zu tun, wo Du doch (ganz offensichtlich) kein Programmierer bist ? Ich verstehe - ehrlich gesagt - diese Situation bei Euch nicht.
Bernhard
-
Hast schon Recht. Wir sind wirklich ein komischer Laden.
Werde Euch natürlich nicht weiter belästigen.
Vielen Dank für die Hilfe.
Gruß
Kermit