CREATE OR REPLACE PROCEDURE APPS.xx_item_master_upload_api
--(errbuf out varchar2, rectcode out varchar2)
AS
l_verify_flag VARCHAR2 (3);
l_error_message VARCHAR2 (2500);
l_count NUMBER (2);
l_category_set_id NUMBER (20);
l_category_id NUMBER (20);
l_org_id NUMBER (4);
l_template_name VARCHAR2 (250);
l_uom VARCHAR2 (20);
l_item_type VARCHAR2 (20);
l_organization_id NUMBER (10);
l_organization_code VARCHAR2 (10);
CURSOR c1
IS
SELECT *
FROM xxx_item_master_stg;
BEGIN
FOR c_rec IN c1
LOOP
l_verify_flag := 'Y';
l_error_message := NULL;
l_count := 0;
BEGIN
SELECT organization_id, organization_code
INTO l_organization_id, l_organization_code
FROM org_organization_definitions
WHERE organization_code = 'ABC' --<Enter Your Inventory Org Code>
EXCEPTION
WHEN OTHERS
THEN
l_verify_flag := 'N';
l_error_message := 'INVALID ORGANIZATION';
END;
BEGIN
SELECT COUNT (*)
INTO l_count
FROM mtl_system_items_b
WHERE segment1 = c_rec.segment1
AND organization_id = l_organization_id;
IF l_count > 0
THEN
l_verify_flag := 'N';
l_error_message := 'ITEM ALREADY EXISTING';
END IF;
EXCEPTION
WHEN OTHERS
THEN
NULL;
END;
IF c_rec.segment1 IS NULL
THEN
l_verify_flag := 'N';
l_error_message := 'ITEM SEGMENT SHOULD NOT BE NULL';
END IF;
IF c_rec.description IS NULL
THEN
l_verify_flag := 'N';
l_error_message := 'INVALID DESCRIPTION';
END IF;
BEGIN
SELECT template_name
INTO l_template_name
FROM mtl_item_templates
WHERE template_id = c_rec.template_id;
EXCEPTION
WHEN OTHERS
THEN
l_verify_flag := 'N';
l_error_message := 'INVALID TEMPLATE NAME';
END;
BEGIN
SELECT unit_of_measure
INTO l_uom
FROM mtl_units_of_measure
WHERE uom_code = TRIM (c_rec.primary_unit_of_measure);
/* Use Primary Unit Measure Code*/
EXCEPTION
WHEN OTHERS
THEN
l_verify_flag := 'N';
l_error_message := 'INVALID UOM';
END;
IF l_verify_flag <> 'N'
THEN
BEGIN
INSERT INTO mtl_system_items_interface
(segment1, description, primary_unit_of_measure,
process_flag, set_process_id, template_name,
organization_id, organization_code,
transaction_type, attribute_category,
attribute1, attribute2,
attribute3, attribute4,
attribute8, attribute9
)
VALUES (c_rec.segment1, c_rec.description, l_uom,
1, 1, l_template_name,
l_organization_id, l_organization_code,
'CREATE', c_rec.attribute_category,
c_rec.attribute1, c_rec.attribute2,
c_rec.attribute3, c_rec.attribute4,
c_rec.attribute8, c_rec.attribute9
);
UPDATE xxx_item_master_stg
SET verify_flag = 'Y'
WHERE segment1 = c_rec.segment1;
DBMS_OUTPUT.put_line ('ITEMS UPLOADED SUCCESSFULLY!');
EXCEPTION
WHEN OTHERS
THEN
l_error_message := SQLERRM;
UPDATE xxx_item_master_stg
SET verify_flag = 'N',
error_message = l_error_message
WHERE segment1 = c_rec.segment1;
END;
COMMIT;
ELSE
UPDATE xxx_item_master_stg
SET verify_flag = 'N',
error_message = l_error_message
WHERE segment1 = c_rec.segment1;
COMMIT;
END IF;
END LOOP;
COMMIT;
END xx_item_master_upload_api;
/
--(errbuf out varchar2, rectcode out varchar2)
AS
l_verify_flag VARCHAR2 (3);
l_error_message VARCHAR2 (2500);
l_count NUMBER (2);
l_category_set_id NUMBER (20);
l_category_id NUMBER (20);
l_org_id NUMBER (4);
l_template_name VARCHAR2 (250);
l_uom VARCHAR2 (20);
l_item_type VARCHAR2 (20);
l_organization_id NUMBER (10);
l_organization_code VARCHAR2 (10);
CURSOR c1
IS
SELECT *
FROM xxx_item_master_stg;
BEGIN
FOR c_rec IN c1
LOOP
l_verify_flag := 'Y';
l_error_message := NULL;
l_count := 0;
BEGIN
SELECT organization_id, organization_code
INTO l_organization_id, l_organization_code
FROM org_organization_definitions
WHERE organization_code = 'ABC' --<Enter Your Inventory Org Code>
EXCEPTION
WHEN OTHERS
THEN
l_verify_flag := 'N';
l_error_message := 'INVALID ORGANIZATION';
END;
BEGIN
SELECT COUNT (*)
INTO l_count
FROM mtl_system_items_b
WHERE segment1 = c_rec.segment1
AND organization_id = l_organization_id;
IF l_count > 0
THEN
l_verify_flag := 'N';
l_error_message := 'ITEM ALREADY EXISTING';
END IF;
EXCEPTION
WHEN OTHERS
THEN
NULL;
END;
IF c_rec.segment1 IS NULL
THEN
l_verify_flag := 'N';
l_error_message := 'ITEM SEGMENT SHOULD NOT BE NULL';
END IF;
IF c_rec.description IS NULL
THEN
l_verify_flag := 'N';
l_error_message := 'INVALID DESCRIPTION';
END IF;
BEGIN
SELECT template_name
INTO l_template_name
FROM mtl_item_templates
WHERE template_id = c_rec.template_id;
EXCEPTION
WHEN OTHERS
THEN
l_verify_flag := 'N';
l_error_message := 'INVALID TEMPLATE NAME';
END;
BEGIN
SELECT unit_of_measure
INTO l_uom
FROM mtl_units_of_measure
WHERE uom_code = TRIM (c_rec.primary_unit_of_measure);
/* Use Primary Unit Measure Code*/
EXCEPTION
WHEN OTHERS
THEN
l_verify_flag := 'N';
l_error_message := 'INVALID UOM';
END;
IF l_verify_flag <> 'N'
THEN
BEGIN
INSERT INTO mtl_system_items_interface
(segment1, description, primary_unit_of_measure,
process_flag, set_process_id, template_name,
organization_id, organization_code,
transaction_type, attribute_category,
attribute1, attribute2,
attribute3, attribute4,
attribute8, attribute9
)
VALUES (c_rec.segment1, c_rec.description, l_uom,
1, 1, l_template_name,
l_organization_id, l_organization_code,
'CREATE', c_rec.attribute_category,
c_rec.attribute1, c_rec.attribute2,
c_rec.attribute3, c_rec.attribute4,
c_rec.attribute8, c_rec.attribute9
);
UPDATE xxx_item_master_stg
SET verify_flag = 'Y'
WHERE segment1 = c_rec.segment1;
DBMS_OUTPUT.put_line ('ITEMS UPLOADED SUCCESSFULLY!');
EXCEPTION
WHEN OTHERS
THEN
l_error_message := SQLERRM;
UPDATE xxx_item_master_stg
SET verify_flag = 'N',
error_message = l_error_message
WHERE segment1 = c_rec.segment1;
END;
COMMIT;
ELSE
UPDATE xxx_item_master_stg
SET verify_flag = 'N',
error_message = l_error_message
WHERE segment1 = c_rec.segment1;
COMMIT;
END IF;
END LOOP;
COMMIT;
END xx_item_master_upload_api;
/
Note:
After Items inserted in the Inventory Interface Table (mtl_system_items_interface), Run the concurrent Program " Import Items".
No comments:
Post a Comment