Retry PO Approval Workflow Process in EBS
阿新 • • 發佈:2018-12-23
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