Domino 9 und frühere Versionen > ND8: Entwicklung

Mail per Lotus Script versenden!

(1/2) > >>

Emre.1996:
Hallo,

ich brauch mal wieder Hilfe.

Ich möchte gerne Mail versenden und dazu habe ich zuerst ein Button erstellt. Dazu der Code:

Function postSaveMAEintritt(uidoc As NotesUIDocument)

Dim db As NotesDatabase
Dim profile As NotesDocument
Dim ws As New NotesUIWorkspace
Set uidoc = ws.CurrentDocument
Dim session As New NotesSession
Dim doc As NotesDocument
Dim maildoc As NotesDocument
Dim rtitem As NotesRichTextItem
Dim MailGesendet As NotesItem

Set doc = uidoc.Document

If doc.Getitemvalue("Status")(0) = "0" Then

MsgBox("Hall")
Set db = doc.Parentdatabase
Set profile = db.Getprofiledocument("DBProfile", "Main")
Set maildoc = New NotesDocument(db)
Set rtitem = New NotesRichTextItem( maildoc, "Body" )
maildoc.form = "Memo"
maildoc.Subject = "Test"
maildoc.sendto = doc.AusgeliehenVon

Call rtitem.AppendText( "Bitte geben Sie die folgende Resource zurück." )
Call rtitem.AddNewLine( 2 )
Call rtitem.AppendText( "Name: " + doc.Name(0) )
Call rtitem.AddNewLine( 2 )
Call rtitem.AppendText( "Typ: " + doc.Typ(0) )
Call rtitem.AddNewLine( 2 )
Call rtitem.AppendText( "Nummer: " + doc.DocNumber(0) )
Call rtitem.AddNewLine( 2 )
Call rtitem.AppendText( "Link zum Vorgang:" )
Call rtitem.AddNewLine( 2 )
Call rtitem.AppendText( doc.Notesurl )

maildoc.Send(False)
MsgBox("Test")
Call doc.Save(True,True)
Call uidoc.Close(True)
Print("Ihr Antrag wurde erfolgreich gesendet")
End If

End Function

Klappt super alles bestens. Mail kommt an wenn Status = 0 und bei 1 kommt nichts. Alles wunderbar.

Nur ich habe jetzt einen Agenten erstellt und diesen Code eingefügt und den versucht manuell zu starten.
Ich habe die Meldung bekommen. Der Agent ist durch ... Dokumente durchgelaufen ...
aber keine Mail bekommen.

Der Code ist in Front End und periodischen funktionieren ja nicht in Front end klassen.
Wie könnte ich diesen Code in Backend umändern?

Vielen Dank im Voraus

Driri:
Was versprichst Du dir denn davon, den Code in einen Agenten zu packen ?

Wenn ich das richtig deute, soll der Code doch beim Speichern des Dokumentes laufen. Da braucht es ja nicht zwingend einen Agent für.

Tode:
Damit wird vielleicht klarer:

--- Zitat ---Hallo Leute,

ich hätte dazu auch mal eine Frage.

Ich habe eine Datenbank, wo man Autos ausleihen kann. Beim Ausleihen bzw. bei der Rückgabe wird der Status in der Maske "Auto" von 0 bzw. 1 auf 1 bzw.0 geändert.
Bei der Ausgabe gibt man einen Datum ein "anwisierendes Rückgabedatum".
Meine Frage wäre wie könnte ich es am besten machen, damit wenn das "anwisierendes Rückgabedatum" fällig ist, eine Mail an den Ausleiher rausgeht?

Agent, der jeden Abend das Rückgabedatum überprüft und dann eine mail rausschickt ???

Vielen Dank im Voraus
--- Ende Zitat ---

kommt von hier

Schnubbel:
NotesUIWorkspace und NotesUIdocument gibt es nicht in periodischen Agenten. (Das schreibst du ja selbst).

Du willst dich also mit dem Thema Notesdocumentcollection und Schleifen auseinander setzen. Du möchtest ja mehrere Dokumente durchsuchen, ob bei dem Feld Status 0 oder 1 drin steht.

Zuvor musst du natürlich die Notesdocumentcollection basteln, das kannst du mit der Methode search aus der NotesDatabase machen.

In etwa so:

Formel = {Form="DeineForm"}

set dc = db.search (Formel, Nothing, 0)
If dc.count = 0 then
Exit Sub
End if

set doc = dc.getfirstdocument

While not (doc is Nothing)
... dein code ...
set doc = dc.getnextdocument(doc)
Wend

Das ist alles ausm Kopf geschrieben, die Deklaration der Variablen fehlt auch...
Rechtschreibfehler könnten drin sein.

Gruß

Thorsten

Emre.1996:
Hallo Thorsten,

vielen Dank für deine Antwort.

Ich weiß nur nicht wie ich auf das Feld "Status" in der Maske "Resource" zugreifen kann. Die Abfrage oder der Mail Send Teil ist ja kein Problem.

Mein einziges Problem ist wie ich den Wert des Feldes "Status" auslesen kann.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln