1. 程式人生 > >Retry PO Approval Workflow Process in EBS

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