The below script to run workflow from PL/SQL code-
DECLARE
v_itemtype VARCHAR2 (50);
v_itemkey VARCHAR2 (50);
v_process VARCHAR2 (50);
v_userkey VARCHAR2 (50);
BEGIN
v_itemtype := 'TEXPO_W1';
v_itemkey := '123';
v_userkey := '123';
v_process := 'TEX_PO_P';
wf_engine.threshold := -1;
wf_engine.createprocess (v_itemtype, v_itemkey, v_process);
wf_engine.setitemuserkey (v_itemtype, v_itemkey, v_userkey);
wf_engine.setitemowner (v_itemtype, v_itemkey, 'SYSADMIN');
wf_engine.startprocess (v_itemtype, v_itemkey);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLERRM);
END;
DECLARE
v_itemtype VARCHAR2 (50);
v_itemkey VARCHAR2 (50);
v_process VARCHAR2 (50);
v_userkey VARCHAR2 (50);
BEGIN
v_itemtype := 'TEXPO_W1';
v_itemkey := '123';
v_userkey := '123';
v_process := 'TEX_PO_P';
wf_engine.threshold := -1;
wf_engine.createprocess (v_itemtype, v_itemkey, v_process);
wf_engine.setitemuserkey (v_itemtype, v_itemkey, v_userkey);
wf_engine.setitemowner (v_itemtype, v_itemkey, 'SYSADMIN');
wf_engine.startprocess (v_itemtype, v_itemkey);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLERRM);
END;