Thursday, March 4, 2010

External Mail with Attachments

I recently had a request from a client to add an action to Contact Center that emails the 'Requested By' person a PDF explaining how to use the ESS application. The same basic method can be used to email just about any file to anyone with a People record in TRIRGA (or even someone who does not have a people record if you create a custom GUI to enter the email address).

Anyhow, here are the basic steps:
  1. In the Application Setup manager there is a business object called Offline Content. Add a new record in the BO, giving it a Name and ID and attaching the file you want to send to the Offline Content field
  2. Create a new query that returns only the offline content record you just created - this will be used in the workflow below
  3. Create a new workflow that first runs the query above to get the content and then retrieves the person you want to email.
  4. Once you have a handle on the content and person (or at least their email address), add a Create task to create a Mail/Email Message and map (or hard code) the Body and Subject fields.
  5. Next, add a Create task to create a Mail/Email Address record that will be your From address (you must have a To and From email address). Map or hard code the Address and Name fields
  6. Add two Associate tasks, both using the string 'Email From Address', to associate the From address to the Email Message
  7. Repeat steps 5 & 6 for a To address, this time using the string 'Email To Address' for your Associate tasks
  8. Now, add a Create task to create a Mail/Email Attachment. In this step map to the Content field from the triOfflineContentBI field on the Offline Content record (from the Query task in step 3)
  9. Add one more Associate task the associates the Email Message to the Email Attachment using the string 'Email Attachment'
  10. Finally, use a Trigger Action task to trigger SEND on the Email Message
An decent example of sending an email message with binary content exists out of the box in the current TRIRIGA application. Refer to the triRETransactionPlan - Synchronous - Send Offline Transaction Template workfow in the Project module for reference.