You are on page 1of 6

http://apps2fusion.

com/apps/workflows/373-workflow-notification-sender-email-address

Notifications from Oracle Workflows.


By default the sender in these Workflow Notification emails is always picked from Workflow Global
Configurations.
However in many cases, the clients demand that these workflow notification emails are sent from specific
email addresses.
Effectively the sender of these notification emails must not be picked up from global workflow configurations.
For example, the sender of workflow email notifications from Learning Management Module could
betraining@apps2fusion.com
On similar lines, the "Sender and Reply to Address" for the email notifications sent from iRecruitment
workflows could be jobs@apps2fusion.com
This feature is specially useful when you want the recepient of Email notifications to be able to reply to that
notification email itself.
Therefore there is often a need to send notification emails in such a way that Sender/From Email
address is specific to that workflow notification.
In this step by step demo, you will see a simple workflow that sends notification from a specific email account
named "Anil Passi Testing".
The idea is to use the special Workflow attributes that can be attached to the Notification message.
If you do not implement this approach, then sender of the notification will be picked from the Workflow Global
Preferences.
Steps for imlpementing this solution are
Step 1. Create a role for the Sender of Workflow Email Notification
This can be created dynamically if one does not exist, using an API named wf_directory.createadhocrole
Step 2. In your workflow, define 3 Attributes
Their names are
#FROM_ROLE
#WFM_FROM
#WFM_REPLYTO
See the sample workflow for how these attributes appear in WF Builder
Step 3. Open the workflow builder and attach these attributes to Workflow Notification Message, by dragging
these attributes to the workflow message in workflow builder
Step 4. Set these WF Attributes programmatically in PL/SQL
wf_engine.setitemattrtext(itemtype => itemtype
,itemkey => itemkey
,aname => '#FROM_ROLE'
,avalue => 'Enter Name of the Sender Here');
wf_engine.setitemattrtext(itemtype => itemtype
,itemkey => itemkey
,aname => '#WFM_FROM'
,avalue => 'Enter Name of the Sender Here');
wf_engine.setitemattrtext(itemtype => itemtype
,itemkey => itemkey
,aname => '#WFM_REPLYTO'
,avalue => 'Enter the Senders Email Address Here');
In reality, you can set these WF Attributes to the desired values as per your logic

Page 1 of 6

http://apps2fusion.com/apps/workflows/373-workflow-notification-sender-email-address

In this example, the email from workflow notification will look as shown below.
Notice that sender is specific to our business requirement.

To replicate this test case on your eBusiness Suite environment is two step process.
Step 1. Right click to Save this workflow on your file system. Then open this wft file in WF Builder and save to
Database.
http://www.apps2fusion.com/training_demo/anilpassi/wf_override_sender/XXTEST.wft
Note- this workflow will send notification to SYSADMIN from desired email address.
Step 2. Run the below SQL to kick off this workflow and set the special attributes.
Within 3 minutes the email should be sent out by notification mailer.
DECLARE
l_itemkey VARCHAR2(100);
v_role_name VARCHAR2(100) := 'Anil Passi Testing';
v_role_email VARCHAR2(100) := 'anilpassi@gmail.com';
n_count_role INTEGER := 0;
BEGIN
SELECT COUNT(*)
INTO n_count_role
FROM wf_local_roles
WHERE NAME = v_role_name;
IF n_count_role = 0
THEN
--If the sender does not exist in WF Local Roles, then create one on the fly
wf_directory.createadhocrole(role_name
=> v_role_name
,role_display_name
=> v_role_name
,role_description
=> v_role_name
,notification_preference => 'MAILHTML'
,email_address
=> v_role_email
,status
=> 'ACTIVE'
,expiration_date
=> NULL);
dbms_output.put_line('Ad Hoc Role Created');
ELSE
dbms_output.put_line('Ad Hoc Role Already Exists');
END IF;
SELECT oe_order_headers_s.NEXTVAL

Page 2 of 6

http://apps2fusion.com/apps/workflows/373-workflow-notification-sender-email-address

INTO l_itemkey
FROM dual;
wf_engine.createprocess('XXTEST'
,l_itemkey
,'XXTEST');
wf_engine.setitemuserkey(itemtype => 'XXTEST'
,itemkey => l_itemkey
,userkey => l_itemkey);
wf_engine.setitemowner(itemtype => 'XXTEST'
,itemkey => l_itemkey
,owner => 'SYSADMIN');
--The three API calls in bold is what you need.
wf_engine.setitemattrtext(itemtype => 'XXTEST'
,itemkey => l_itemkey
,aname => '#FROM_ROLE'
,avalue => v_role_name);
wf_engine.setitemattrtext(itemtype => 'XXTEST'
,itemkey => l_itemkey
,aname => '#WFM_FROM'
,avalue => v_role_name);
wf_engine.setitemattrtext(itemtype => 'XXTEST'
,itemkey => l_itemkey
,aname => '#WFM_REPLYTO'
,avalue => v_role_email);
wf_engine.startprocess('XXTEST'
,l_itemkey);
COMMIT;
END;
/

To test your notifications, run this SQL


SELECT *
FROM wf_notifications
WHERE message_name = 'XX_TEST' AND message_type = 'XXTEST' ;
IMPORTANT- Given that our workflow in this demo will send notifications to SYSADMIN, ensure that
SYSADMIN does have an email address associated.
This can be checked by running SQL as below
SELECT email_address FROM WF_LOCAL_ROLES WHERE NAME like 'SYSADMIN%';
The Workflow process used for this demo is a very simple workflow, as shown below

Page 3 of 6

http://apps2fusion.com/apps/workflows/373-workflow-notification-sender-email-address

The attributes at workflow level are as shown below

Page 4 of 6

http://apps2fusion.com/apps/workflows/373-workflow-notification-sender-email-address

COMMENTS
0Naoufel MAMI
It works. Thanks alot and keep updated.

< Prev
Next >

2009-02-01 04:59

rgds
Naoufel
Quote

0Venkat Reddy Pulichintha


HI Anil,
While upload the http://www.apps2fusion.com/training_demo/anilpassi/wf_override_sender/XXTEST.wft
workflow. I am getting below error. I am very new in Workflow
Please help me out. What i am doing the mistaken.
1602: Could not save.
1400: Could not save to database. MODE=UPLOAD EFFDATE=2009/02 /15 12:28:20
1404: Please first load this entity or check protect and custom level of ITEM_TYPE 'XXTEST'.
2009-02-15 03:37

Thanks
Venkat Reddy Pulichintha
Quote

0Aymen
Hi,

2009-03-04 10:07

Can we send a notification using just Business event subscription without using Oracle workflow ?
Thanks
Quote

0Anil Passi
You need to subscribe a Workflow to send notification.
2009-03-04 15:54

Alternately send the notification using the PL/SQL API, as shown in URL below
http://apps2fusion.com/apps/workflows/219-open-source-in-oracle-apps-generic-workflow-notification-api
Thanks,
Anil Passi
Quote

0Elena

2009-04-03 04:04

Page 5 of 6

http://apps2fusion.com/apps/workflows/373-workflow-notification-sender-email-address

Hi Venkat,
I have found this site yesterday and I got the same error.
XXTEST process doesn't have and effective date that's why you got this error.
As well it open in Read-Only mode.
I have made the same process manually and it worked for me. It put the effective date.
Regards,
Jelena
Quote

0Sreenivasa
Hi Anil,

2009-05-25 08:16

I am getting the following error when trying to execute my custom workflow. Please advice.
1. Compiled the package in APPS schema.
2. Uplaoded the wft file.
3. Then tried to invoke the WF using the following code:
DECLARE
l_itemkey VARCHAR2(100);
v_role_name VARCHAR2(100) := 'SYSADMIN';
v_role_email VARCHAR2(100) := 'XXXX';
n_count_role INTEGER := 0;
BEGIN
SELECT xxitdcus.demand _seq_s.NEXTVAL
INTO l_itemkey
FROM dual;
wf_engine.creat eprocess('ITDDM DIN'
,l_itemkey
,'ITD_DEMAND_AP PROVAL');
wf_engine.setit emuserkey(itemt ype => 'ITDDMDIN'
,itemkey => l_itemkey
,userkey => l_itemkey);
wf_engine.setit emowner(itemtyp e => 'ITDDMDIN'
,itemkey => l_itemkey
,owner => 'SYSADMIN');
wf_engine.start process('ITDDMD IN'
,l_itemkey);
COMMIT;
END;
/
Error in Workflow ITDDMDIN/1006 ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'SET_STATUS_APP R'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Thank s & Regards,
Sreeni vasa

Page 6 of 6

You might also like