Ray Padilla
asked on
Combine Querysend and Agent
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
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
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
ASKER
Didn't really solve the issue but thanks for the help...
ASKER