Solved

Combine Querysend and Agent

Posted on 2009-05-12
4
633 Views
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

				Source.GoToField("Subject")

				Call source.Refresh

				Call cMemoObject.SetActionInProgress(MEMO_ACTION_NONE)

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

				cMemoObject. SendBlankSubject=False

				continue = False		

				Exit Sub

			Else

				vSubjectBlankSend = True

				cMemoObject. SendBlankSubject=True

			End If

		End If

	End If

	

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

		source.Document.RemoveItem("ActionInProgress")

	End If

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

		

	Else

		'Remove old jobnumbers before mailing

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

		Else

			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),"jobcorrespondence@mail.com]") = 0 Then

			Call source.FieldAppendText("EnterBlindCopyTo","JobCorrespondence@mail.com")

		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

		

	Else

		

		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	

		docA.Remove(True)

	End If

End Sub

Open in new window

0
Comment
Question by:padillrr
  • 3
4 Comments
 
LVL 3

Accepted Solution

by:
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.
0
 

Author Comment

by:padillrr
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 .....
0
 

Author Comment

by:padillrr
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
0
 

Author Closing Comment

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

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

I thought it will be a good idea to make a post as it will help in case someone else faces these issues. I trust this gives an idea how each entry in Notes.ini can mean a lot for the Domino Server to be functioning properly. This article discusses t…
  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 tutorial demonstrates a quick way of adding group price to multiple Magento products.
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

919 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

19 Experts available now in Live!

Get 1:1 Help Now