Oracle Workflow Tutorial
Oracle Workflow Tutorial
Oracle Workflow Tutorial
Search
Workflow tutorial
Prudhvi
Overview:
This workflow tutorial will illustrate how to create or define a new workflow from scratch including attributes, notifications,
messages, roles or users, functions, processes and last but not the least, how to launch a workflow from PL/SQL. The workflow
concepts are better explained using an example.
Business Requirement:
When an item is created in inventory, workflow needs to be launched and it should collect the details of the item created and sends
a notification to group of users along with the details and link to master item form.
Process flow:
When an item is created it will create/insert a record in MTL_SYSTEM_ITEMS_B so create a database trigger on the table and
launch workflow from that trigger. All you need to do is create the workflow, create the trigger, pl/sql package, roles and finally
create an item in inventory.
Open WFSTD and save as new workflow
Create Process
Create Functions including START and END
Create Attributes
Create Messages
Create Notification
Create Roles & assign to notification
Link all activities with in process
Save workflow to database
Create database trigger
Create PL/SQL Package
http://www.erpschools.com/articles/workflowtutorial 1/28
3/7/2016 oracle Workflow tutorial
Run “Workflow Background Process” Concurrent Program
1) Open WFSTD and save as new workflow:
Navigation: File >> Open
Click Browse then navigate to Workflow installation directory
Navigation: Workflow Installation Directory WFDATAUSWFSTD
Now Click File > Save as, Enter “ErpSchools Demo” and click OK
Right click on WFSTD and select New Item type
http://www.erpschools.com/articles/workflowtutorial 2/28
3/7/2016 oracle Workflow tutorial
Enter the fields as shown in below image
Now you will see ErpSchools Demo icon in the Navigator
http://www.erpschools.com/articles/workflowtutorial 3/28
3/7/2016 oracle Workflow tutorial
Expand the node to see attributes, processes, notifications, functions, Events, Messages and lookup types.
2) Create Process
Double click on Process to open up the properties window as shown below
http://www.erpschools.com/articles/workflowtutorial 4/28
3/7/2016 oracle Workflow tutorial
Enter the fields as shown in below image
Click OK
http://www.erpschools.com/articles/workflowtutorial 5/28
3/7/2016 oracle Workflow tutorial
Double click ErpSchools Process Icon to open process window where we can draw our workflow diagram.
Right click on process window and then click on New Function.
http://www.erpschools.com/articles/workflowtutorial 6/28
3/7/2016 oracle Workflow tutorial
Properties window will open as shown below
Change/Enter the fields as shown in below image
Change Item Type to Standard. This is important as we are using START and END functions which came from WFSTD (Standard
item type).
Select Internal Name as Start
Remaining fields will be populated automatically.
Go to Node tab and select “Start” from the drop down. This is mandatory and can’t be ignored.
http://www.erpschools.com/articles/workflowtutorial 7/28
3/7/2016 oracle Workflow tutorial
Click Apply then OK
Again Right click on white space and click New Function
http://www.erpschools.com/articles/workflowtutorial 8/28
3/7/2016 oracle Workflow tutorial
Change the properties as below
Item Type: Standard
Internal Name: END
Go to Node tab and select “End” from the drop down. This is mandatory and can’t be ignored.
Click Apply and then OK
http://www.erpschools.com/articles/workflowtutorial 9/28
3/7/2016 oracle Workflow tutorial
We will come back to this process window later after we have all components / activities ready to link. for now just close process
window and go to navigator
3) Create Workflow Function:
Right click on white space in the process window and then click New Function. Alternatively you can select Functions in Navigator
and right click to get “New Function” option
Enter the fields as shown in below image
http://www.erpschools.com/articles/workflowtutorial 10/28
3/7/2016 oracle Workflow tutorial
Click Apply and then OK
We will join these activities later after we have our notification ready.
4) Create Workflow Attributes:
Navigation: Window menu > Navigator
http://www.erpschools.com/articles/workflowtutorial 11/28
3/7/2016 oracle Workflow tutorial
Right click on Attributes and click New Attribute
Enter the fields as shown in below image
http://www.erpschools.com/articles/workflowtutorial 12/28
3/7/2016 oracle Workflow tutorial
Click Apply and then OK
Create one more attribute
Right click on Attributes and click New Attribute
Enter the fields as shown in below image
http://www.erpschools.com/articles/workflowtutorial 13/28
3/7/2016 oracle Workflow tutorial
Click Apply and then OK.
Here INVIDITM form belongs to “Master Item” for from inventory module.
Now we have two attributes ready to use.
5) Create Workflow Messages:
click on Message and click New
Properties window will pop up as show below
http://www.erpschools.com/articles/workflowtutorial 14/28
3/7/2016 oracle Workflow tutorial
Enter the fields
Internal Name: ERP_SEND_ITEM_DET_MSG
Display Name: Send Item Details Message
Description: Send Item Details Message
Go to Body Tab and enter as shown below
http://www.erpschools.com/articles/workflowtutorial 15/28
3/7/2016 oracle Workflow tutorial
Click Apply and then OK
Navigation: Window Menu > Navigator
Select Item Form Link Attribute
Drag and drop both attributes to “Send Item Details Message”. If you miss this step you will not be able to see the attribute values
with in email.
6) Create Workflow Notifications:
Right click on white space in process window and then click New Notification
http://www.erpschools.com/articles/workflowtutorial 16/28
3/7/2016 oracle Workflow tutorial
Enter fields as shown in the below image
Message: Sned Item Details Message
Click Apply and then OK
7) Create Roles and assign it to notification:
Adhoc roles can be created through PL/SQL API’s from database or they can be created from Applications using User Management
Responsibility. If you use PL/SQL to create roles make sure you give all user names and role names in UPPER case to avoid some
problems
Alternatively you can use USERNAME directly with in the notification.
If you wish to create User Roles manually then follow the below articles
http://www.erpschools.com/articles/workflowtutorial 17/28
3/7/2016 oracle Workflow tutorial
User Role Creation through API: WF_DIRECTORY API
User Role Creation from "User Management" Responsibility: Role Creation
Using Adhoc roles in workflow notifications:
Navigation: File > Load Roles from Database
Select roles you want to use and then click OK.
Open the notification properties and then navigate to node tab, select performer as the role you just created and loaded from
database.
8)Link all activities with in process
Open Process window and join all the activities we created so far. To join one activity to other you need to first select the source
activity , right click and drag a line to destination activity.
9)Save workflow to database
There are three different methods to upload a workflow into database. The simple one is from workflow builder tool itself.
Go to File > Save as and choose the option “database”.
Provide your apps user login credentials and click OK.
To understand how to save workflow from a file (.wft) to database and vice versa you can read the below article.
Workflow Migration
10)Launching workflow from PL/SQL:
Make sure to run "Workflow background process" after item is created.
http://www.erpschools.com/articles/workflowtutorial 18/28
3/7/2016 oracle Workflow tutorial
Workflow will get into defered status initially and after workflow background process program is completed it should be
in running mode.
Compile the PL/SQL code in database.
First create a database trigger as below to call a PL/SQL procedure from which you kick off the workflow.
–Create Database Trigger
1 CREATE OR REPLACE TRIGGER "ERP_SCHOOLS_DEMO_TRIGGER" AFTER INSERT ON INV.MTL_SYSTEM_ITEMS_B REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW
2 DECLARE
7 lv_itemkey VARCHAR2(10);
9 error_msg VARCHAR2(2000);
10 error_code NUMBER;
11 BEGIN
12 lv_user_id := fnd_global.user_id;
13 lv_orgid := fnd_global.org_id;
15 ERP_DEMO.LAUNCH_WORKFLOW('ERP_DEMO'
16 ,lv_itemkey
18 ,lv_id
19 ,lv_orgid
20 ,lv_item_segment1
21 );
23 error_code := SQLCODE;
24 error_msg := SQLERRM(SQLCODE);
25 RAISE_APPLICATION_ERROR(-20150,error_msg);
26 END;
–Create PL/SQL Package to kickoff workflow
2 PROCEDURE LAUNCH_WORKFLOW
3 (
4 itemtype IN VARCHAR2,
5 itemkey IN VARCHAR2,
6 process IN VARCHAR2,
7 item_id IN NUMBER,
8 org_id IN NUMBER,
http://www.erpschools.com/articles/workflowtutorial 19/28
3/7/2016 oracle Workflow tutorial
9 item_segment1 IN VARCHAR2
10 );
11 END ERP_DEMO;
2 PROCEDURE LAUNCH_WORKFLOW(
3 itemtype IN VARCHAR2,
4 itemkey IN VARCHAR2,
5 process IN VARCHAR2,
6 item_id IN NUMBER,
7 org_id IN NUMBER,
8 item_segment1 IN VARCHAR2
9 )
10 IS
11 v_master_form_link varchar2(5000);
12 v_item_number varchar2(100);
13 v_add_item_id varchar2(5000);
14 error_code varchar2(100);
15 error_msg varchar2(5000);
16 BEGIN
18 v_item_number := item_segment1;
20 WF_ENGINE.Threshold := -1;
23 v_master_form_link := wf_engine.getitemattrtext(
30 --set the attribute values in workflow so that you can use them in notifications
34 WF_ENGINE.STARTPROCESS(itemtype, itemkey);
36 error_code := SQLCODE;
37 error_msg := SQLERRM(SQLCODE);
39 END LAUNCH_WORKFLOW;
40 -- This procedure will just put the item number into workflow attribute ERP_ITEM_NUMBER
http://www.erpschools.com/articles/workflowtutorial 20/28
3/7/2016 oracle Workflow tutorial
41 PROCEDURE GET_ITEM_DETAILS(
42 itemtype IN VARCHAR2,
43 itemkey IN VARCHAR2,
44 actid IN NUMBER,
45 funcmode IN VARCHAR2,
47 )
48 IS
49 v_GET_ITEM_NUMBER VARCHAR2(1000);
50 BEGIN
54 --v_GET_ITEM_NUMBER := wf_engine.getitemattrtext(
58 resultout:='COMPLETE:'||'Y';
60 dbms_output.put_line('Entered Exception');
61 fnd_file.put_line(fnd_file.log,'Entered Exception');
62 END GET_ITEM_DETAILS;
63 END ERP_DEMO;
64 /
Create Inventory Item
Go to Inventory module and create inventory item from master org form.
Run “Workflow Background Process” concurrent program
Go to System administrator responsibility and launch concurrent program “Workflow background process” and choose Yes to the
parameter process deferred.
RELATED POSTS
ARTICLES /
TOOLS /
http://www.erpschools.com/articles/workflowtutorial 21/28
3/7/2016 oracle Workflow tutorial
WORKFLOW /
ARTICLES /
TOOLS /
WORKFLOW /
ARTICLES /
TOOLS /
WORKFLOW /
ARTICLES /
39 COMMENTS
thirupathi
JULY 22, 2011 @ 4:33 PM
this is vary use full material
thank u
shantanu jain
AUGUST 2, 2011 @ 7:27 AM
this is the best website for study ………….
kartheeka
AUGUST 10, 2011 @ 1:59 PM
good for beginners
abhi karthi
http://www.erpschools.com/articles/workflowtutorial 22/28
3/7/2016 oracle Workflow tutorial
very good material to easy learn
sudhakar
AUGUST 10, 2011 @ 4:43 PM
Excellent for beginners
Aparna
AUGUST 18, 2011 @ 2:03 PM
Can you please post such screenshots for discoverer tutorial for beginner like where to write the query and all
javed khan
AUGUST 23, 2011 @ 5:06 PM
Can you please post such screenshots for discoverer plus tutorial for beginner like how to edit the query and how to create new
worksheet and how to define the LOV for the parameter like wise……All related informatin.
sreenivas
SEPTEMBER 29, 2011 @ 11:35 AM
Its good but but you missed the connectivity between start, function, notification and end.
Its more usefull when yo provide such sreen shots for who ever wants to do sample workflow development.
and its more usefull when you provide issues where you mostly will struck up while developing workflow.
you site is very usefull for techical consultant.Keep it up our job my friend.
Thanks
Sreenivas
this is vary use full material
thank u. It help me a lot.
MILAN
OCTOBER 14, 2011 @ 2:22 PM
plz give me me a solution— When an item is created it will create/insert a record in MTL_SYSTEM_ITEMS_B ,the notification goes
to the creator.
Workflow will launched from concuurent program not from the database trigger.
will u plz help me out?
http://www.erpschools.com/articles/workflowtutorial 23/28
3/7/2016 oracle Workflow tutorial
Waqas Hassan
OCTOBER 23, 2011 @ 3:52 PM
Hi,
I want to download “Oracle Workflow Builder”. How can i download this software?
Regards.
Core Tamil
NOVEMBER 25, 2011 @ 4:47 PM
Ammmaa Apdiya..
Mahendar
DECEMBER 8, 2011 @ 3:32 PM
Use ful…
but need brief intruduction about the used proces,,,,,
mahesh
DECEMBER 20, 2011 @ 3:43 PM
hi,
how to add request date date column in order workflow first table and this column extracts information from order line request
date..
PLZ help me
sreekanth
DECEMBER 21, 2011 @ 9:48 AM
Excellent material for the beginners. Thk you erp schools.
shishu paul
FEBRUARY 7, 2012 @ 2:53 PM
Very good material and definitions and like as an live demonstrations. Shishu Paul Chandigarh
Raman
MAY 3, 2012 @ 12:26 PM
Dear Sir,
Very good material, but small issue while saving the workflow, can you help me out. Please find the error given below
http://www.erpschools.com/articles/workflowtutorial 24/28
3/7/2016 oracle Workflow tutorial
382: Design Validation generated 1 warning(s). You may save invalid definitions but they should not be used in running process.
354: ‘SAVE’ validation failed for activity ‘ERP_DEMO/ERP_ITEM_PROCESS’.
352: Process must contain a start activity with no ‘in’ transitions.
Raman
Jack
JUNE 8, 2012 @ 12:51 AM
Good effort, but alot of gaps.. it need more clarifications..anyway thanks !
aithya
AUGUST 22, 2012 @ 3:46 PM
hi
good material oracle workflow
Nageswara Rao
AUGUST 27, 2012 @ 12:39 PM
Hi Sir
This Example is very good.please tell me out deploy oracla apps.
sasha
OCTOBER 2, 2012 @ 11:22 PM
Thank u sir. God bless u
Sunil Mane
FEBRUARY 22, 2013 @ 12:26 PM
I have tried this example. When I saved in data base and checked from tables, get data from
item_types,messages,attributes,processes. But i cant get value for notification from ‘WF_NOTIFICATIONS’ table. I have created
item in master organization and again checked but still not getting value for notification and also from front end on workflow
screen. Can u help me to resolve it.
Puspendu Das
APRIL 10, 2013 @ 6:24 PM
I am also facing the same problem as Sunil Mane
abhi
MAY 21, 2013 @ 9:47 PM
http://www.erpschools.com/articles/workflowtutorial 25/28
3/7/2016 oracle Workflow tutorial
Great …. document
Regards
Abhi
Subhan
AUGUST 26, 2013 @ 3:01 PM
This is very use full material and very easy for beginner.
Jagadekara Reddy
SEPTEMBER 25, 2013 @ 3:06 PM
HI RAMAN,
DOUBLE CLICK ON START ICON NODE TAB GIVE START/END AS START
AND END FOR END ICON THEN IT WILL VALIDATE
Abid
OCTOBER 4, 2013 @ 5:39 PM
workflow can’t be initialize from database trigger.
see note 603595.1
Abid
OCTOBER 4, 2013 @ 6:22 PM
Sorry for previous comments
Workflow can’t trigger from database trigger unless you run
Workflow Background Engine concurrent request
Mahtab
OCTOBER 12, 2013 @ 11:25 AM
Excellent study material
chandu
JUNE 11, 2014 @ 2:20 PM
This is good for beginers.
Thanks for you effort!!!
chandu
JUNE 11, 2014 @ 2:22 PM
Good material for beginers.
http://www.erpschools.com/articles/workflowtutorial 26/28
3/7/2016 oracle Workflow tutorial
Thanks for your effort
Priya MP
JUNE 26, 2014 @ 2:01 PM
This tutorial is really helpful. Is it possible to query the WS_NOTIFICATIONS table?
venkat
JULY 2, 2014 @ 1:27 PM
Hi Sir,
Thanks for your effort
vedashruti
OCTOBER 14, 2014 @ 3:39 AM
very simple and detailed explanation… best site for beginners
venkatesh
JANUARY 21, 2015 @ 4:24 PM
very helpful for beginners
Anuj
SEPTEMBER 23, 2015 @ 6:59 AM
Hi,
I followed the steps and I am getting the notifications but I am getting the following message displayed
‘New Item is created
Item Number #&ERP_ITEM_NUMBER’ it is not displaying the item created.
Any guidance in resolving this issue will be appreciated.
AP
DECEMBER 11, 2015 @ 3:14 PM
Hi,
I have completed all the way till Run “Workflow Background Process” concurrent program. Where do we see result? Please guide us
with the further steps. Appreciated.
Thanks,
AP
AP
http://www.erpschools.com/articles/workflowtutorial 27/28
3/7/2016 oracle Workflow tutorial
Hi,
I have completed all the way till Run “Workflow Background Process” concurrent program. Where do we see result? Where can I
find the notification. Please guide us with the further steps. Appreciated.
Thanks,
AP
Sagar Tarade
FEBRUARY 16, 2016 @ 10:32 AM
Very helpful study material for Workflow learner…:)
LEAVE A REPLY
YOUR NAME
YOUR EMAIL
YOUR WEBSITE
PO ST C O MM E N T
BA C K T O T OP
[email protected] | +1 847 857 7655 (USA) (WhatsApp) | [email protected] (iMsg) | erpSchools (Skype)
Copyright erpSchools & Prudhvi Avuthu
Copying of content without written permission is not allowed.
http://www.erpschools.com/articles/workflowtutorial 28/28