采购 接收检验入库 接口处理例子

--PO接收
DECLARE
  --待接收采购订单
  CURSOR C1 IS
    SELECT PHA.VENDOR_ID
          ,PHA.VENDOR_SITE_ID
          ,PHA.CURRENCY_CODE
          ,PHA.RATE_TYPE
          ,PLA.ITEM_ID
          ,PLA.UNIT_PRICE
          ,PLLA.PO_HEADER_ID
          ,PLLA.PO_LINE_ID
          ,PLLA.LINE_LOCATION_ID
          ,PLLA.SHIP_TO_ORGANIZATION_ID
          ,PLLA.SHIP_TO_LOCATION_ID
          ,PLLA.RECEIVING_ROUTING_ID
          ,PLLA.QUANTITY - PLLA.QUANTITY_RECEIVED TRANSACTION_QUANTITY
          ,PLLA.UNIT_MEAS_LOOKUP_CODE
    --       ,PLLA.*
      FROM PO_HEADERS_ALL        PHA
          ,PO_LINES_ALL          PLA
          ,PO_LINE_LOCATIONS_ALL PLLA
     WHERE PHA.PO_HEADER_ID = PLA.PO_HEADER_ID
       AND PLA.PO_LINE_ID = PLLA.PO_LINE_ID
       AND PLLA.LINE_LOCATION_ID = 3671155
       AND NVL(PLLA.APPROVED_FLAG
              ,'N') = 'Y'
       AND NVL(PLLA.CANCEL_FLAG
              ,'N') = 'N'
       AND NVL(PLLA.CLOSED_CODE
              ,'OPEN') != 'FINALLY CLOSED'
       AND PLLA.SHIPMENT_TYPE IN ('STANDARD'
                                 ,'BLANKET'
                                 ,'SCHEDULED');

  V_RCV_HEADERS_IFACE     PO.RCV_HEADERS_INTERFACE%ROWTYPE;
  V_RCV_TRANSACTION_IFACE PO.RCV_TRANSACTIONS_INTERFACE%ROWTYPE;
  V_PO_GL_PERIOD_STATUS   VARCHAR2(1);
  V_INV_PERIOD_STATUS     VARCHAR2(1);
BEGIN

  FND_GLOBAL.APPS_INITIALIZE(USER_ID      => 1027
                            ,RESP_ID      => 54872
                            ,RESP_APPL_ID => 401);

  --检查采购或总账会计期是否打开
  SELECT CLOSING_STATUS
    INTO V_PO_GL_PERIOD_STATUS
    FROM GL_PERIOD_STATUSES_V GP
   WHERE APPLICATION_ID = 101
     AND SET_OF_BOOKS_ID = FND_PROFILE.VALUE('GL_SET_OF_BKS_ID')
     AND CLOSING_STATUS != 'N'
     AND TRUNC(SYSDATE) BETWEEN START_DATE AND END_DATE;

  IF V_PO_GL_PERIOD_STATUS = 'C'
  THEN
    APP_EXCEPTION.RAISE_EXCEPTION('采购或总账会计期间未打开');
  END IF;

  FOR R1 IN C1
  LOOP
 
    --检查库存会计期是否打开
    BEGIN
      SELECT 1
        INTO V_INV_PERIOD_STATUS
        FROM ORG_ACCT_PERIODS_V
       WHERE REC_TYPE = 'ORG_PERIOD'
         AND ORGANIZATION_ID = R1.SHIP_TO_ORGANIZATION_ID
         AND TRUNC(SYSDATE) BETWEEN START_DATE AND END_DATE;
    EXCEPTION
      WHEN NO_DATA_FOUND THEN
        APP_EXCEPTION.RAISE_EXCEPTION('库存会计期间未打开');
    END;
 
    --接收头信息
    V_RCV_HEADERS_IFACE.TRANSACTION_TYPE := 'NEW'; --ADD添加至接收 NEW新建接收
    -- V_RCV_HEADERS_IFACE.RECEIPT_HEADER_ID := V_RECEIPT_HEADER_ID; 添加至接收时先获取到已接收ID
 
    V_RCV_HEADERS_IFACE.LAST_UPDATE_DATE  := SYSDATE;
    V_RCV_HEADERS_IFACE.LAST_UPDATED_BY   := FND_GLOBAL.USER_ID;
    V_RCV_HEADERS_IFACE.CREATION_DATE     := SYSDATE;
    V_RCV_HEADERS_IFACE.CREATED_BY        := FND_GLOBAL.USER_ID;
    V_RCV_HEADERS_IFACE.LAST_UPDATE_LOGIN := FND_GLOBAL.USER_ID;
 
    V_RCV_HEADERS_IFACE.PROCESSING_STATUS_CODE := 'PENDING';
    V_RCV_HEADERS_IFACE.RECEIPT_SOURCE_CODE    := 'VENDOR';
    V_RCV_HEADERS_IFACE.AUTO_TRANSACT_CODE     := 'RECEIVE'; --'RECEIVE'需要进过检验接收 DELIVER是直接交货
 
    V_RCV_HEADERS_IFACE.RECEIPT_NUM             := NULL; --Automatic Number
    V_RCV_HEADERS_IFACE.VENDOR_ID               := R1.VENDOR_ID;
    V_RCV_HEADERS_IFACE.VENDOR_SITE_ID          := R1.VENDOR_SITE_ID; --Optional
    V_RCV_HEADERS_IFACE.EXPECTED_RECEIPT_DATE   := SYSDATE;
    V_RCV_HEADERS_IFACE.VALIDATION_FLAG         := 'Y';
    V_RCV_HEADERS_IFACE.SHIP_TO_ORGANIZATION_ID := R1.SHIP_TO_ORGANIZATION_ID;
 
    SELECT PO.RCV_HEADERS_INTERFACE_S.NEXTVAL
      INTO V_RCV_HEADERS_IFACE.HEADER_INTERFACE_ID
      FROM DUAL;
 
    SELECT RCV_INTERFACE_GROUPS_S.NEXTVAL
      INTO V_RCV_HEADERS_IFACE.GROUP_ID
      FROM DUAL;
 
    INSERT INTO PO.RCV_HEADERS_INTERFACE
      (HEADER_INTERFACE_ID
      ,GROUP_ID
      ,LAST_UPDATE_DATE
      ,LAST_UPDATED_BY
      ,CREATION_DATE
      ,CREATED_BY
      ,LAST_UPDATE_LOGIN
      ,PROCESSING_STATUS_CODE
      ,RECEIPT_SOURCE_CODE
      ,TRANSACTION_TYPE
      ,AUTO_TRANSACT_CODE
      ,RECEIPT_NUM
      ,VENDOR_ID
      ,VENDOR_SITE_ID
      ,EXPECTED_RECEIPT_DATE
      ,VALIDATION_FLAG
      ,SHIP_TO_ORGANIZATION_ID
      ,RECEIPT_HEADER_ID)
    VALUES
      (V_RCV_HEADERS_IFACE.HEADER_INTERFACE_ID
      ,V_RCV_HEADERS_IFACE.GROUP_ID
      ,V_RCV_HEADERS_IFACE.LAST_UPDATE_DATE
      ,V_RCV_HEADERS_IFACE.LAST_UPDATED_BY
      ,V_RCV_HEADERS_IFACE.CREATION_DATE
      ,V_RCV_HEADERS_IFACE.CREATED_BY
      ,V_RCV_HEADERS_IFACE.LAST_UPDATE_LOGIN
      ,V_RCV_HEADERS_IFACE.PROCESSING_STATUS_CODE
      ,V_RCV_HEADERS_IFACE.RECEIPT_SOURCE_CODE
      ,V_RCV_HEADERS_IFACE.TRANSACTION_TYPE
      ,V_RCV_HEADERS_IFACE.AUTO_TRANSACT_CODE
      ,V_RCV_HEADERS_IFACE.RECEIPT_NUM
      ,V_RCV_HEADERS_IFACE.VENDOR_ID
      ,V_RCV_HEADERS_IFACE.VENDOR_SITE_ID
      ,V_RCV_HEADERS_IFACE.EXPECTED_RECEIPT_DATE
      ,V_RCV_HEADERS_IFACE.VALIDATION_FLAG
      ,V_RCV_HEADERS_IFACE.SHIP_TO_ORGANIZATION_ID
      ,V_RCV_HEADERS_IFACE.RECEIPT_HEADER_ID);
 
    --接收行信息
    V_RCV_TRANSACTION_IFACE.LAST_UPDATE_DATE  := SYSDATE;
    V_RCV_TRANSACTION_IFACE.LAST_UPDATED_BY   := FND_GLOBAL.USER_ID;
    V_RCV_TRANSACTION_IFACE.CREATION_DATE     := SYSDATE;
    V_RCV_TRANSACTION_IFACE.CREATED_BY        := FND_GLOBAL.USER_ID;
    V_RCV_TRANSACTION_IFACE.LAST_UPDATE_LOGIN := FND_GLOBAL.USER_ID;
 
    SELECT RCV_TRANSACTIONS_INTERFACE_S.NEXTVAL
      INTO V_RCV_TRANSACTION_IFACE.INTERFACE_TRANSACTION_ID
      FROM DUAL;
 
    V_RCV_TRANSACTION_IFACE.HEADER_INTERFACE_ID     := V_RCV_HEADERS_IFACE.HEADER_INTERFACE_ID;
    V_RCV_TRANSACTION_IFACE.GROUP_ID                := V_RCV_HEADERS_IFACE.GROUP_ID;
    V_RCV_TRANSACTION_IFACE.PROCESSING_STATUS_CODE  := 'PENDING';
    V_RCV_TRANSACTION_IFACE.TRANSACTION_STATUS_CODE := 'PENDING';
    V_RCV_TRANSACTION_IFACE.PROCESSING_MODE_CODE    := 'IMMEDIATE';
    V_RCV_TRANSACTION_IFACE.VALIDATION_FLAG         := 'Y';
    V_RCV_TRANSACTION_IFACE.RECEIPT_SOURCE_CODE     := 'VENDOR';
    V_RCV_TRANSACTION_IFACE.VENDOR_ID               := R1.VENDOR_ID;
    V_RCV_TRANSACTION_IFACE.VENDOR_SITE_ID          := R1.VENDOR_SITE_ID; --Optional
 
    V_RCV_TRANSACTION_IFACE.SOURCE_DOCUMENT_CODE := 'PO';
    V_RCV_TRANSACTION_IFACE.PO_HEADER_ID         := R1.PO_HEADER_ID;
    V_RCV_TRANSACTION_IFACE.PO_LINE_ID           := R1.PO_LINE_ID;
    V_RCV_TRANSACTION_IFACE.PO_LINE_LOCATION_ID  := R1.LINE_LOCATION_ID;
    V_RCV_TRANSACTION_IFACE.PO_RELEASE_ID        := NULL;
 
    V_RCV_TRANSACTION_IFACE.TRANSACTION_TYPE := 'RECEIVE';
 
    IF R1.RECEIVING_ROUTING_ID = 3 --直接交货
    THEN
      V_RCV_TRANSACTION_IFACE.AUTO_TRANSACT_CODE    := 'DELIVER';
      V_RCV_TRANSACTION_IFACE.DESTINATION_TYPE_CODE := 'INVENTORY';
   
    ELSE
      V_RCV_TRANSACTION_IFACE.AUTO_TRANSACT_CODE    := 'RECEIVE';
      V_RCV_TRANSACTION_IFACE.DESTINATION_TYPE_CODE := 'RECEIVING';
    END IF;
 
    V_RCV_TRANSACTION_IFACE.ITEM_ID             := R1.ITEM_ID;
    V_RCV_TRANSACTION_IFACE.TRANSACTION_DATE    := SYSDATE;
    V_RCV_TRANSACTION_IFACE.QUANTITY            := R1.TRANSACTION_QUANTITY;
    V_RCV_TRANSACTION_IFACE.UNIT_OF_MEASURE     := R1.UNIT_MEAS_LOOKUP_CODE; --Not Code 
    V_RCV_TRANSACTION_IFACE.TO_ORGANIZATION_ID  := R1.SHIP_TO_ORGANIZATION_ID;
    V_RCV_TRANSACTION_IFACE.SHIP_TO_LOCATION_ID := R1.SHIP_TO_LOCATION_ID;
    V_RCV_TRANSACTION_IFACE.LOCATION_ID         := R1.SHIP_TO_LOCATION_ID;
 
    V_RCV_TRANSACTION_IFACE.CURRENCY_CODE            := R1.CURRENCY_CODE; --add on 2011-08-10 by sie chenyueyong
    V_RCV_TRANSACTION_IFACE.CURRENCY_CONVERSION_TYPE := R1.RATE_TYPE;
 
    V_RCV_TRANSACTION_IFACE.CURRENCY_CONVERSION_DATE := SYSDATE;
    V_RCV_TRANSACTION_IFACE.PO_UNIT_PRICE            := R1.UNIT_PRICE;
 
    INSERT INTO PO.RCV_TRANSACTIONS_INTERFACE
      (LAST_UPDATE_DATE
      ,LAST_UPDATED_BY
      ,CREATION_DATE
      ,CREATED_BY
      ,LAST_UPDATE_LOGIN
      ,INTERFACE_TRANSACTION_ID
      ,HEADER_INTERFACE_ID
      ,GROUP_ID
      ,PROCESSING_STATUS_CODE
      ,TRANSACTION_STATUS_CODE
      ,PROCESSING_MODE_CODE
      ,VALIDATION_FLAG
      ,RECEIPT_SOURCE_CODE
      ,VENDOR_ID
      ,VENDOR_SITE_ID
      ,SOURCE_DOCUMENT_CODE
      ,PO_HEADER_ID
      ,PO_LINE_ID
      ,PO_LINE_LOCATION_ID
      ,PO_RELEASE_ID
      ,TRANSACTION_TYPE
      ,AUTO_TRANSACT_CODE
      ,DESTINATION_TYPE_CODE
      ,ITEM_ID
      ,TRANSACTION_DATE
      ,QUANTITY
      ,UNIT_OF_MEASURE
      ,TO_ORGANIZATION_ID
      ,SHIP_TO_LOCATION_ID
      ,CURRENCY_CODE
      ,CURRENCY_CONVERSION_TYPE
      ,CURRENCY_CONVERSION_DATE
      ,PO_UNIT_PRICE)
    VALUES
      (V_RCV_TRANSACTION_IFACE.LAST_UPDATE_DATE
      ,V_RCV_TRANSACTION_IFACE.LAST_UPDATED_BY
      ,V_RCV_TRANSACTION_IFACE.CREATION_DATE
      ,V_RCV_TRANSACTION_IFACE.CREATED_BY
      ,V_RCV_TRANSACTION_IFACE.LAST_UPDATE_LOGIN
      ,V_RCV_TRANSACTION_IFACE.INTERFACE_TRANSACTION_ID
      ,V_RCV_TRANSACTION_IFACE.HEADER_INTERFACE_ID
      ,V_RCV_TRANSACTION_IFACE.GROUP_ID
      ,V_RCV_TRANSACTION_IFACE.PROCESSING_STATUS_CODE
      ,V_RCV_TRANSACTION_IFACE.TRANSACTION_STATUS_CODE
      ,V_RCV_TRANSACTION_IFACE.PROCESSING_MODE_CODE
      ,V_RCV_TRANSACTION_IFACE.VALIDATION_FLAG
      ,V_RCV_TRANSACTION_IFACE.RECEIPT_SOURCE_CODE
      ,V_RCV_TRANSACTION_IFACE.VENDOR_ID
      ,V_RCV_TRANSACTION_IFACE.VENDOR_SITE_ID
      ,V_RCV_TRANSACTION_IFACE.SOURCE_DOCUMENT_CODE
      ,V_RCV_TRANSACTION_IFACE.PO_HEADER_ID
      ,V_RCV_TRANSACTION_IFACE.PO_LINE_ID
      ,V_RCV_TRANSACTION_IFACE.PO_LINE_LOCATION_ID
      ,V_RCV_TRANSACTION_IFACE.PO_RELEASE_ID
      ,V_RCV_TRANSACTION_IFACE.TRANSACTION_TYPE
      ,V_RCV_TRANSACTION_IFACE.AUTO_TRANSACT_CODE
      ,V_RCV_TRANSACTION_IFACE.DESTINATION_TYPE_CODE
      ,V_RCV_TRANSACTION_IFACE.ITEM_ID
      ,V_RCV_TRANSACTION_IFACE.TRANSACTION_DATE
      ,V_RCV_TRANSACTION_IFACE.QUANTITY
      ,V_RCV_TRANSACTION_IFACE.UNIT_OF_MEASURE
      ,V_RCV_TRANSACTION_IFACE.TO_ORGANIZATION_ID
      ,V_RCV_TRANSACTION_IFACE.SHIP_TO_LOCATION_ID
      ,V_RCV_TRANSACTION_IFACE.CURRENCY_CODE
      ,V_RCV_TRANSACTION_IFACE.CURRENCY_CONVERSION_TYPE
      ,V_RCV_TRANSACTION_IFACE.CURRENCY_CONVERSION_DATE
      ,V_RCV_TRANSACTION_IFACE.PO_UNIT_PRICE);
  END LOOP;

  COMMIT;

  DBMS_OUTPUT.PUT_LINE(V_RCV_TRANSACTION_IFACE.GROUP_ID);

  V_REQUEST_ID := FND_REQUEST.SUBMIT_REQUEST('PO'
                                            ,'RVCTP'
                                            ,'接收事务处理处理器'
                                            ,TO_CHAR(SYSDATE
                                                    ,'dd-mon-yy hh:mi:ss')
                                            ,FALSE
                                            ,'IMMEDIATE'
                                            , --Start Date
                                             V_RCV_TRANSACTION_IFACE.GROUP_ID
                                            ,CHR(0)
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,'');

  COMMIT;

END;

 

--检验

DECLARE
  --接收未检验
  CURSOR C1 IS
    SELECT RT.INTERFACE_TRANSACTION_ID
          ,RT.GROUP_ID
          ,RT.LAST_UPDATE_DATE
          ,RT.LAST_UPDATED_BY
          ,RT.CREATION_DATE
          ,RT.CREATED_BY
          ,RT.LAST_UPDATE_LOGIN
          ,RT.TRANSACTION_TYPE
          ,RT.TRANSACTION_DATE
          ,RS.QUANTITY UNACCEPTED_QTY --接收未检验数量
          ,RT.QUANTITY --接收数量
          ,RT.UNIT_OF_MEASURE
          ,RT.INTERFACE_SOURCE_CODE
          ,RT.SHIPMENT_HEADER_ID
          ,RT.SHIPMENT_LINE_ID
          ,RT.VENDOR_ID
          ,RT.VENDOR_SITE_ID
          ,RT.SOURCE_DOCUMENT_CODE
          ,RT.PARENT_TRANSACTION_ID
          ,RT.PO_HEADER_ID
          ,RT.PO_LINE_ID
          ,RT.PO_LINE_LOCATION_ID
          ,RT.INSPECTION_STATUS_CODE
          ,RT.DESTINATION_TYPE_CODE
          ,RT.LOCATION_ID
          ,RT.DESTINATION_CONTEXT
          ,RT.TRANSACTION_ID
          ,RSL.PO_DISTRIBUTION_ID
          ,RSL.ITEM_ID
          ,RSL.TO_ORGANIZATION_ID
          ,RSL.SHIP_TO_LOCATION_ID
          ,RT.CURRENCY_CODE
          ,RT.CURRENCY_CONVERSION_TYPE
          ,RT.PO_UNIT_PRICE
      FROM RCV_TRANSACTIONS     RT
          ,RCV_SHIPMENT_HEADERS RSH
          ,RCV_SHIPMENT_LINES   RSL
          ,RCV_SUPPLY           RS
     WHERE RT.SHIPMENT_HEADER_ID = RSH.SHIPMENT_HEADER_ID
       AND RT.SHIPMENT_LINE_ID = RSL.SHIPMENT_LINE_ID
       AND RT.TRANSACTION_TYPE = 'RECEIVE'
       AND RT.TRANSACTION_ID = RS.RCV_TRANSACTION_ID
       AND RT.INTERFACE_TRANSACTION_ID = 5613930;

  L_IFACE_RCV_REC   PO.RCV_TRANSACTIONS_INTERFACE%ROWTYPE;
  V_DISTRIBUTION_ID NUMBER;
  V_REQUEST_ID      NUMBER;
BEGIN

  FND_GLOBAL.APPS_INITIALIZE(USER_ID      => 1027
                            ,RESP_ID      => 54872
                            ,RESP_APPL_ID => 401);

  SELECT RCV_INTERFACE_GROUPS_S.NEXTVAL
    INTO L_IFACE_RCV_REC.GROUP_ID
    FROM DUAL;

  FOR R1 IN C1
  LOOP
 
    L_IFACE_RCV_REC.LAST_UPDATE_DATE  := SYSDATE;
    L_IFACE_RCV_REC.LAST_UPDATED_BY   := FND_GLOBAL.USER_ID;
    L_IFACE_RCV_REC.CREATION_DATE     := SYSDATE;
    L_IFACE_RCV_REC.CREATED_BY        := FND_GLOBAL.USER_ID;
    L_IFACE_RCV_REC.LAST_UPDATE_LOGIN := FND_GLOBAL.USER_ID;
 
    SELECT RCV_TRANSACTIONS_INTERFACE_S.NEXTVAL
      INTO L_IFACE_RCV_REC.INTERFACE_TRANSACTION_ID
      FROM DUAL;
 
    L_IFACE_RCV_REC.SHIPMENT_HEADER_ID := R1.SHIPMENT_HEADER_ID; --Shipment Header
 
    L_IFACE_RCV_REC.PROCESSING_STATUS_CODE  := 'INSPECTION';
    L_IFACE_RCV_REC.TRANSACTION_STATUS_CODE := 'INSPECTION';
    L_IFACE_RCV_REC.PROCESSING_MODE_CODE    := 'IMMEDIATE';
 
    L_IFACE_RCV_REC.RECEIPT_SOURCE_CODE := 'VENDOR';
    L_IFACE_RCV_REC.VENDOR_ID           := R1.VENDOR_ID;
    L_IFACE_RCV_REC.VENDOR_SITE_ID      := R1.VENDOR_SITE_ID; --Optional
 
    L_IFACE_RCV_REC.SOURCE_DOCUMENT_CODE := 'PO';
    L_IFACE_RCV_REC.PO_HEADER_ID         := R1.PO_HEADER_ID;
    L_IFACE_RCV_REC.PO_LINE_ID           := R1.PO_LINE_ID;
    L_IFACE_RCV_REC.PO_LINE_LOCATION_ID  := R1.PO_LINE_LOCATION_ID;
 
    L_IFACE_RCV_REC.TRANSACTION_TYPE      := 'ACCEPT'; --交货时为DELIER
    L_IFACE_RCV_REC.DESTINATION_TYPE_CODE := 'RECEIVING'; --交货时为INVENTORY
 
    L_IFACE_RCV_REC.SHIPMENT_LINE_ID      := R1.SHIPMENT_LINE_ID;
    L_IFACE_RCV_REC.PARENT_TRANSACTION_ID := R1.TRANSACTION_ID;
 
    L_IFACE_RCV_REC.ITEM_ID                 := R1.ITEM_ID;
    L_IFACE_RCV_REC.TRANSACTION_DATE        := SYSDATE;
    L_IFACE_RCV_REC.QUANTITY                := R1.UNACCEPTED_QTY;
    L_IFACE_RCV_REC.UNIT_OF_MEASURE         := R1.UNIT_OF_MEASURE; --Not Code
    L_IFACE_RCV_REC.PRIMARY_QUANTITY        := R1.UNACCEPTED_QTY;
    L_IFACE_RCV_REC.PO_UNIT_PRICE           := R1.PO_UNIT_PRICE;
    L_IFACE_RCV_REC.PRIMARY_UNIT_OF_MEASURE := R1.UNIT_OF_MEASURE;
    L_IFACE_RCV_REC.TO_ORGANIZATION_ID      := R1.TO_ORGANIZATION_ID;
 
    L_IFACE_RCV_REC.INTERFACE_SOURCE_CODE  := 'RCV';
    L_IFACE_RCV_REC.INSPECTION_STATUS_CODE := 'ACCEPTED';
    L_IFACE_RCV_REC.DESTINATION_CONTEXT    := 'RECEIVING';
 
    L_IFACE_RCV_REC.CURRENCY_CODE            := R1.CURRENCY_CODE;
    L_IFACE_RCV_REC.CURRENCY_CONVERSION_TYPE := R1.CURRENCY_CONVERSION_TYPE;
 
    -- L_IFACE_RCV_REC.SUBINVENTORY := R1.SUBINVENTORY_CODE;
 
    SELECT PO_DISTRIBUTION_ID
      INTO V_DISTRIBUTION_ID
      FROM PO_DISTRIBUTIONS_ALL
     WHERE LINE_LOCATION_ID = R1.PO_LINE_LOCATION_ID;
 
    L_IFACE_RCV_REC.PO_DISTRIBUTION_ID := V_DISTRIBUTION_ID; --R1.PO_DISTRIBUTION_ID;
 
    INSERT INTO RCV_TRANSACTIONS_INTERFACE
      (LAST_UPDATE_DATE
      ,LAST_UPDATED_BY
      ,CREATION_DATE
      ,CREATED_BY
      ,LAST_UPDATE_LOGIN
      ,INTERFACE_TRANSACTION_ID
      ,GROUP_ID
      ,SHIPMENT_HEADER_ID
      ,PROCESSING_STATUS_CODE
      ,TRANSACTION_STATUS_CODE
      ,PROCESSING_MODE_CODE
      ,RECEIPT_SOURCE_CODE
      ,VENDOR_ID
      ,VENDOR_SITE_ID
      ,SOURCE_DOCUMENT_CODE
      ,PO_HEADER_ID
      ,PO_LINE_ID
      ,PO_LINE_LOCATION_ID
      ,TRANSACTION_TYPE
      ,AUTO_TRANSACT_CODE
      ,DESTINATION_TYPE_CODE
      ,SHIPMENT_LINE_ID
      ,PARENT_TRANSACTION_ID
      ,PO_DISTRIBUTION_ID
      ,ITEM_ID
      ,TRANSACTION_DATE
      ,QUANTITY
      ,UNIT_OF_MEASURE
      ,PRIMARY_QUANTITY
      ,PRIMARY_UNIT_OF_MEASURE
      ,TO_ORGANIZATION_ID
      ,INTERFACE_SOURCE_CODE
      ,INSPECTION_STATUS_CODE
      ,DESTINATION_CONTEXT
      ,SUBINVENTORY
      ,CURRENCY_CODE
      ,CURRENCY_CONVERSION_TYPE
      ,CURRENCY_CONVERSION_DATE
      ,PO_UNIT_PRICE)
    VALUES
      (L_IFACE_RCV_REC.LAST_UPDATE_DATE
      ,L_IFACE_RCV_REC.LAST_UPDATED_BY
      ,L_IFACE_RCV_REC.CREATION_DATE
      ,L_IFACE_RCV_REC.CREATED_BY
      ,L_IFACE_RCV_REC.LAST_UPDATE_LOGIN
      ,L_IFACE_RCV_REC.INTERFACE_TRANSACTION_ID
      ,L_IFACE_RCV_REC.GROUP_ID
      ,L_IFACE_RCV_REC.SHIPMENT_HEADER_ID
      ,L_IFACE_RCV_REC.PROCESSING_STATUS_CODE
      ,L_IFACE_RCV_REC.TRANSACTION_STATUS_CODE
      ,L_IFACE_RCV_REC.PROCESSING_MODE_CODE
      ,L_IFACE_RCV_REC.RECEIPT_SOURCE_CODE
      ,L_IFACE_RCV_REC.VENDOR_ID
      ,L_IFACE_RCV_REC.VENDOR_SITE_ID
      ,L_IFACE_RCV_REC.SOURCE_DOCUMENT_CODE
      ,L_IFACE_RCV_REC.PO_HEADER_ID
      ,L_IFACE_RCV_REC.PO_LINE_ID
      ,L_IFACE_RCV_REC.PO_LINE_LOCATION_ID
      ,L_IFACE_RCV_REC.TRANSACTION_TYPE
      ,L_IFACE_RCV_REC.AUTO_TRANSACT_CODE
      ,L_IFACE_RCV_REC.DESTINATION_TYPE_CODE
      ,L_IFACE_RCV_REC.SHIPMENT_LINE_ID
      ,L_IFACE_RCV_REC.PARENT_TRANSACTION_ID
      ,L_IFACE_RCV_REC.PO_DISTRIBUTION_ID
      ,L_IFACE_RCV_REC.ITEM_ID
      ,L_IFACE_RCV_REC.TRANSACTION_DATE
      ,L_IFACE_RCV_REC.QUANTITY
      ,L_IFACE_RCV_REC.UNIT_OF_MEASURE
      ,L_IFACE_RCV_REC.PRIMARY_QUANTITY
      ,L_IFACE_RCV_REC.PRIMARY_UNIT_OF_MEASURE
      ,L_IFACE_RCV_REC.TO_ORGANIZATION_ID
      ,L_IFACE_RCV_REC.INTERFACE_SOURCE_CODE
      ,L_IFACE_RCV_REC.INSPECTION_STATUS_CODE
      ,L_IFACE_RCV_REC.DESTINATION_CONTEXT
      ,L_IFACE_RCV_REC.SUBINVENTORY
      ,L_IFACE_RCV_REC.CURRENCY_CODE
      ,L_IFACE_RCV_REC.CURRENCY_CONVERSION_TYPE
      ,SYSDATE
      ,L_IFACE_RCV_REC.PO_UNIT_PRICE);
 
  END LOOP;
  COMMIT;
  DBMS_OUTPUT.PUT_LINE(L_IFACE_RCV_REC.GROUP_ID);

  V_REQUEST_ID := FND_REQUEST.SUBMIT_REQUEST('PO'
                                            ,'RVCTP'
                                            ,'接收事务处理处理器'
                                            ,TO_CHAR(SYSDATE
                                                    ,'dd-mon-yy hh:mi:ss')
                                            ,FALSE
                                            ,'IMMEDIATE'
                                            , --Start Date
                                             L_IFACE_RCV_REC.GROUP_ID
                                            ,CHR(0)
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,'');

  COMMIT;

END;

 

--交货程序

DECLARE

  --检验未交货
  CURSOR C2 IS
    SELECT RT.INTERFACE_TRANSACTION_ID
          ,RT.GROUP_ID
          ,RT.LAST_UPDATE_DATE
          ,RT.LAST_UPDATED_BY
          ,RT.CREATION_DATE
          ,RT.CREATED_BY
          ,RT.LAST_UPDATE_LOGIN
          ,RT.TRANSACTION_TYPE
          ,RT.TRANSACTION_DATE
          ,RS.QUANTITY UNACCEPTED_QTY --检验未入库数量
          ,RS.QUANTITY QUANTITY --本次入库数量
          ,RT.UNIT_OF_MEASURE
          ,RT.INTERFACE_SOURCE_CODE
          ,RT.SHIPMENT_HEADER_ID
          ,RT.SHIPMENT_LINE_ID
          ,RT.VENDOR_ID
          ,RT.VENDOR_SITE_ID
          ,RT.SOURCE_DOCUMENT_CODE
          ,RT.PARENT_TRANSACTION_ID
          ,RT.PO_HEADER_ID
          ,RT.PO_LINE_ID
          ,RT.PO_LINE_LOCATION_ID
          ,RT.INSPECTION_STATUS_CODE
          ,RT.DESTINATION_TYPE_CODE
          ,RT.LOCATION_ID
          ,RT.DESTINATION_CONTEXT
          ,RT.TRANSACTION_ID
          ,RSL.PO_DISTRIBUTION_ID
          ,RSL.ITEM_ID
          ,RSL.TO_ORGANIZATION_ID
          ,RSL.SHIP_TO_LOCATION_ID
          ,RT.CURRENCY_CODE
          ,RT.CURRENCY_CONVERSION_TYPE
          ,RT.PO_UNIT_PRICE
          ,'0610' SUBINVENTORY_CODE --
      FROM RCV_TRANSACTIONS     RT
          ,RCV_SHIPMENT_HEADERS RSH
          ,RCV_SHIPMENT_LINES   RSL
          ,RCV_SUPPLY           RS
     WHERE RT.SHIPMENT_HEADER_ID = RSH.SHIPMENT_HEADER_ID
       AND RT.SHIPMENT_LINE_ID = RSL.SHIPMENT_LINE_ID
       AND RT.TRANSACTION_TYPE IN ('ACCEPT'
                                  ,'REJECT')
       AND RT.TRANSACTION_ID = RS.RCV_TRANSACTION_ID
       AND RT.SHIPMENT_LINE_ID = 4378911;

  L_IFACE_RCV_REC   PO.RCV_TRANSACTIONS_INTERFACE%ROWTYPE;
  V_GROUP_ID1       NUMBER;
  V_DISTRIBUTION_ID NUMBER;
  V_REQUEST_ID      NUMBER;
BEGIN

  FND_GLOBAL.APPS_INITIALIZE(USER_ID      => 1027
                            ,RESP_ID      => 54872
                            ,RESP_APPL_ID => 401);

  --交货事务处理开始
  SELECT PO.RCV_INTERFACE_GROUPS_S.NEXTVAL INTO V_GROUP_ID1 FROM DUAL;
  -- FND_MESSAGE.DEBUG(1);
  FOR R2 IN C2
  LOOP
    -- FND_MESSAGE.DEBUG(2);
    L_IFACE_RCV_REC.LAST_UPDATE_DATE  := SYSDATE;
    L_IFACE_RCV_REC.LAST_UPDATED_BY   := FND_GLOBAL.USER_ID;
    L_IFACE_RCV_REC.CREATION_DATE     := SYSDATE;
    L_IFACE_RCV_REC.CREATED_BY        := FND_GLOBAL.USER_ID;
    L_IFACE_RCV_REC.LAST_UPDATE_LOGIN := -1;
 
    SELECT RCV_TRANSACTIONS_INTERFACE_S.NEXTVAL
      INTO L_IFACE_RCV_REC.INTERFACE_TRANSACTION_ID
      FROM DUAL;
 
    L_IFACE_RCV_REC.SHIPMENT_HEADER_ID      := R2.SHIPMENT_HEADER_ID; --Shipment Header
    L_IFACE_RCV_REC.PROCESSING_STATUS_CODE  := 'PENDING';
    L_IFACE_RCV_REC.TRANSACTION_STATUS_CODE := 'PENDING';
    L_IFACE_RCV_REC.PROCESSING_MODE_CODE    := 'IMMEDIATE';
 
    L_IFACE_RCV_REC.RECEIPT_SOURCE_CODE := 'VENDOR';
    L_IFACE_RCV_REC.VENDOR_ID           := R2.VENDOR_ID;
    L_IFACE_RCV_REC.VENDOR_SITE_ID      := R2.VENDOR_SITE_ID; --Optional
 
    L_IFACE_RCV_REC.SOURCE_DOCUMENT_CODE := 'PO';
    L_IFACE_RCV_REC.PO_HEADER_ID         := R2.PO_HEADER_ID;
    L_IFACE_RCV_REC.PO_LINE_ID           := R2.PO_LINE_ID;
    L_IFACE_RCV_REC.PO_LINE_LOCATION_ID  := R2.PO_LINE_LOCATION_ID;
 
    L_IFACE_RCV_REC.TRANSACTION_TYPE      := 'DELIVER'; --交货时为DELIER
    L_IFACE_RCV_REC.AUTO_TRANSACT_CODE    := NULL;
    L_IFACE_RCV_REC.DESTINATION_TYPE_CODE := 'INVENTORY'; --交货时为INVENTORY
 
    L_IFACE_RCV_REC.SHIPMENT_LINE_ID      := R2.SHIPMENT_LINE_ID;
    L_IFACE_RCV_REC.PARENT_TRANSACTION_ID := R2.TRANSACTION_ID;
 
    L_IFACE_RCV_REC.ITEM_ID                 := R2.ITEM_ID;
    L_IFACE_RCV_REC.TRANSACTION_DATE        := SYSDATE;
    L_IFACE_RCV_REC.QUANTITY                := R2.QUANTITY;
    L_IFACE_RCV_REC.UNIT_OF_MEASURE         := R2.UNIT_OF_MEASURE; --Not Code
    L_IFACE_RCV_REC.PRIMARY_QUANTITY        := R2.QUANTITY;
    L_IFACE_RCV_REC.PO_UNIT_PRICE           := R2.PO_UNIT_PRICE;
    L_IFACE_RCV_REC.PRIMARY_UNIT_OF_MEASURE := R2.UNIT_OF_MEASURE;
    L_IFACE_RCV_REC.TO_ORGANIZATION_ID      := R2.TO_ORGANIZATION_ID;
 
    L_IFACE_RCV_REC.INTERFACE_SOURCE_CODE  := 'RCV';
    L_IFACE_RCV_REC.INSPECTION_STATUS_CODE := 'ACCEPTED';
    L_IFACE_RCV_REC.DESTINATION_CONTEXT    := 'INVENTORY';
 
    L_IFACE_RCV_REC.CURRENCY_CODE            := R2.CURRENCY_CODE;
    L_IFACE_RCV_REC.CURRENCY_CONVERSION_TYPE := R2.CURRENCY_CONVERSION_TYPE;
 
    L_IFACE_RCV_REC.SUBINVENTORY := R2.SUBINVENTORY_CODE;
 
    SELECT PO_DISTRIBUTION_ID
      INTO V_DISTRIBUTION_ID
      FROM PO_DISTRIBUTIONS_ALL
     WHERE LINE_LOCATION_ID = R2.PO_LINE_LOCATION_ID;
 
    L_IFACE_RCV_REC.PO_DISTRIBUTION_ID := V_DISTRIBUTION_ID; --R2.PO_DISTRIBUTION_ID;
 
    INSERT INTO RCV_TRANSACTIONS_INTERFACE
      (LAST_UPDATE_DATE
      ,LAST_UPDATED_BY
      ,CREATION_DATE
      ,CREATED_BY
      ,LAST_UPDATE_LOGIN
      ,INTERFACE_TRANSACTION_ID
      ,GROUP_ID
      ,SHIPMENT_HEADER_ID
      ,PROCESSING_STATUS_CODE
      ,TRANSACTION_STATUS_CODE
      ,PROCESSING_MODE_CODE
      ,RECEIPT_SOURCE_CODE
      ,VENDOR_ID
      ,VENDOR_SITE_ID
      ,SOURCE_DOCUMENT_CODE
      ,PO_HEADER_ID
      ,PO_LINE_ID
      ,PO_LINE_LOCATION_ID
      ,TRANSACTION_TYPE
      ,AUTO_TRANSACT_CODE
      ,DESTINATION_TYPE_CODE
      ,SHIPMENT_LINE_ID
      ,PARENT_TRANSACTION_ID
      ,PO_DISTRIBUTION_ID
      ,ITEM_ID
      ,TRANSACTION_DATE
      ,QUANTITY
      ,UNIT_OF_MEASURE
      ,PRIMARY_QUANTITY
      ,PRIMARY_UNIT_OF_MEASURE
      ,TO_ORGANIZATION_ID
      ,INTERFACE_SOURCE_CODE
      ,INSPECTION_STATUS_CODE
      ,DESTINATION_CONTEXT
      ,SUBINVENTORY
      ,CURRENCY_CODE
      ,CURRENCY_CONVERSION_TYPE
      ,CURRENCY_CONVERSION_DATE
      ,PO_UNIT_PRICE)
    VALUES
      (L_IFACE_RCV_REC.LAST_UPDATE_DATE
      ,L_IFACE_RCV_REC.LAST_UPDATED_BY
      ,L_IFACE_RCV_REC.CREATION_DATE
      ,L_IFACE_RCV_REC.CREATED_BY
      ,L_IFACE_RCV_REC.LAST_UPDATE_LOGIN
      ,L_IFACE_RCV_REC.INTERFACE_TRANSACTION_ID
      ,V_GROUP_ID1
      ,L_IFACE_RCV_REC.SHIPMENT_HEADER_ID
      ,L_IFACE_RCV_REC.PROCESSING_STATUS_CODE
      ,L_IFACE_RCV_REC.TRANSACTION_STATUS_CODE
      ,L_IFACE_RCV_REC.PROCESSING_MODE_CODE
      ,L_IFACE_RCV_REC.RECEIPT_SOURCE_CODE
      ,L_IFACE_RCV_REC.VENDOR_ID
      ,L_IFACE_RCV_REC.VENDOR_SITE_ID
      ,L_IFACE_RCV_REC.SOURCE_DOCUMENT_CODE
      ,L_IFACE_RCV_REC.PO_HEADER_ID
      ,L_IFACE_RCV_REC.PO_LINE_ID
      ,L_IFACE_RCV_REC.PO_LINE_LOCATION_ID
      ,L_IFACE_RCV_REC.TRANSACTION_TYPE
      ,L_IFACE_RCV_REC.AUTO_TRANSACT_CODE
      ,L_IFACE_RCV_REC.DESTINATION_TYPE_CODE
      ,L_IFACE_RCV_REC.SHIPMENT_LINE_ID
      ,L_IFACE_RCV_REC.PARENT_TRANSACTION_ID
      ,L_IFACE_RCV_REC.PO_DISTRIBUTION_ID
      ,L_IFACE_RCV_REC.ITEM_ID
      ,L_IFACE_RCV_REC.TRANSACTION_DATE
      ,L_IFACE_RCV_REC.QUANTITY
      ,L_IFACE_RCV_REC.UNIT_OF_MEASURE
      ,L_IFACE_RCV_REC.PRIMARY_QUANTITY
      ,L_IFACE_RCV_REC.PRIMARY_UNIT_OF_MEASURE
      ,L_IFACE_RCV_REC.TO_ORGANIZATION_ID
      ,L_IFACE_RCV_REC.INTERFACE_SOURCE_CODE
      ,L_IFACE_RCV_REC.INSPECTION_STATUS_CODE
      ,L_IFACE_RCV_REC.DESTINATION_CONTEXT
      ,L_IFACE_RCV_REC.SUBINVENTORY
      ,L_IFACE_RCV_REC.CURRENCY_CODE
      ,L_IFACE_RCV_REC.CURRENCY_CONVERSION_TYPE
      ,SYSDATE
      ,L_IFACE_RCV_REC.PO_UNIT_PRICE);
 
  END LOOP;
  COMMIT;
  V_REQUEST_ID := FND_REQUEST.SUBMIT_REQUEST('PO'
                                            ,'RVCTP'
                                            ,'接收事务处理处理器'
                                            ,TO_CHAR(SYSDATE
                                                    ,'dd-mon-yy hh:mi:ss')
                                            ,FALSE
                                            ,'IMMEDIATE'
                                            , --Start Date
                                             V_GROUP_ID1
                                            ,CHR(0)
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,''
                                            ,'');

  COMMIT;

  DBMS_OUTPUT.PUT_LINE(V_GROUP_ID1);

END;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值