Combine Querysend and Agent

Posted on 2009-05-12
Last Modified: 2013-12-18
Hey Experts, I have a querysend that basically appends some text to the subject line then emails a copy of the email to a mail in db. In the mail in db I have an agent that checks a field if it contains more then 1 clientname then it creates a copy of that email for each JOBNUMBER in the email. What I'd like to do is combine these agents so that when the email is sent the querysend will detect the multiple client names and instead of emailing one email to the mail in db it will create a separate email for each jobnumber.....I've posted the code for the query send and the spit jobnumbers agent......The split jobnumbers agent actually deletes the original email that is rec'd in the mail in db after it has created the individual documents this would not be necessary if it is split before it arrives.....
Sub Querysend(Source As Notesuidocument, Continue As Variant)

	'Check preference and Warn if subject is blank for a new memo

	If source.Document.EnableBlankSubject(0) <> "1" Then

		If source.document.Subject(0) = "" Then

			If Messagebox(warnTxt, MB_YESNO + MB_ICONQUESTION, warnTitle ) = IDNO Then 

				vSubjectBlankSend = False


				Call source.Refresh

				Call cMemoObject.SetActionInProgress(MEMO_ACTION_NONE)

				Call Source.Document.ReplaceItemValue("SaveOptions","0")

				cMemoObject. SendBlankSubject=False

				continue = False		

				Exit Sub


				vSubjectBlankSend = True

				cMemoObject. SendBlankSubject=True

			End If

		End If

	End If


	If source.Document.HasItem("ActionInProgress") Then


	End If

	If source.Document.JobNumber(0) = "" Then



		'Remove old jobnumbers before mailing

		If Instr(source.Document.subject(0)," [" ) = 0 Then


			Subject$ = Trim(Strleft(source.Document.Subject(0),"["))

			Call Source.FieldSetText("Subject",Subject$)

		End If


		Dim CustomerName As Variant

		Dim CustomerJob As String

		Dim JobNumber As Variant

		ClientName_1 = source.Document.CustomerJob

		JobNumber  = source.Document.JobNumbers

		Call source.document.replaceitemvalue("Customerjob",Join(ClientName_1, ";")) 

		Call source.FieldAppendText("Subject"," [" & Join(JobNumber, ";") &"]") 		

		If Instr(source.Document.EnterBlindCopyTo(0),"]") = 0 Then

			Call source.FieldAppendText("EnterBlindCopyTo","")

		End If

		Call Source.FieldSetText("Customer",Join(ClientName_1, ";")) 		

		jobnumbers =source.Document.Jobnumber

		Call source.document.ReplaceItemValue("Filed","Yes")

		Call source.document.Save(True,False)	

	End If

End Sub

Sub Initialize

	Dim session As New NotesSession

	Dim jobnumberList As Variant

	Dim db As NotesDatabase

	Dim docA As NotesDocument

	Dim docB As NotesDocument

	Dim DeleteMe As String

	Dim collection As NotesDocumentCollection



	Set db = session.CurrentDatabase

	Set collection = db.UnprocessedDocuments

	Set docA = collection.GetFirstDocument()

	Call docA.refresh

	'If Instr(docA.CustomerJob(0),"; " ) = 1 Then

	If Instr(docA.ClientName_1(0),"; " ) = 1 Then

	'If Ubound(docA.CustomerJob) >0 Then




		If Not (docA Is Nothing) Then

			jobnumberList = docA.GetItemValue("jobnumber")

			Forall x In jobnumberlist

				Set docB = New NotesDocument( db )

				Call docA.CopyAllItems( docB, True )

				docB.jobnumber = Instr(docA.jobnumber(0),";" ) = 1

				docB.jobnumber = x	

				docB.clientname =""

				docB.clientname_1 =""

				docB.customer = ""

				Call docB.ComputeWithForm(True, True)

				Call docB.Save( True, True )


			End Forall

		End If

	End If


	If Instr(docA.ClientName_1(0),"; " ) = 0 Then

	'If Instr(docA.ClientName_1(0), Chr$(13))>0 Then	

	'If Ubound(docA.CustomerJob) < 1 Then	


	End If

End Sub

Open in new window

Question by:padillrr
  • 3

Accepted Solution

tiler earned 500 total points
ID: 24442573
I'm sorry this is not exactly a direct answer to your question, but why would you want to do this? I think it's better to send one email and let it be picked apart, if necessary, at the receiving end. Sending multiple emails is more of a load on your servers doing the mail routing, there's a longer delay for the user because more work is being done on their workstation, and if you decide to change how the system works later and keep the emails together as a single document at the receiving end (which I advise), you can do that without having to worry whether everyone's mail file has the updated code.

Author Comment

ID: 24558548
Good suggestion, I guess the real problem I'm having is the split agent is not running properly there are certain emails that it chokes on .....

Author Comment

ID: 24583995
I have to agree, I will try to get the split agent to run properly or try to figure out why the emails getting into the mail in db are getting somehow corrupted where the split agent will not run...Thanks

Author Closing Comment

ID: 31580695
Didn't really solve the issue but thanks for the help...

Featured Post

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

This is an old article, please see an updated version of this article, located here:
This article covers general Notes 8.5 troubleshooting information including recreating the Notes\Data folder.
Sending a Secure fax is easy with eFax Corporate ( First, Just open a new email message.  In the To field, type your recipient's fax number You can even send a secure international fax — just include t…
Internet Business Fax to Email Made Easy - With eFax Corporate (, you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…

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

15 Experts available now in Live!

Get 1:1 Help Now