Lotus Notes and Domino is not only about email, it’s more than that. One of it’s feature it workflow, where people can create workflow application faster an d easier than any other application out there.
One of the important thing in workflow is email notification, to let users know that they have one job to do, or just simply notification.
Example, if a staff create a leave request and when he or she submit the request, his or her manager will get an email notification about the request.
I have this one of my favorite sub program to create an email notification, well I named it “CreateEmailNotification”
.
If you like, you can use it for free. Just copy the sub program in one or new Script Library.
This is the sub program.
=====Start of Sub Program
Sub CreateMailNotification(doc As notesdocument, strSendTo As Variant, strSubject As String, strCopyTo As Variant)
Dim session As notessession
Dim db As notesdatabase
Dim docMail As notesdocument
Dim rtitem As Variant
Set db = doc.parentdatabase
Set session = db.Parent
Set docMail=db.createdocument
Set rtitem=docMail.CreateRichTextItem(“Body”)
If strSendTo(0)=”" Then Exit Sub
‘=====set mail
docMail.Form = “Memo”
docMail.From = session.UserName
docMail.Principle = session.UserName
docMail.SendTo = strSendTo
If Isarray(strCopyTo) Then
If strCopyTo(0)<>”" Then
docMail.CopyTo = strCopyTo
End If
Else
If strCopyTo<>”" Then
docMail.CopyTo = strCopyTo
End If
End If
docMail.Recipients = strSendTo
docMail.Subject = strSubject
docMail.PostedDate = Now
‘=====set body field
Call rtitem.AppendText(“Please click this doclink to see more details about the status ” + ” “)
Call rtitem.AppendDocLink( doc, “click to open document”)
Call rtitem.AddNewLine( 2 )
‘=====send mail
Call docMail.send(False)
End Sub
=====End of Sub Program
Feel free to do some modification if necessary.
You can call it from any lotusscript with simple line like this.
call Call CreateMailNotification (doc, doc.nmSendTo, strSubject,doc.nmCopyTo)
Don’t forget to put use “Script Libary Name” first.
Popularity: 14% [?]
We use the Ionet Workflow Manager for developing our Workflow applications. With this engine workflows can be created very easy, no programmeing experience needed.
hi, im still new. how to create a lotus script that will send an email to multiple user based on view selection from “view”?? thanks..
@eye zack: you need to extract the list of users into a variant, than you can put them into the script above (variable strSendTo).
you can use notesdocumetcollection class to collect the documets from the view.
Here is sample of my agent. this agent sent notification only to me. my program is like this : every document have their own email which i set as (appid). is there any other simple code that you know for share??
Sub Domain (s As NotesSession, db As NotesDatabase)
On Error Goto errhandler
Print “Domain – Start – ” & Now()
Dim view As NotesView
Dim doc As NotesDocument
Dim mailDoc As NotesDocument
Dim rtitem As NotesRichTextItem
Dim richStyle As NotesRichTextStyle
REM – for multiple user name
Dim i As Integer
Dim j As Integer
Dim UserList()
Dim FinalList As Variant
Dim item1 As NotesItem
Set view = db.GetView(“smv-DomainLessFive”)
Set doc = view.GetFirstDocument()
If Not doc Is Nothing Then
REM – for multiple username
i = 0
j = 0
Set item1 = doc.GetFirstItem(“appid”)
Forall a In item1.Values
If a “” Then
i = i + 1
End If
End Forall
i = i – 1
Redim UserList(i)
Forall b In item1.Values
If b “” Then
If Not j > i Then
UserList(j) = b
j = j + 1
End If
End If
End Forall
FinalList = Arrayunique(UserList, 0)
Set mailDoc = New NotesDocument(db)
Set rtitem = New NotesRichTextItem(mailDoc, “Body”)
Set richStyle = s.CreateRichTextStyle
mailDoc.Form = “Memo”
mailDoc.From = “Domino Server”
mailDoc.Subject = “Reminder – Domain Expiry Date Less Than 5 Day(s)!”
richStyle.Bold = True
richStyle.NotesColor = COLOR_RED
richStyle.FontSize = 14
Call rtitem.AppendStyle(richStyle)
Call rtitem.AppendText(“Reminder – Domain Expiry Date Less Than 5 Day(s)!”)
Call rtitem.AddNewLine(1)
Call rtitem.AppendText(“Domain(s) Listed Below Requires Your Immediate Attention!”)
Do While Not doc Is Nothing
richStyle.Bold = False
richStyle.NotesColor = COLOR_BLACK
richStyle.FontSize = 10
Call rtitem.AppendStyle(richStyle)
Call rtitem.AddNewLine(2)
Call rtitem.AppendText(“Company Name : ” & doc.company(0))
Call rtitem.AddNewLine(1)
Call rtitem.AppendText(“Domain Name : ” & doc.DomainName(0))
Call rtitem.AddNewLine(1)
Call rtitem.AppendText(“Domain License : ” & doc.DomainLicenseNumber(0))
Call rtitem.AddNewLine(1)
Call rtitem.AppendText(“Expiry Date : ” & Cstr(doc.Domain_Expired_Date(0)))
Call rtitem.AddNewLine(1)
Call rtitem.AppendText(“Agent Name : ” & Cstr(doc.DA_Name(0)))
richStyle.Bold = True
richStyle.NotesColor = COLOR_RED
richStyle.FontSize = 10
Call rtitem.AppendStyle(richStyle)
Call rtitem.AddNewLine(1)
Call rtitem.AppendText(“Total Day(s) Left : ” & Cstr(Cdbl(doc.Domain_Expired_Date(0)) – Cdbl(Date())))
Set doc = view.GetNextDocument(doc)
Loop
richStyle.Bold = False
richStyle.NotesColor = COLOR_BLACK
richStyle.FontSize = 8
Call rtitem.AppendStyle(richStyle)
Call rtitem.AddNewLine(2)
Call rtitem.AppendText(“Kindly act on it accordingly. Your immediate attention in this matter is much appreciated”)
Call rtitem.AddNewLine(1)
Call rtitem.AppendText(“** Note: This is a computer generated mail, therefore there’ll be no sender name attached **”)
Call mailDoc.Send(False, FinalList) ‘for multiple username
End If
finish:
Print “Domain – Start – ” & Now()
Exit Sub
errhandler:
Print “Sub/Function : ” & Lsi_info(2)
Print “Error Line : ” & Erl
Print “Error Message : ” & Error
Resume finish
End Sub
each form have field that hold email address.. ok.. how to notify email using that field? using agent that on schedule. so that mean each document will be notify using that email? please help me.