Domino 9 und frühere Versionen > ND6: Entwicklung

MailSend-Problem II

(1/2) > >>

Colli:

Sub Querysave(Source As Notesuidocument, Continue As Variant)
   Dim session As New NotesSession
   
   If source.IsNewDoc Then
      Set db = session.CurrentDatabase
      Set mail = db.CreateDocument
      Set rtitem = mail.CreateRichTextItem("Body")
      
      mail.form = "Memo"
      mail.Subject = "Neuer Antrag"
      mail.SendTo = source.FieldGetText("MailEmpfaenger")
      
      Call rtitem.AppendText("In der Lotus Notes Datenbank wurde ein neuer Antrag eingereicht. Link zum Dokument-->")
      Call rtitem.AppendDocLink(source.Document,"")
      Call mail.Send(False)
      
   End If
End Sub


Dieses Script sorgt dafür, dass eine Mail an den Empfänger geschickt wird, der im Feld MailEmpfaenger eingetragen ist.

Nun kann es aber auch sein, dass kein Empfänger ausgewählt werden soll, das Feld ist somit leer. Wie kann ich das Script so ändern, dass die Bedingung abgeprüft wird? Kann man die If-Anweisung erweitern?
So in der Art:


Sub Querysave(Source As Notesuidocument, Continue As Variant)
   Dim session As New NotesSession
   
   If source.IsNewDoc & source.FieldGetText("MailEmpfaenger") <> "" Then
      Set db = session.CurrentDatabase
      Set mail = db.CreateDocument
      Set rtitem = mail.CreateRichTextItem("Body")
      
      mail.form = "Memo"
      mail.Subject = "Neuer Antrag"
      mail.SendTo = source.FieldGetText("MailEmpfaenger")
      
      Call rtitem.AppendText("In der Lotus Notes Datenbank wurde ein neuer Antrag eingereicht. Link zum Dokument-->")
      Call rtitem.AppendDocLink(source.Document,"")
      Call mail.Send(False)
      
   End If
End Sub

koehlerbv:
"&" ist der String-Concatenator, mach' daraus ein AND und es passt  ;)

Bernhard

Colli:
Danke! :D

Kann es sein, dass über dieses Script die Mail nur an eine Person geschickt werden kann? Mehrfachwerte zulassen hab ich im Feld drin, wenn ich aber mehrere Personen eintrage, dann kommt die Meldung: Mail kann nicht versendet werden, keine Entsprechung in Adressbüchern gefunden.

koehlerbv:
Die Empfänger müssen ein Array sein, kein skalarer String. Ein passendes Beispiel ist in der DesignerHelp.

Bernhard

Glombi:
Am einfachsten geht das mit den Mehrfachwerten, wenn Du das Backend-Dokuments verwendest. Da sieht dann so aus:

Sub Querysave(Source As Notesuidocument, Continue As Variant)
   Dim session As New NotesSession
dim doc as NotesDocument
set doc = Source.Document
   
   If source.IsNewDoc and doc.MailEmpfaenger(0) <> "" Then
      Set db = session.CurrentDatabase
      Set mail = db.CreateDocument
      Set rtitem = mail.CreateRichTextItem("Body")
     
      mail.form = "Memo"
      mail.Subject = "Neuer Antrag"
      mail.SendTo = doc.MailEmpfaenger
     
      Call rtitem.AppendText("In der Lotus Notes Datenbank wurde ein neuer Antrag eingereicht. Link zum Dokument-->")
      Call rtitem.AppendDocLink(doc,"")
      Call mail.Send(False)
     
   End If
End Sub


Andreas

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln