You are on page 1of 2

SET SERVEROUTPUT ON

CURSOR VENDOR_INT_CUR IS
SELECT *
FROM AP_SUPPLIERS_INT
WHERE IMPORT_REQUEST_ID = L_REQUEST_ID
AND VENDOR_INTERFACE_ID IS NOT NULL
ORDER BY SEGMENT1;
VENDOR_INT_REC VENDOR_INT_CUR%ROWTYPE;
VENDOR_REC R_VENDOR_REC_TYPE;

SELECT *
FROM AP_SUPPLIERS
WHERE VENDOR_ID IN (SELECT N_VENDOR_ID FROM XXSD_STG_VENDOR_CREATE);

DECLARE
V_API_ERROR VARCHAR2 (500);
V_ERROR_MSG VARCHAR2 (500) := NULL;
L_VENDOR_REC AP_VENDOR_PUB_PKG.R_VENDOR_REC_TYPE;
L_RETURN_STATUS VARCHAR2 (10);
L_MSG_COUNT NUMBER;
L_MSG_DATA VARCHAR2 (1000);
L_VENDOR_ID NUMBER;
L_PARTY_ID NUMBER;
CURSOR XX_SUPP
IS
SELECT * FROM SUPP_BASIC_DATA;
BEGIN
FOR SUPP_DATA IN XX_SUPP
LOOP
BEGIN
L_VENDOR_REC.VENDOR_NAME := SUPP_DATA.SUPP_NAME; -- REQUIRED
POS_VENDOR_PUB_PKG.CREATE_VENDOR (
-- -------------------------
-- INPUT PARAMETERS
-- -------------------------
P_VENDOR_REC => L_VENDOR_REC
, -- ----------------------------
-- OUTPUT PARAMETERS
-- ----------------------------
X_RETURN_STATUS => L_RETURN_STATUS
,X_MSG_COUNT => L_MSG_COUNT
,X_MSG_DATA => L_MSG_DATA
,X_VENDOR_ID => L_VENDOR_ID
,X_PARTY_ID => L_PARTY_ID);
COMMIT;
DBMS_OUTPUT.PUT_LINE (L_VENDOR_ID);
--TO ENSURE THAT THE DATA INSERTED SUCCESSFULLY
BEGIN
UPDATE SUPP_BASIC_DATA
SET STATUS = 'DONE', N_VENDOR_ID = L_VENDOR_ID, ERROR_MSG = NULL
WHERE SUPP_ID = SUPP_DATA.SUPP_ID;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
-- TO HANDLE UNEXPECTED ERRORS AND UNSUCCESSFUL DATA INSERTION
EXCEPTION
WHEN OTHERS THEN
V_API_ERROR := SQLERRM;
V_ERROR_MSG := V_ERROR_MSG || ' ' || V_API_ERROR;
UPDATE SUPP_BASIC_DATA
SET ERROR_MSG = V_ERROR_MSG, STATUS = 'ERROR'
WHERE SUPP_ID = SUPP_DATA.SUPP_ID;
COMMIT;
END;
END LOOP;
END;

You might also like