Aug 3, 2008

Oracle Audit Trail

Do we need oracle Audit?
Find out more on oracle Audit.


Uploaded on authorSTREAM by soham_khot

--
Soham Khot

May 11, 2008

Initiating Workflow from pl/sql

There are many ways to invoke workflow. Let’s see how we can start a workflow from pl/sql package.

Inputs needed: Obviously, validated workflow which is saved in database.
Itemkey: Get the itemkey for the workflow you want to initiate.
Process Name: Get internal name of the procedure in the workflow which you want to initiate.

Call following APIs in the given sequence.

1> wf_engine.createprocess
This API creates a new runtime instance of the workflow process, Pass the item type and item key for the workflow.

2> wf_engine.setitemuserkey
Use this API to mark the new runtime instance of the workflow process with an
end–user key

3> wf_engine.SetItemAttrText
Use this API to set values for the item type attributes defined for workflow process .E.g.: Email ID, Description defined in the workflow.

4> wf_engine.setitemowner
Use this API to set the value of owner (Of Workflow)

5> wf_core.context
In case of exception, it will help in locating source of an error.

6> wf_engine.startprocess
Use this API to invoke the workflow for the item type and item key specified.

All the APIs are explain in Oracle Workflow API Reference Guide.


---Sample Code ---

DECLARE

l_itemtype VARCHAR2(30) := 'XX_TEST';
l_itemkey VARCHAR2(300) := 'TEST';

BEGIN

Begin
wf_engine.createprocess(l_itemtype, l_itemkey, 'XX_MAIN_TEST');
Exception
when others then
dbms_output.put_line('Error in create process:' sqlerrm);
End;

BEGIN
wf_engine.setitemuserkey(itemtype => l_itemtype
,itemkey => l_itemkey
,userkey => 'USERKEY: ' l_itemkey);
EXCEPTION
when others then
dbms_output.put_line('Error in set userkey process:' sqlerrm);
END;

BEGIN
wf_engine.setitemowner(itemtype => l_itemtype
,itemkey => l_itemkey
,owner => 'SYSADMIN');
EXCEPTION
when others then
dbms_output.put_line('Error in set owner process:' sqlerrm);
END;

BEGIN
wf_engine.startprocess(l_itemtype, l_itemkey);
dbms_output.put_line('Process started');
commit;
EXCEPTION
when others then
dbms_output.put_line('Error in set owner process:' sqlerrm);
END;
END;
/


-- Download the code.
Get the Code

When to use pl/sql calls?
Pl/sql calls can be used for mass uploads (not conversion), interface with the 3rd
party systems. Also to initiate approvals and to send emails from pl/sql.

In next posts I will explain which are the other methods to call workflows, how to monitor them and how to troubleshoot workflow issues.
Please let me know your comments/feedbacks.

Thanks,
Soham Khot

Apr 30, 2008

Free Access to an Oracle Vision Instance

Solution Beacon is offering free access to our Release 11i and Release 12 Vision instances.
You will not get backend access to database and Unix box. But atleast you will get front access with sysadmin responsibility.

Solution Beacon

Enjoy,
Soham Khot

Apr 22, 2008

Flex Program Vs Non-Flex Programs

What is the difference between flex programs and non-flex programs?