Bhaskar 2
Bhaskar 2
---------------------------------------ITEM IMPORT INTERFACE-----------------------------------------------------------SELECT * FROM MTL_SYSTEM_ITEMS_INTERFACE SELECT * FROM MTL_SYSTEM_ITEMS_B SELECT * FROM MTL_INTERFACE_ERRORS SELECT * FROM MTL_ITEM_TEMPLATES ------INTERFACE TABLE ------BASE TABLE ------ERRORS TABLE ------TEMPLATES TABLE
-----------------
SEGMENT1 VARCHAR2(40) ,DESCRIPTION VARCHAR2(240) ,TEMPLATE_NAME VARCHAR2(30) ,TRANSACTION_TYPE VARCHAR2(10) ,ORGANIZATION_CODE VARCHAR2(3) ,PROCESS_FLAG VARCHAR2(30) ,ERROR_MESSAGE VARCHAR2(2000) ,CREATED_BY NUMBER
,CREATION_DATE DATE ,LAST_UPDATED_BY NUMBER ,LAST_UPDATE_DATE DATE ,LAST_UPDATE_LOGIN NUMBER ); SELECT * FROM BHASKAR_INVENTORY_STAGING1;
( 'Bhaskar_Item999' ,'Eloctronic Goods' ,'Purchased Item' ,'CREATE' ,'BI' ,'N' ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL );
-----------
---------
CREATE OR REPLACE PACKAGE BODY BHASKAR_INV_PACKAGE IS PROCEDURE BHASKAR_INV_PROCEDURE IS CURSOR C1 IS SELECT BIS.ROWID R_ID ----ROWID SHUOULD BE GIVEN AN ALIAS NAME.... IT IS MANDATORY. ,BIS.* -----BS.* GIVES ALL THE ROWS PRESENT IN THAT BSI TABLE. FROM BHASKAR_INVENTORY_STAGING1 BIS ----'BS' IS THE ALIAS NAME FOR STAGING TABLE 'BHASKAR_INVENTORY_STAGING1' WHERE PROCESS_FLAG='N'; V_SEGMENT1 VARCHAR2(40); V_TEMPLATE_NAME VARCHAR2(30); V_ORGANIZATION_CODE VARCHAR2(3); V_ERROR_MSG VARCHAR2(2000);
BEGIN --CURSOR OPEN-FOR REC IN C1 LOOP --VALIDATION FOR SEGMENT1-BEGIN SELECT SEGMENT1 INTO V_SEGMENT1 FROM MTL_SYSTEM_ITEMS_B WHERE SEGMENT1=REC.SEGMENT1; V_ERROR_MSG:='SEGMENT1 ALREADY EXISTED'; V_FLAG:=1; EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('SEGMENT1 INSERTED'); NULL; END; --VALIDATION FOR TEMPLATE NAME-BEGIN SELECT TEMPLATE_NAME INTO V_TEMPLATE_NAME FROM MTL_ITEM_TEMPLATES WHERE TEMPLATE_NAME=REC.TEMPLATE_NAME; DBMS_OUTPUT.PUT_LINE('TEMPLATE_NAME INSERTED'); EXCEPTION WHEN NO_DATA_FOUND THEN V_ERROR_MSG:='INVALID TEMPLATE_NAME'; V_FLAG:=1; END; --VALIDATION FOR ORGANIZATION CODE-BEGIN SELECT ORGANIZATION_CODE INTO V_ORGANIZATION_CODE FROM MTL_PARAMETERS WHERE ORGANIZATION_CODE=REC.ORGANIZATION_CODE; DBMS_OUTPUT.PUT_LINE('ORGANIZATION_CODE INSERTED'); EXCEPTION WHEN NO_DATA_FOUND THEN V_ERROR_MSG:='INVALID ORGANIZATION_CODE'; V_FLAG:=1; END;
DBMS_OUTPUT.PUT_LINE('ITEM INSERTION STARTS'); INSERT INTO MTL_SYSTEM_ITEMS_INTERFACE( SEGMENT1 ,DESCRIPTION ,TEMPLATE_NAME ,TRANSACTION_TYPE ,ORGANIZATION_CODE ,PROCESS_FLAG ,SET_PROCESS_ID ,CREATED_BY ,CREATION_DATE ,LAST_UPDATED_BY ,LAST_UPDATE_DATE ,LAST_UPDATE_LOGIN ) VALUES( REC.SEGMENT1 ---- SINCE WE ARE CHECKING FOR NEWLY INSERTED RECORDS, WE NEED TO RETRIEVE THEM FROM CURSOR RECORD REC.SEGMENT1 ,REC.DESCRIPTION ,V_TEMPLATE_NAME ,REC.TRANSACTION_TYPE ,V_ORGANIZATION_CODE ,1 --PROCESS_FLAG WILL BE HARDCODED --,MTL_SYSTEM_ITEMS_INTF_SET S_S.NEXTVAL --FOR SET_PROCESS_ID-,FND_GLOBAL.USER_ID ---FOR VALIDATING 'CREATED_BY'' ,SYSDATE ---FOR VALIDATING 'CREATION DATE'' ,FND_GLOBAL.USER_ID ---FOR VALIDATING 'LAST_UPDATED_BY'' ,SYSDATE ---FOR VALIDATING 'LAST_UPDATE_DATE'' ,FND_GLOBAL.LOGIN_ID ---FOR VALIDATING 'LAST_UPDATE_LOGIN'' ); DBMS_OUTPUT.PUT_LINE('ITEM INSERTION COMPLETED');
---HOW WE ARE TAKING "MTL_SYSTEM_ITEMS_INTF_SETS_S.NEXTVAL" FOR SET_PROCESS_ID--SELECT * FROM DBA_OBJECTS WHERE OBJECT_NAME LIKE 'MTL %SYSTEM%' AND OBJECT_TYPE = 'SEQUENCE' NOW, WE WILL GET 3 OBJECT NAMES IN 'OBJECT_NAME' COLUMN. MTL_SYSTEM_ITEMS_B_S MTL_SYSTEM_ITEMS_INTERFACE_S MTL_SYSTEM_ITEMS_INTF_SETS_S NOW, TO GET SER_PROCESS_ID WE HAVE TO WITE, "MTL_SYSTEM_ITEMS_INTF_SETS_S.NEXTVAL" -----END OF EXPLANATION-------
------UPDATING STAGING TABLE-----UPDATE BHASKAR_INVENTORY_STAGING1 SET PROCESS_FLAG='S' ,ERROR_MESSAGE='SUCCESS' WHERE ROWID=REC.R_ID; COMMIT; ---- COMMIT SHOULD BE WRITTRN BECAUSE WE ARE INSERTING NEW ITEM ---ELSE UPDATE BHASKAR_INVENTORY_STAGING1 SET PROCESS_FLAG='E' ,ERROR_MESSAGE=V_ERROR_MSG WHERE ROWID=REC.R_ID; END IF; DBMS_OUTPUT.PUT_LINE('END OF LOOP'); END LOOP; -------------EXCEPTION----------EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(SQLCODE || '---' || SQLERRM); --- TO DISPLAY SYSTEM GENERATED ERRORS --DBMS_OUTPUT.PUT_LINE('END OF PROCEDURE'); END BHASKAR_INV_PROCEDURE; END BHASKAR_INV_PACKAGE;
--- TO CHECK WHETHER OUR ITEM IS INSERTED IN INTERFACE TABLE OR NOT --SELECT * FROM MTL_SYSTEM_ITEMS_INTERFACE WHERE SEGMENT1='Bhaskar_Item3699' THEN, --- SUBMITTING THE STANDARD CONCURRENT PROGRAM --'ITEM IMPORT' --WHILE SUBMITTING OUR STD.PGM 'ITEM IMPORT',GIVE SET_PROCESS_ID NUMBER.SO THAT IT SUBMITS ONLY OUR SPECIFIC REQUEST. ---TO GET SET_PROCESS_ID OF OUR ITEM--SELECT SET_PROCESS_ID FROM MTL_SYSTEM_ITEMS_INTERFACE WHERE SEGMENT1='Bhaskar_Item3699'
THEN, --- TO CHECK WHETHER OUR ITEM IS INSERTED IN BASE TABLE OR NOT --SELECT * FROM MTL_SYSTEM_ITEMS_B WHERE SEGMENT1='Bhaskar_Item3699'
ERROR MESSAGES IN INTERFACE: Attribute column value is not valid. Build in WIP(BUILD_IN_WIP_FLAG) must be "No" when BOM Item Type(BOM_ITEM_TYPE) is not Standard(4). You also may not specify a Base Model (BASE_ITEM_ID) for an Item that is not Standard. Enter a positive number. Item ComputerA already exists in the organization V1. Please use a different item name/number. Master - Child Conflict in one of these Attributes: Default Buyer(BUYER_ID), Accounting Rule(ACCOUNTING_RULE_ID), Invoicing Rule(INVOICING_RULE_ID), Purchased(PURCHASING_ITEM_FLAG), Shippable(SHIPPABLE_ITEM_FLAG), Customer Ordered(CUSTOMER_ Primary Unit of Measure is invalid. Repetitive planning is required for MRP- or MPS- or DRP- planned items You must choose either "Yes" or "No" for the attribute Repetitive Planning if your item is an MRP or MPS or DRP planned item The TEMPLATE_ID or TEMPLATE_NAME specified is not a valid template. The TEMPLATE_ID or TEMPLATE_NAME specified is not valid for this Organization. The column ORGANIZATION_ID is blank and the value specified in ORGANIZATION_CODE is either NULL or invalid. The column specified in MTL_INTERFACE_ERRORS.COLUMN_NAME must be specified as either be 'Y' or 'N' in the interface table. The revision entered is for an item that does not exist in MTL_SYSTEM_ITEMS nor MTL_SYSTEM_ITEMS_INTERFACE. There already exists an Item in this Organization with the same segment values. This Child Item has no Master Item record in MTL_SYSTEM_ITEMS.