Vous êtes sur la page 1sur 6

CREATE OR REPLACE PROCEDURE MOT_OM_INT_PROC (ERRBUF OUT VARCHAR2, RETCODE OUT VARCHAR2) IS CURSOR CUR_HEADERs IS SELECT * FROM ST_OE_HEADERS_IFACE_ALL;

CURSOR CUR_LINES IS SELECT * FROM ST_OE_LINES_IFACE_ALL; err_control EXCEPTION; err_msg VARCHAR2 (250); err_flag NUMBER; ID NUMBER; VERROR_FLAG OE_HEADERS_IFACE_ALL.ERROR_FLAG%TYPE; VINTERFACE_STATUS OE_HEADERS_IFACE_ALL.INTERFACE_STATUS%TYPE; VCREATION_DATE OE_HEADERS_IFACE_ALL.CREATION_DATE%TYPE; VLAST_UPDATE_DATE OE_HEADERS_IFACE_ALL.LAST_UPDATE_DATE%TYPE; VREQUEST_ID OE_HEADERS_IFACE_ALL.REQUEST_ID%TYPE; VORIG_SYS_DOCUMENT_REF OE_HEADERS_IFACE_ALL.ORIG_SYS_DOCUMENT_REF%TYPE; VORIG_SYS_LINE_REF OE_LINES_IFACE_ALL.ORIG_SYS_LINE_REF%TYPE; VORDER_SOURCE_ID OE_ORDER_SOURCES.ORDER_SOURCE_ID%TYPE; BEGIN ID := FND_GLOBAL.USER_ID; VERROR_FLAG := NULL; VINTERFACE_STATUS := NULL; VCREATION_DATE := SYSDATE; VLAST_UPDATE_DATE := SYSDATE; VORIG_SYS_DOCUMENT_REF := 'Order1'; VORIG_SYS_LINE_REF := 'Line1'; ERR_MSG := ''; err_flag := 0; VORDER_SOURCE_ID := 1047; FOR V1 IN CUR_MOT_HEADERs LOOP BEGIN IF order_valid (v1.ORDER_TYPE, v1.ORDER_TYPE_ID, 'ORDER') = 'ERROR' THEN err_msg := 'Order_type or order_type_id must be valid'; err_flag := 1; END IF; IF price_item_validate (V1.PRICE_LIST_ID, NULL, 'H') = 'ERROR' THEN IF err_flag = 1 THEN err_msg := err_msg || '&' || 'Price list must be valid'; ELSE err_msg := 'Price list must be valid'; err_flag := 1; END IF; END IF; IF payment_term_validate (V1.PAYMENT_TERM_id) = 'ERROR' THEN IF err_flag = 1 THEN err_msg := err_msg || '&' || 'Invalid payment term';

ELSE err_msg := 'Invalid payment term'; err_flag := 1; END IF; END IF; IF validate_customer (V1.CUSTOMER_NAME, v1.CUSTOMER_ID, v1.SOLD_TO_ORG_ID) = 'ERROR' THEN IF err_flag = 1 THEN err_msg := err_msg || '&' || ' iNVALID CUSTOMER or sold to org id '; ELSE err_msg := ' iNVALID CUSTOMER or sold to org id '; err_flag := 1; END IF; END IF; IF invoice_to_ship_to (v1.SHIP_TO_ORG_ID, v1.invoice_to_org_id) = 'ERROR' THEN IF err_flag = 1 THEN err_msg := err_msg || '&' || 'INVALID SHIP TO OR INVOICE TO'; ELSE err_msg := 'INVALID SHIP TO OR INVOICE TO'; err_flag := 1; END IF; END IF; -- raise exception -IF err_flag = 1 THEN -- RAISE ERROR MSG -DBMS_OUTPUT.put_line ('raising error'); RAISE err_control; ELSE -- INSERT INTO INTERFCAE TABLES TABLE -INSERT INTO OE_HEADERS_IFACE_ALL (ORDER_SOURCE_ID, ORIG_SYS_DOCUMENT_REF, ORDER_SOURCE, ORDERED_DATE, ORDER_TYPE, ORDER_TYPE_ID, PRICE_LIST_ID, SALESREP_ID, PAYMENT_TERM_id, CUSTOMER_NAME, CUSTOMER_ID, CREATED_BY, CREATION_DATE, LAST_UPDATED_BY, LAST_UPDATE_DATE, REQUEST_ID, OPERATION_CODE, ERROR_FLAG, INTERFACE_STATUS, SOLD_TO_ORG_ID, SHIP_TO_ORG_ID, INVOICE_TO_ORG_ID)

VALUES (VORDER_SOURCE_ID, VORIG_SYS_DOCUMENT_REF, v1.ORDER_SOURCE, v1.ORDERED_DATE, v1.ORDER_TYPE, v1.ORDER_TYPE_ID, v1.PRICE_LIST_ID, v1.SALESREP_ID, v1.PAYMENT_TERM_id, v1.CUSTOMER_NAME, v1.CUSTOMER_ID, ID, VCREATION_DATE, ID, vLAST_UPDATE_DATE, v1.REQUEST_ID, v1.OPERATION_CODE, VERROR_FLAG, VINTERFACE_STATUS, v1.SOLD_TO_ORG_ID, v1.SHIP_TO_ORG_ID, v1.INVOICE_TO_ORG_ID); INSERT INTO OE_ACTIONS_IFACE_ALL ( ORDER_SOURCE_ID, ORIG_SYS_DOCUMENT_REF, OPERATION_CODE) VALUES ( VORDER_SOURCE_ID, VORIG_SYS_DOCUMENT_REF, 'BOOK_ORDER'); END IF; EXCEPTION WHEN err_control THEN UPDATE MOT_stage_HEADER SET error_msg = err_msg; WHEN NO_DATA_FOUND THEN EXIT; WHEN OTHERS THEN ERR_MSG := SUBSTR (SQLERRM, 1, 25); UPDATE MOT_stage_HEADER SET error_msg = err_msg; END; END LOOP; --- end of header processing -----------------err_flag := 0; FOR V2 IN CUR_MOT_LINES LOOP BEGIN IF order_valid (v2.LINE_type, v2.LINE_TYPE_ID, 'LINE') = 'ERROR' THEN err_msg := 'Order_type or order_type_id must be valid'; err_flag := 1; END IF; DBMS_OUTPUT.

put_line ( 'price_item_validate(' || V2.PRICE_LIST_ID || ',' || v2.inventory_item_id || ',L'); IF price_item_validate (V2.PRICE_LIST_ID, v2.inventory_item_id, 'L') = 'ERROR' THEN IF err_flag = 1 THEN err_msg := err_msg || '&' || 'Price list must be valid'; ELSE err_msg := 'Price list must be valid'; err_flag := 1; END IF; END IF; IF payment_term_validate (V2.PAYMENT_TERM_id) = 'ERROR' THEN IF err_flag = 1 THEN err_msg := err_msg || '&' || 'Invalid payment term'; ELSE err_msg := 'Invalid payment term'; err_flag := 1; END IF; END IF; IF invoice_to_ship_to (v2.SHIP_TO_ORG_ID, v2.invoice_to_org_id) = 'ERROR' THEN IF err_flag = 1 THEN err_msg := err_msg || '&' || 'INVALID SHIP TO OR INVOICE TO'; ELSE err_msg := 'INVALID SHIP TO OR INVOICE TO'; err_flag := 1; END IF; END IF; IF uom_validate (V2.order_quantity_uom) = 'ERROR' THEN IF err_flag = 1 THEN err_msg := err_msg || '&' || 'INVALID UNIT OF MEASURE'; ELSE err_msg := 'INVALID UNIT OF MEASURE'; err_flag := 1; END IF; END IF; -- raise exception -IF err_flag = 1 THEN -- RAISE ERROR FLAG -RAISE err_control; ELSE -- INSERT TO INTERFACE TABLES -INSERT INTO OE_LINES_IFACE_ALL (ORDER_SOURCE_ID, ORIG_SYS_DOCUMENT_REF,

ORIG_SYS_LINE_REF, LINE_TYPE, LINE_TYPE_ID, INVENTORY_ITEM_ID, PAYMENT_TERM_id, PRICE_LIST_ID, ORDERED_QUANTITY, ORDER_QUANTITY_UOM, REQUEST_DATE, SALESREP_ID, UNIT_LIST_PRICE, UNIT_SELLING_PRICE, CALCULATE_PRICE_FLAG, SHIP_TO_ORG_ID, INVOICE_TO_ORG_ID, CREATED_BY, CREATION_DATE, LAST_UPDATED_BY, LAST_UPDATE_DATE, OPERATION_CODE, ERROR_FLAG, INTERFACE_STATUS, REQUEST_ID) VALUES (V2.ORDER_SOURCE_ID, VORIG_SYS_DOCUMENT_REF, VORIG_SYS_LINE_REF, V2.LINE_TYPE, V2.LINE_TYPE_ID, V2.INVENTORY_ITEM_ID, V2.PAYMENT_TERM_id, V2.PRICE_LIST_ID, V2.ORDERED_QUANTITY, V2.ORDER_QUANTITY_UOM, V2.REQUEST_DATE, V2.SALESREP_ID, V2.UNIT_LIST_PRICE, V2.UNIT_SELLING_PRICE, V2.CALCULATE_PRICE_FLAG, V2.SHIP_TO_ORG_ID, V2.INVOICE_TO_ORG_ID, ID, VCREATION_DATE, ID, VLAST_UPDATE_DATE, V2.OPERATION_CODE, VERROR_FLAG, VINTERFACE_STATUS, V2.REQUEST_ID); END IF; EXCEPTION WHEN err_control THEN UPDATE MOT_stage_lines SET error_msg = err_msg; WHEN NO_DATA_FOUND THEN EXIT; WHEN OTHERS THEN ERR_MSG := SUBSTR (SQLERRM, 1, 25);

UPDATE MOT_stage_lines SET error_msg = err_msg; END; END LOOP; END MOT_OM_INT_PROC;

Vous aimerez peut-être aussi