Lekhwair Alatan
Lekhwair Alatan

Reputation: 49

Anytime changes are made on a form, an automatic email will be sent

Hi how do I make this be a automatic email notification? Right now its a manual via clicking a button.

Manual Button Code:

Sub Click(Source As Button) 
    Dim db As NotesDatabase 
    Dim doc As NotesDocument 
    ' get the database 
    Set db = New NotesDatabase( "", "LotusScript.nsf" ) 
    ' create a new document in the database 
    Set doc = New NotesDocument( db ) 
    ' set the new document's form so it'll be readable as a mail memo 
    doc.Form = "Memo" 
    ' set the new document's subject 
    doc.Subject = "Change Notification" 
    ' set the new document's body 
    doc.Body = "This Email is to notify you that changes has been made." 
    ' mail the new document 
    Call doc.Send( False, "Lekhwair Alatan" ) 
End Sub

Sample Email Notification

Upvotes: 0

Views: 145

Answers (1)

Tode
Tode

Reputation: 12060

To do this automatically you can use exactly the same code.

You just have to put it in the "PostSave"- Event of your form.

I just don't get, why you need to open a specific database to do this. I would use CurrentDatabase for that.

In addition: I would use a NotesRichtextitem and add a Doclink to it, so that the user can instantly open the document by clicking the link in the mail:

Sub PostSave( Source as NotesUIDocument )
    Dim ses as New NotesSession
    Dim db As NotesDatabase 
    Dim doc As NotesDocument 
    Dim body as NotesRichtextItem
    ' get the database 
    Set db = ses.CurrentDatabase
    ' create a new document in the database 
    Set doc = New NotesDocument( db ) 
    ' set the new document's form so it'll be readable as a mail memo 
    doc.Form = "Memo" 
    ' set the new document's subject 
    doc.Subject = "Change Notification" 
    ' set the new document's body 
    Set body = New NotesRichtextitem( doc, "Body" )
    Call body.AppendText( "This Email is to notify you that changes has been made." )
    Call body.AddNewLine(1)
    Call body.AppendText( "Click here to open document --> " )
    Call body.AppendDocLink( Source.document, "Click me" )
    ' mail the new document 
    Call doc.Send( False, "Lekhwair Alatan" ) 
End Sub

TAKE CARE: You cannot use this code in your Button, as there "Source" is the button and not the current document. You'd need 1 more line of code and one change:

Dim ws as New NotesUIWorkspace ' this line at the very top
....
Call body.AppendDocLink( ws.CurrentDocument.document, "Click me" ) 'this instead of Source.document

Upvotes: 1

Related Questions