Retry PO Approval Workflow Process in EBS
Oracle EBS 11i中,经常会出现PO在审批的工作流中卡掉的情况,即到某一个审批节点时出 现异常,无法进行下一步。此时,一般可以通过运行指定的脚本,Retry这个工作流节点。 Retry都可以将异常的工作流跑通,如果还是出现异常,则可能需要进行reset操作,即将审 批中的单据退回到提交审批前的状态。这样的话工作人员需要重新进行审批。
PO模块工作流异常Retry的办法。
0)查询单据的item_type,item_key,wf_approval_process
--PR
SELECT HR.NAME, PRH.SEGMENT1, PRH.WF_ITEM_TYPE, PRH.WF_ITEM_KEY
FROM PO_REQUISITION_HEADERS_ALL PRH, HR_ALL_ORGANIZATION_UNITS HR
WHERE PRH.ORG_ID = HR.ORGANIZATION_ID
AND PRH.SEGMENT1 = '&Enter_PR_Number';
--PO
SELECT HR.NAME, POH.SEGMENT1, POH.WF_ITEM_TYPE, POH.WF_ITEM_KEY
FROM PO_HEADERS_ALL POH, HR_ALL_ORGANIZATION_UNITS HR
WHERE POH.ORG_ID = HR.ORGANIZATION_ID
AND POH.SEGMENT1 = '&Enter_PO_Number';
--PO Relese
SELECT HR.NAME,
POH.SEGMENT1,
POR.RELEASE_NUM,
POR.WF_ITEM_TYPE,
POR.WF_ITEM_KEY
FROM PO_HEADERS_ALL POH,
PO_RELEASES_ALL POR,
HR_ALL_ORGANIZATION_UNITS HR
WHERE POH.ORG_ID = HR.ORGANIZATION_ID
AND POR.ORG_ID = POH.ORG_ID
AND POH.PO_HEADER_ID = POR.PO_HEADER_ID
AND POH.SEGMENT1 = '&Enter_PO_Number'
AND POR.RELEASE_NUM = '&Enter_Release_Num';
--wf approval process
SELECT DOCUMENT_TYPE_CODE,
DOCUMENT_SUBTYPE,
WF_APPROVAL_ITEMTYPE,
WF_APPROVAL_PROCESS, --确认该值
WF_CREATEDOC_ITEMTYPE,
WF_CREATEDOC_PROCESS
FROM PO_DOCUMENT_TYPES_ALL_B
WHERE DOCUMENT_TYPE_CODE IN('REQUISITION','PO','RELEASE')
ORDER BY 1,2,3;
1)在管理界面Retry,需要sysadmin权限。
-
以sysadmin登陆;
-
操作路径: Workflow Administrator Web Applications –> Status Monitor -> 输入查询条件 (Type Internal Name 即对应 item_type) –> Action History -> Retry 即可。
2)登录到服务器的SQL*Plus
,运行wfretry.sql脚本。
- 以mgr用户,登录到服务器,并切换到 $FND_TOP/sql 路径下;
- 以apps用户登录到
SQL*Plus
; - 运行脚本: @wfretry,并按提示输入参数即可。
示例,以 PR 81000902 为例:
SQL> conn apps
Enter password:
Connected.
SQL> @wfretry
Enter value for 1: REQAPPRV
Enter value for 2: 267857-933577
Select from list of error activities
LABEL RESULT
------------------------------ ------------------------------
VERIFY_APPROVER_AUTHORITY #EXCEPTION
Label: MAIN_REQAPPRV_PROCESS
SKIP, RETRY or RESET activity?
Command: RETRY
Result of activity if command is SKIP
Result:
PL/SQL procedure successfully completed.
Commit complete.
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.6.0 - Production
3)在SQL*Plus
或者PL/SQL Developer中运行wf_engine.HandleError存储过程。
以PR 81000902 为例,确认好上述参数后,运行如脚本:
BEGIN
wf_engine.HandleError('REQAPPRV','267857-933577','MAIN_REQAPPRV_PROCESS','RETRY');
END;
commit;
4)确认时,查看该单据的工作流详情即可:
--查看工作流详情
SELECT WIAV.NAME ATTR_NAME,
SUBSTR(NVL(WIAV.TEXT_VALUE,
NVL(TO_CHAR(WIAV.NUMBER_VALUE),
TO_CHAR(WIAV.DATE_VALUE, 'DD-MON-YYYY hh24:mi:ss'))),
1,
30) VALUE
FROM WF_ITEM_ATTRIBUTE_VALUES WIAV, WF_ITEM_ATTRIBUTES WIA
WHERE WIAV.ITEM_TYPE = '&item_type'
AND WIAV.ITEM_KEY = '&item_key'
AND WIA.ITEM_TYPE = WIAV.ITEM_TYPE
AND WIA.NAME = WIAV.NAME
-- AND WIAV.NAME = 'SYSADMIN_ERROR_MSG'
AND WIA.TYPE <> 'EVENT';
小结
一般情况下,retry都可以将异常的工作流跑通,如果还是出现异常,则可能需要进行reset 操作,即将审批中的单据退回到提交审批前的状态。这样的话工作人员需要重新进行审批。
blog comments powered by Disqus