2012年1月3日 星期二

Oracle ERP R12. <經驗分享>委外工單Vs.PO收料

因為一般存貨類的採購單,若其RECEIVING CONTROL設為Standard,則收料後其可驗亦可不驗,但若為委外工單所產生出來的採購單,則其若為Standard,則收料後會變成免驗,而且Inspection按鍵也會變反灰的,故若委外料件必需要驗收,請記得要在PO設定為必驗,建議Item亦一併設定為必驗。

2012年1月1日 星期日

Oracle ERP R12. - Sample for Cancel PR by API

因為在服務單位有大量Cancel PR的需求。此時就需要用到Oracle API 來大量處理。
以下為一Sample Code :


DECLARE
  CURSOR C_LIST IS
    SELECT PRHA.REQUISITION_HEADER_ID,
           PRLA.REQUISITION_LINE_ID
      FROM PO_REQUISITION_HEADERS_ALL PRHA
      JOIN PO_REQUISITION_LINES_ALL PRLA
        ON PRHA.REQUISITION_HEADER_ID = PRLA.REQUISITION_HEADER_ID
     WHERE PRHA.ORG_ID = 81 AND PRHA.SEGMENT1 IN ('1111','2222'); --確保對的清單
  --
  T_REQUISITION_HEADER_ID PO_TBL_NUMBER;
  T_REQUISITION_LINE_ID   PO_TBL_NUMBER;
  T_STATUS  VARCHAR2(2000);
  T_CNT     NUMBER;
  T_MSG     VARCHAR2(2000);
BEGIN
  FOR C1 IN C_LIST LOOP
    T_REQUISITION_HEADER_ID := PO_TBL_NUMBER();
    T_REQUISITION_HEADER_ID.EXTEND(2);
    T_REQUISITION_HEADER_ID(1) := C1.REQUISITION_HEADER_ID;
    T_REQUISITION_LINE_ID := PO_TBL_NUMBER();
    T_REQUISITION_LINE_ID.EXTEND(2);
    T_REQUISITION_LINE_ID(1) := C1.REQUISITION_LINE_ID;
    --
    PO_REQ_DOCUMENT_CANCEL_PVT.CANCEL_REQUISITION(1.0,
                                                  T_REQUISITION_HEADER_ID,
                                                  T_REQUISITION_LINE_ID,
                                                  SYSDATE,
                                                  'Cancel by API',
                                                  'SYSADMIN',
                                                  T_STATUS,
                                                  T_CNT,
                                                  T_MSG);
  END LOOP;
END;