In this article we will see what a Blanket Purchase Agreement is and how we can import them along with the price breaks.
Overview of Blanket Purchase Agreements:
You create blanket purchase agreements when you know the detail of the goods or services you plan to buy from a specific supplier in a period, but you do not yet know the detail of your delivery schedules. You can use blanket purchase agreements to specify negotiated prices for your items before actually purchasing them.
You can issue a blanket release against a blanket purchase agreement to place the actual order (as long as the release is within the blanket agreement effectivity dates. If your purchase agreement has price breaks, the quantity entered on the release determines what break price is defaulted into the Price field.
The Purchasing Document Open Interface concurrent program was replaced by two new concurrent Programs – Import Price Catalogs and Import Standard Purchase Orders.
Import Price Catalogs concurrent program is used to import Catalog Quotations, Standard Quotations, and Blanket Purchase Agreements.
Import Standard Purchase Orders concurrent program is used to import Unapproved or Approved Standard Purchase Orders.
You need to populate PO_HEADERS_INTERFACE and PO_LINES_INTERFACE to import header and line information into Purchasing. PO_LINES_INTERFACE table contains both line and shipment information, and imports data into both the PO_LINES and PO_LINE_LOCATIONS. The below are the additional columns that are required in PO_LINES_INTERFACE if you want to import price break information:
If you are importing price break information through catalog quotations, you can also, optionally, populate the following columns in the PO_LINES_INTERFACE table:
Let’s take an example to better understand. Suppose you want to create a blanket with one line and two price breaks and the details for the price break are as below:
1)quantity = 500, price = 10, effective date from ’01-JAN-2006′ to ’31-JUN-2006′
2)quantity = 500, price = 11, effective date from ’01-JUL-2006′ to ’01-JAN-2007′
To create the above the BPA, you would create ONE record in PO_HEADERS_INTERFACE and THREE records in PO_LINES_INTERFACE
LINE1: It will have only the line information. LINE NUM would be 1.
LINE2: For the first Price Break details but the LINE NUM will be the same as above i.e 1. SHIPMENT_NUM would be 1 and SHIPMENT_TYPE would be ‘PRICE BREAK’
LINE3: For the second Price Break details but the LINE NUM will be the same as above i.e 1. SHIPMENT_NUM would be 2 and SHIPMENT_TYPE would be ‘PRICE BREAK’
All the line-level records above must have the same INTERFACE_HEADER_ID.
–Inserting Header Information
insert into po_headers_interface ( interface_header_id, action, org_id, document_type_code, vendor_id, vendor_site_id, effective_date, expiration_date, Vendor_doc_num) values ( po_headers_interface_s.nextval, 'ORIGINAL', 204, 'BLANKET', 21, 41, '01-JAN-2006', '01-JAN-2007', 'VENDOR04302006' );
–Inserting Line Information
insert into po_lines_interface ( interface_line_id, interface_header_id, action, item, line_num, unit_price, unit_of_measure, effective_date, expiration_date, ship_to_organization_id, ship_to_location_id, PRICE_BREAK_LOOKUP_CODE ) values ( po_lines_interface_s.nextval, po_headers_interface_s.currval, ‘ORIGINAL’, ‘AS54888′, 1, 20, ‘Each’, ’01-JAN-2006′, ’01-JAN-2007′, 207, 207, ‘NON CUMULATIVE’);
Note: Cumulative: Price breaks apply to the cumulative quantity on all release shipments for the item.
Non–cumulative: Price breaks apply to quantities on individual release shipments for the item.
–Inserting First Price Break
insert into po_lines_interface ( interface_line_id, interface_header_id, action, item, line_num, shipment_num, shipment_type, quantity, unit_price, unit_of_measure, ship_to_organization_id, ship_to_location_id, effective_date, xpiration_date) values ( po_lines_interface_s.nextval, po_headers_interface_s.currval, ‘ORIGINAL’, ‘AS54888′, 1, 1, ‘PRICE BREAK’, 500, 10, ‘Each’, 207, 207, ’01-JAN-2006′, ’30-JUN-2006′ );
–Inserting Second Price Break
insert into po_lines_interface ( interface_line_id, interface_header_id, action, item, line_num, shipment_num, shipment_type, quantity, unit_price, unit_of_measure, ship_to_organization_id, ship_to_location_id, effective_date, expiration_date) values ( po_lines_interface_s.nextval, po_headers_interface_s.currval, 'ORIGINAL', 'AS54888', 1, 2, 'PRICE BREAK', 500, 11, 'Each', 207, 207, '01-JUL-2006', '01-JAN-2007' );
Run Import Price Catalog Concurrent Program to create this Blanket Purchase Agreement.