quickplace placebot

Posted on 2007-11-15
Last Modified: 2013-12-18
I'm trying to create an email notification placebot which should run when a form is submited.
I've tried to adopt the code from a placebot which runs on the folder in which the document created by the form "Site Location" are placed. I struggling to figure out how to refer to the current document.


Sub Initialize

	On Error Goto errorhandler

	Dim ws As New notesuiworkspace


	Dim ss As New NotesSession

	Dim db As NotesDatabase

	Dim view As NotesView

	Dim doc As NotesDocument

	Dim docMail As NotesDocument


	Set db=ss.GetDatabase("QKPL200/QUICKPLACE","QuickPlace/test_project/PageLibrary8525787R006D805F.nsf")



	'Set view=db.GetView("Locations")

	'Set doc=view.GetFirstDocument

	webname = Evaluate({@webdbname},doc)

	'Set doc=ss.

	Set doc=ws.CurrentDocument.Document

	'While Not doc Is Nothing

	Dim CountryEMEA As Variant

	CountryEMEA = doc.GetItemValue( "c_Country" )(0)



	Set docMail = db.CreateDocument()

	Set rtitemBody = New NotesRichTextItem(docMail, "Body")

	docMail.Form = "Memo"


	If  CountryEMEA(0)="Test" Then 

		docMail.Sendto="mail address 1"

	Elseif  CountryEMEA(0)="test1" Then 

		docMail.Sendto="mail address 2"

	End If

	Msgbox "sending mail"

	Print "sending mail"


	docMail.Subject="Subject text"

	Call rtitemBody.appendtext("----------------------------------------------------------")

	Call rtitemBody.addnewline(1)

	Call rtitemBody.appendtext("A Notification from Lotus QuickPlace")

	Call rtitemBody.addnewline(1)

	Call rtitemBody.appendtext("----------------------------------------------------------")	

	Call rtitemBody.addnewline(2)

	Call rtitemBody.appendtext("You can access this page either by clicking on the link below, or by copying and pasting it into your browser.")		

	Call rtitemBody.addnewline(2)

	Call rtitembody.AppendText(""+Cstr(webname(0))+"/Locations/" + doc.UniversalID+"/?opendocument")	

	Call rtitemBody.addnewline(2)

	Call rtitemBody.appendtext("Regards,")

	Call rtitemBody.addnewline(1)

	Call rtitemBody.appendtext("Sender")

	Call rtitemBody.addnewline(2)

	Call rtitemBody.appendtext("----------------------------------------------------------")

	Call docMail.Send(False)




		'Set doc=view.GetNextDocument(doc)

'	Wend

	Exit Sub


	Msgbox "Error occured in the place bot at line no. "&Erl()&" error is "&Error()

End Sub

Open in new window

Question by:dgoldie
  • 3
  • 3
  • 2
LVL 63

Expert Comment

ID: 20296141
Dim uiw As New notesuiworkspace

Dim uidoc As notesuidocument

Dim doc1 As notesdocument

Set uidoc=uiw.currentdocument  ' uidoc is the current doc via UI

Set doc1=uidoc.document  ' doc1 is the currently open document - Backend

I hope this helps !

Author Comment

ID: 20306519
Thanks for the response however I just realised I was going about this in totally the wrong way.
To create the notification I did'nt need to reference the current document, it was in fact the last document in the view I needed to reference ie. GetLastDocument

LVL 63

Expert Comment

ID: 20309892
Glad you reolved this !
LVL 31

Accepted Solution

qwaletee earned 250 total points
ID: 20313210
Then you just need

Set view = db.getView(...)
Set doc = view.getLastDocument

By the way, NotesUiWorkspace and other NotesUI... classes do not work in placebots.  You need db.unprocessedDocument or session.documentContext, depending on how you are running.
Enabling OSINT in Activity Based Intelligence

Activity based intelligence (ABI) requires access to all available sources of data. Recorded Future allows analysts to observe structured data on the open, deep, and dark web.


Author Comment

ID: 20313741
The getlastdocument option works for newly created documents, is there a way of identifying the most recently updated document in a view/ folder?
LVL 31

Expert Comment

ID: 20314489
You need your view to sort by last modification date. You can build a custom view to do this.
LVL 63

Assisted Solution

SysExpert earned 250 total points
ID: 20317119
You would need a view tht is sorted by last modified date that you can access.

I hope this helps !

Author Closing Comment

ID: 31409484
Although I sort of answered my initial question, the combined contributions of qwaletee and SysExpert allowed me to gain access to a clearer understanding of the methods.

Featured Post

Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

  In today’s Arena we can’t imagine our lives without Internet as we are highly used to of it. If we consider our life style just for only 2 min we found that face to face communication is swapped by e-communication.  Every Where from Works place to…
This article covers general Notes 8.5 troubleshooting information including recreating the Notes\Data folder.
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at
You have products, that come in variants and want to set different prices for them? Watch this micro tutorial that describes how to configure prices for Magento super attributes. Assigning simple products to configurable: We assigned simple products…

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now