Tuesday, October 20, 2009

EMAIL Activation with Oracle SOA Suite 11g

In the previous post I described how to configure/send an email from BPEL. Here we will consider processing the email response. In this simple example, the customer order is processed in BPEL and an email is sent to jcooper informing him of the task requiring his attention. The email will contain a link to access the Worklist app and also 2 links -
to either"Approve" or "Reject" the order.



Again this simple demo uses Apache James.



Pre-requisites


1. Upload the demo users (jcooper etc.) to SOA Suite 11g.
Note: jcooper is assigned the email address jcooper@emailExample.com

The utility to lad the demo users is available at
http://www.oracle.com/technology/products/soa/hw/samples/workflow-001-DemoCommunitySeedApp.zip

2. Configure email users on James
I've added the following users

- adduser bpelinbox welcome1
- adduser bpelsender welcome1
- adduser jcooper welcome1


Configure James to use the server name emailExample.com by editing the file apps/james/SAR-INF/config.xml



3. Add emailExample.com to your /etc/hosts file
e.g. 127.0.0.1 emailExample.com

4. Configure MSFT Outlook for the 3 email addresses you created in James


Here is the configuration for jcooper, just adapt the same for the other 2 email accounts.










Configure UMS on FMW11g

Set Workflow Notification Properties as follows –





Configure usermessagingdriver-email as follows -


James uses the Pop3 protocol for incoming mails. When you start up James you see

that Pop3 is running on port 110.


So essentially all we need to set here for incoming mails are the following properties -

MailAccessProtocol --> POP3
ReceiveFolder --> INBOX
IncomingMailServer --> emailExample.com
IncomingMailServerPort --> 110
IncomingMailIDs --> bpelinbox@emailExample.com
IncomingUserIDs --> bpelinbox
IncomingUserPasswords -->
--> Type of Password --> Use clear...
--> (password = welcome1)









Make sure James is up and running



Create a simple BPEL process that includes Human Workflow



I am using the following order.xsd as input & output


The definition of the Human Workflow component is as follows -

Note: Make notification actionable needs to be checked.





Parameters- (what is to be approved) is set to element of type order

Possible outcomes are Approve or Reject

The task is being assigned to jcooper




Deploy and Test

The reminder email arrives in jcooper's Inbox




Here I click on the "Reject" link
The Composite process completes with the Outcome - REJECT


































































1 comment:

Priya said...

Hi,

i ahve configurede the actionable as bpelinbox@emailExample.com as you said. I receive the email, but when i click the approve/reject, an email is sen tto the actionable address, but no action is taken on the task. The task state is still running..

please help...