0% found this document useful (0 votes)
61 views

Create BPA

This PL/SQL program is used to create blanket purchase agreements through an import price catalog concurrent program. It declares variables for header and line level information needed to insert records into interface tables, then uses loops to insert header and line data for a specified number of purchase orders.

Uploaded by

SuraSwetha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
61 views

Create BPA

This PL/SQL program is used to create blanket purchase agreements through an import price catalog concurrent program. It declares variables for header and line level information needed to insert records into interface tables, then uses loops to insert header and line data for a specified number of purchase orders.

Uploaded by

SuraSwetha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

/*

===============================================================================
========================
Name : Create Blanket Purchase Agreement
Purpose : This plsql program is used to create BPA through PDOI : Import price
catalog concurrent
program
===============================================================================
========================
*/
DECLARE
------------------------------------------------------------------------------------Define Mandatory column variables to insert into interface tables. Values to a
ll
-- Variables need to be intialized with required data before running the script.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------Header level information
---------------------------------------------------------------------------------This provides batch id which is used to run particular set of data
l_batch_id
po_headers_interface.batch_id%TYPE := 100;
--Contains Organization ID
l_org_id
po_headers_interface.org_id%TYPE := 204;
--Contains Agent ID for which PO is created
l_agent_id
po_headers_interface.agent_id%TYPE := 25;
--Contains Vendor ID
l_vendor_id

po_headers_interface.vendor_id%TYPE := 21;

--Contains Vendor Site ID


l_vendor_site_id
po_headers_interface.vendor_site_id%TYPE := 41;
--Contains Ship to Location ID
l_ship_to_location_id
po_headers_interface.ship_to_location_id%TYPE := 204;
--Contains Bill to Location ID
l_bill_to_location_id
po_headers_interface.bill_to_location_id%TYPE := 204;
-- Contains Attribute value which can be your username
-- which can be used to check records inserted by the user
l_attribute1
po_headers_interface.attribute1%TYPE := 'SBONTALA';
---------------------------------------------------------------------------------Line level information
---------------------------------------------------------------------------------Contains Line type
l_line_type
po_lines_interface.line_type%TYPE := 'Goods';

--Contains Item information


l_item
po_lines_interface.item%TYPE := 'AS10000';
--Specifies UOM code
l_uom_code

po_lines_interface.uom_code%TYPE := 'Ea';

--Contains Unit price of the Item


l_unit_price
po_lines_interface.unit_price%TYPE:= 100;

-- Specifies number of Purchase order to be created


l_header_count NUMBER := 1;
--Specifies number of lines to be created per PO
l_line_count
NUMBER := 1;
--To track progess
l_progress
VARCHAR2(10) ;
BEGIN
--Header Loop
FOR hdr_cnt IN 1..L_header_count
LOOP
---- Inserting into header interface table
l_progress := '001';
Insert into PO.PO_HEADERS_INTERFACE
(INTERFACE_HEADER_ID,
BATCH_ID,
PROCESS_CODE,
ACTION,
ORG_ID,
DOCUMENT_TYPE_CODE,
CURRENCY_CODE,
AGENT_ID,
VENDOR_ID,
VENDOR_SITE_ID,
SHIP_TO_LOCATION_ID,
BILL_TO_LOCATION_ID,
ATTRIBUTE1,
CREATION_DATE)
VALUES
( po_headers_interface_s.NEXTVAL,--- INTERFACE_HEADER_ID,
l_batch_id,
'PENDING', --- PROCESS_CODE,
'ORIGINAL', --- ACTION,
l_org_id,
'BLANKET', --- DOCUMENT_TYPE_CODE,
'USD',
--- CURRENCY_CODE,
l_agent_id,
l_vendor_id,
l_vendor_Site_id,
l_ship_to_location_id,
l_bill_to_location_id,
l_attribute1,
SYSDATE ); --- CREATION_DATE,
---Line Loop
FOR line_cnt IN 1..l_line_count LOOP

l_progress := '002';
--- Inserting into Lines interface table
Insert into PO.PO_LINES_INTERFACE
(INTERFACE_LINE_ID,
INTERFACE_HEADER_ID,
ACTION,
LINE_NUM,
LINE_TYPE,
ITEM,
UOM_CODE,
UNIT_PRICE,
SHIP_TO_ORGANIZATION_ID,
SHIP_TO_LOCATION_ID,
NEED_BY_DATE,
PROMISED_DATE,
CREATION_DATE,
LINE_LOC_POPULATED_FLAG)
Values
(po_lines_interface_s.nextval, --- INTERFACE_LINE_ID,
po_headers_interface_s.currval, --- INTERFACE_HEADER_ID,
'ADD', --ACTION,
line_cnt,
l_line_type,
l_item,
l_uom_code,
l_unit_price,
l_ship_to_location_id, --SHIP_TO_ORGANIZATION_ID,
l_ship_to_location_id, --SHIP_TO_LOCATION_ID,
SYSDATE, --NEED_BY_DATE,
SYSDATE, --PROMISED_DATE,
SYSDATE, --CREATION_DATE,
'Y'); --- LINE_LOC_POPULATED_FLAG,
END LOOP;---End of Line Loop
END LOOP;---End of Header Loop
COMMIT;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('Error while inserting data at :'||l_progress||SQLCODE||SQL
ERRM);
END;

You might also like