0% found this document useful (0 votes)
1K views6 pages

Bhaskar 2

The document describes the process of importing inventory items into an Oracle application using PL/SQL packages and procedures. It creates staging tables to hold item data, validates the data, inserts valid records into an interface table, and handles error logging. The package is executed to process the staged item records and insert them into the application's base item table or log errors.

Uploaded by

Srikanth Mareedu
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as RTF, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1K views6 pages

Bhaskar 2

The document describes the process of importing inventory items into an Oracle application using PL/SQL packages and procedures. It creates staging tables to hold item data, validates the data, inserts valid records into an interface table, and handles error logging. The package is executed to process the staged item records and insert them into the application's base item table or log errors.

Uploaded by

Srikanth Mareedu
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as RTF, PDF, TXT or read online on Scribd
You are on page 1/ 6

----------------------------INSERT INTO MTL_SYSTEM_ITEMS_INTERFACE ( SEGMENT1 ,DESCRIPTION ,TEMPLATE_NAME ,TRANSACTION_TYPE ,ORGANIZATION_CODE ,PROCESS_FLAG ,SET_PROCESS_ID ) VALUES( 'Bhaskar_Item369' ,'Eloctronic Goods' ,'Purchased

Item' ,'CREATE' ,'BI' ,1 ,14324 )

---------------------------------------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

--------CREATING INVENTORY STAGING TABLE CREATE TABLE BHASKAR_INVENTORY_STAGING1 (

-----------------

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;

------ INSERTING VALUES INTO INVENTORY STAGING TABLE -------

INSERT INTO BHASKAR_INVENTORY_STAGING1 VALUES

( 'Bhaskar_Item999' ,'Eloctronic Goods' ,'Purchased Item' ,'CREATE' ,'BI' ,'N' ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL );

-----------

PACKAGE SPECIFICATION --------------

CREATE OR REPLACE PACKAGE BHASKAR_INV_PACKAGE IS PROCEDURE BHASKAR_INV_PROCEDURE; END;

---------

PACKAGE BODY ------------

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);

V_FLAG NUMBER :=0;

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;

------INSERTING DATA INTO INTERFACE TABLE----IF V_FLAG=0 THEN

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;

EXECUTING PACKAGE BEGIN BHASKAR_INV_PACKAGE.BHASKAR_INV_PROCEDURE; END;

--- 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.

You might also like