Here are steps/events for Oracle Workflow Notification Outbound Processing(eMail from Oracle Applications Workflow to Users)
1.When workflow Engine determines that a notification message must be sent, it raises an event in BES (Business Event System) oracle.apps.wf.notifications.send
Event is raised with Notification ID (NID) as event key
2. There is seeded subscription to this Event
3. Event is placed on WF_DEFERRED agent
4.Event is dequeued from WF_DEFERRED and subscription is processed
5. Subscription places event message to WF_NOTIFICATION_OUT agent.
6.Notification Mailer dequeues message from WF_NOTIFICATION_OUT agent and
6.1convert XML representation of notification into MIME encoded message (Multi-purpose Internet Mail Extensions) and
6.2 Send message by SMTP (Simple Mail Transfer Protocol) to intended user (If Test Address/Override Address is set then email is sent to Test Address
E-Mail Notification is sent if all below conditions are true
a) Notification status is OPEN or CANCELED and
b) Notification mail_status is MAIL or INVALID and
c) Recipient Role has a valid e-mail address and Notification Preference is in the format MAIL%
d) Workflow Deferred Agent Listener is running
e) Workflow Notification Mailer is running
To check a) & b) run below query
SELECT status, mail_status FROM wf_notifications WHERE notification_id = ‘&NID’;
mail_status >> SENT means mail has gone out of mailer to user
To check c) run below query
SELECT email_address, nvl(WF_PREF.get_pref(name, ‘MAILTYPE’),notification_preference)
FROM wf_roles
WHERE name = upper(’&recipient_role’);
To check d) & e) Use OAM (Oracle Application Manager)
.
Reference
Workflow Administrator Guide (Page 73-75)
How to troubleshoot outbound Workflow Notification Mailer Issues in Oracle E-Business Suite 11i/R12 coming soon …
Related Posts for Workflow
Popularity: 14% [?]




Good hands-on exercises (installation, patching, cloning), very experienced trainer worth every penny
12 users commented in " Oracle Workflow Notification Mailer Outbound Processing "
Follow-up comment rss or Leave a TrackbackHi Atul,
Thanks for Nice Post. I want to share the following things, which I noticed.
I recently Configured Oracle Workflow Notification Mailer in 11.5.10.2 Instance. I noticed one thing that, Recently we applied RUP5 Patch to present 11.5.10.2 Instance. Once We Applied RUP5, We are not receiving Oracle Alerts Mails. Finally I got it from RUP5 features and found that, Before RUP4, Oracle Alert was using Unix Send Mail to send Oracle Alerts. From RUP4, Workflow Notification Mailer needs to be configured for the same purose.
According to your above procedure, Oracle Alerts directly Enques into WF_NOTIFICATION_OUT table and deques it from there and send the relevant mail to users.
I noticed this one regarding Alerts. If we are not getting mails in time, we better to rebuild the wf_notification_out table using $FND_TOP\patch\115\sql\wfntfqup.sql script, this one we need to run this script with the help of Oracle Support.
We need to schedule the “Purge Obsolete Workflow Run time data” Program to purge obsolete workflow data.
Thanks again for nice post Atul.
hi all,
when am doing perl adcfgclone.pl dbTier
that time error was occured
please help me very urgent…………
ERROR:
RC-40201: Unable to connect to Database YTEN.
StackTrace:
java.lang.Exception: Cannot connect to database using DBUtil
at oracle.apps.ad.clone.ApplyDatabase
.checkDBConnection(ApplyDatabase.java:3382)
at oracle.apps.ad.clone.ApplyDatabase.(ApplyDatabase.java:524)
at oracle.apps.ad.clone.ApplyDatabase.(ApplyDatabase.java:328)
at oracle.apps.ad.clone.ApplyDatabase.(ApplyDatabase.java:304)
at oracle.apps.ad.clone.ApplyDBTier.(ApplyDBTier.java:154)
at java.lang.reflect.Constructor.newInstance(Native Method)
at oracle.apps.ad.clone.util.CloneProcessor.run(CloneProcessor.java:68)
at java.lang.Thread.run(Thread.java:479)
DEBUG: checkDBConnection out()
Executing runInstallDriver…
Started unzipping files…
UNZIP used: UnZip 5.51 of 22 May 2004, by Info-ZIP. Maintained by C. Spieler. Send
Verifying correctness of adcrdbclone.sql
Instantiating /test/yten/r02/oracle/ytendb/9.2.0/appsutil/template/adcrdbclone.sql to /test/yten/r02/oracle/ytendb/9.2.0/appsutil/install/YTEN_ebs/adcrdbclone.sql
Clustered Database: false
instantiate file:
source : /test/yten/r02/oracle/ytendb/9.
2.0/appsutil/template/adcrdbclone.sql
dest : /test/yten/r02/oracle/ytendb/9
.2.0/appsutil/install/YTEN_ebs/adcrdbclone.sql.bak
AC-00439: Creation of file /test/yten/r02/oracle/
ytendb/9.2.0/appsutil/install/YTEN_ebs/adcrdbclone.sql.bak failed
Raised by oracle.apps.ad.autoconfig.InstantiateFile
instantiate file:
source : /test/yten/r02/oracle/ytendb/9.2.0/a
ppsutil/install/YTEN_ebs/adcrdbclone.sql.bak
dest : /test/yten/r02/oracle/ytendb/9.2.0/ap
psutil/install/YTEN_ebs/adcrdbclone.sql
DEBUG : The destination file does not have write permission /tmp/adcrdbclone.sql
DEBUG : Changing the permission of the file failed
AC-00444: Unable to write to file: java.io.FileNotFoundException:
/test/yten/r02/oracle/ytendb/9.2.0/appsutil/instal
l/YTEN_ebs/adcrdbclone.sql.bak (No such file or directory)
Raised by oracle.apps.ad.autoconfig.InstantiateFile
setting permissions: /tmp/adcrdbclone.sql a+r
AC-00425: Setting permissions failed for file: /tmp/adcrdbclone.sql
Raised by oracle.apps.ad.autoconfig.InstantiateFile
AC-50401: Command: su root -c “cp
/tmp/adcrdbclone.sql /test/yten/r02/oracle/ytendb
/9.2.0/appsutil/install/YTEN_ebs/adcrdbclone.sql” failed
Raised by oracle.apps.ad.autoconfig.InstantiateFile
AC-00439: Creation of file /test/yten/r02/oracle/ytendb/9.2.
0/appsutil/install/YTEN_ebs/adcrdbclone.sql failed
Raised by oracle.apps.ad.autoconfig.InstantiateFile
StackTrace:
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1591)
at oracle.apps.ad.util.SystemC
heck.setPermissions(SystemCheck.java:1250)
at oracle.apps.ad.clone.ApplyDatabas
e.runInstallDriver(ApplyDatabase.java:1001)
at oracle.apps.ad.clone.ApplyDatabase.(ApplyDatabase.java:580)
at oracle.apps.ad.clone.ApplyDatabase.(ApplyDatabase.java:328)
at oracle.apps.ad.clone.ApplyDatabase.(ApplyDatabase.java:304)
at oracle.apps.ad.clone.ApplyDBTier.(ApplyDBTier.java:154)
at java.lang.reflect.Constructor.newInstance(Native Method)
at oracle.apps.ad.clone.util.CloneProcessor.run(CloneProcessor.java:68)
at java.lang.Thread.run(Thread.java:479)
Thank you
lakshmi
Check these lines carefully …
DEBUG : The destination file does not have write permission /tmp/adcrdbclone.sql
setting permissions: /tmp/adcrdbclone.sql a+r
AC-00425: Setting permissions failed for file: /tmp/adcrdbclone.sql
AC-50401: Command: su root -c “cp
/tmp/adcrdbclone.sql /test/yten/r02/oracle/ytendb
/9.2.0/appsutil/install/YTEN_ebs/adcrdbclone.sql” failed
Raised by oracle.apps.ad.autoconfig.InstantiateFile
Which user you are using to run postclone ?
Check file permissions ?
brother,
I am sure u ran the adcfgclone script as a root user.
vijay.
Hi,
Cna I get the etrm for relation between queue tables and notification tables?I mean to say wf_notification and wf_notification_out
How to integrate IdMUnit with oracle identity manager
IdMUnit is an xUnit automated testing framework for Identity Management solutions.
http://sourceforge.net/projects/idmunit
Hi atul,
Can u please tell me how to integrate idMUnit with oracle identity manager
hi atul i am still waiting ur post on troubleshooting of workflow notification mailer.
Thanks
Brijesh
Hi Atul,
Pls post
How to troubleshoot outbound Workflow Notification Mailer Issues in Oracle E-Business Suite 11i/R12 coming soon …
Regards,
Gurudatt
Hi,
I have a requirement from my clients.
Standard Functionality: When a Manager clicks on the APPROVE (button / link) to approve a workflow notification from a mailing application, a (response) mail gets composed to the Workflow Mailbox with the NID and Access Key. The content as shown below.
===========================
Action: ‘Approve’
Comments: ”
NID[3699/874478985@WFMAIL3]
===========================
Requirement:
The requirement is that, when the Maanger clicks on Approve / Reject, the original message body also has to get populated into the response mail along with the NID and Access Key.There would be audits conducted(looking into the workflow mail box) on the approval / rejection decisions taken by the users. The intention of getting the originial message body is to identify, to which notification(or letter) this action was taken. Me, being a Technical person can get it from the Notification Id in the workflow mail box, but the users cant identify that. So, I need to get the original message body into the response. This is the reason for the requirement.
Actually, I dont need the whole message body, but the value in an URL attribute, which is one of the SEND attributes of the notification in question.
fyi, It is a VOTING ACTIVITY and hence, I donot know how many users would get the notification.
I tried creating a RESPONSE Attribute(I understand that, a response attribute is an attribute where I accept inputs from the user), but couldnt assign the value to that attribute.
Regards
Anil K A
Hi Atul,
We are getting this error in our Production for WF.
An Error occurred in the following Workflow.
Item Type = APEXP
Item Key = 356377
User Key =ER-356377
Error Name = WF_ERROR
Error Message = [WF_ERROR] ERROR_MESSAGE=3835: Error ‘-1001 - ORA-01001: invalid cursor’ encountered during execution of Generate function ‘WF_XML.Generate’ for event ‘oracle.apps.wf.notification.send’. ERROR_STACK=
Wfa_Sec.Get_Role_Info2(KRSS-IN)
Wfa_Sec.Get_Role_Info3(KRSS-IN)
Wf_Directory.GetRoleInfo2(KRSS-IN)
Wf_Directory.GetRoleInfoMail(KRSS-IN)
WF_XML.Generate(oracle.apps.wf.notification.send, 15355045)
WF_XML.Generate(oracle.apps.wf.notification.send, 15355045)
Wf_Event.setMessage(oracle.apps.wf.notification.send, 15355045, WF_XML.Generate)
Wf_Event.dispatch_internal()
Error Stack =
Activity Id = 203007
Activity Label = REQUEST_APPROVAL_PROCESS:REQUEST_APPROVE_FROM_APPROVER
Result Code = #MAIL
Notification Id = 15355045
Plese can you help.
Best Regards,
Ashish
Hi Atul,
I’ve tried to send an test email, but I didn’t receive it.
I’ve checked all the points from a) to e) and everything is OK.
Can you please help me?
Regards,
Mitzu.
Leave A Reply