Overview
           
This document focuses on creating single insert scripts for importing standard
purchase orders using interface approach. It also mentions the prerequisites
for importing standard purchase orders.
This Document
provides the guidance to the user with the necessary information for importing
the purchase orders through interface approach.
         
The Interface tables used here are:
          
1. PO_HEADERS_INTERFACE
          
2. PO_LINES_INTERFACE
          
3. PO_DISTRIBUTIONS_INTERFACE
Mandatory Columns
| 
COLUMN_NAME | 
DATATYPE | 
REQUIRED | 
COMMENTS | 
| 
INTERFACE_HEADER_ID | 
NUMBER | 
Y | 
A sequential value | 
| 
BATCH_ID | 
NUMBER | 
Y | 
To uniquely identify the records
  inserted | 
| 
ACTION | 
VARCHAR2 | 
Y | 
'ORIGINAL','UPDATE','ADD' | 
| 
DOCUMENT_TYPE_CODE | 
VARCHAR2 | 
Y | 
'STANDARD','BLANKET','QUOTATION' | 
| 
VENDOR_ID | 
NUMBER | 
Y | 
Vendor Id | 
| 
VENDOR_SITE_ID | 
NUMBER | 
Y | 
Vendor Site for the vendor | 
| 
ORG_ID | 
NUMBER | 
OPTIONAL | 
Operating unit | 
| 
CURRENCY_CODE | 
VARCHAR2 | 
Y | 
Base Currency for the PO | 
| 
AGENT_ID | 
NUMBER | 
Y | 
The buyer defined for the PO | 
| 
SHIP_TO_LOCATION_ID | 
NUMBER | 
Y | 
Ship To Location for the purchase
  order | 
| 
BILL_TO_LOCATION_ID | 
NUMBER | 
Y | 
Billing location | 
| 
APPROVED_DATE | 
DATE | 
OPTIONAL | 
The date PO approved | 
| 
CREATION_DATE | 
DATE | 
Y |  | 
| 
CREATED_BY | 
NUMBER | 
Y | 
Who Column | 
| 
EFFECTIVE_DATE | 
DATE | 
OPTIONAL |  | 
| 
COLUMN_NAME | 
DATATYPE | 
REQUIRED | 
COMMENTS | 
| 
INTERFACE_LINE_ID | 
NUMBER | 
Y | 
A sequential value | 
| 
INTERFACE_HEADER_ID | 
NUMBER | 
Y | 
A sequential value matching the
  header value | 
| 
LINE_TYPE | 
VARCHAR2 | 
Y | 
'GOODS' | 
| 
LINE_NUM | 
NUMBER | 
Y | 
Line number | 
| 
UNIT_OF_MEASURE | 
VARCHAR2 | 
Y | 
Unit of measure for the item | 
| 
QUANTITY | 
NUMBER | 
Y | 
Quantity required | 
| 
UNIT_PRICE | 
NUMBER | 
Y | 
The unit price for the item being
  ordered | 
| 
ITEM_ID | 
NUMBER | 
OPTIONAL | 
The item id | 
| 
ITEM_DESCRIPTION | 
VARCHAR2 | 
Y | 
The description of the item | 
| 
SHIP_TO_LOCATION_ID | 
NUMBER | 
OPTIONAL | 
Ship To Location for the purchase
  order | 
| 
SHIP_TO_ORGANIZATION_ID | 
NUMBER | 
OPTIONAL | 
The organization corresponding to
  ship_to_location_id | 
| 
CREATION_DATE | 
DATE | 
Y | 
Who column | 
| 
CREATED_BY | 
NUMBER | 
Y | 
Who Column | 
| 
SHIPMENT_NUMBER | 
NUMBER | 
OPTIONAL | 
Shipment number | 
| 
CATEGORY_ID | 
NUMBER | 
OPTIONAL | 
The purchasing category assigned
  to this item. | 
| 
PROMISED_DATE  | 
DATE | 
Y | 
The promised date of deliverable | 
                       
PO_DISTRIBUTIONS_INTERFACE
| 
COLUMN_NAME | 
DATATYPE | 
REQUIRED | 
COMMENTS | 
| 
INTERFACE_DISTRIBUTION_ID | 
NUMBER | 
Y | 
A sequential value | 
| 
INTERFACE_LINE_ID | 
NUMBER | 
Y | 
A sequential value matching the
  line value | 
| 
INTERFACE_HEADER_ID | 
VARCHAR2 | 
Y | 
A sequential value matching the
  header value | 
| 
DISTRIBUTION_NUMBER | 
NUMBER | 
Y | 
The distribution number | 
| 
QUANTITY_ORDERED | 
VARCHAR2 | 
Y | 
Quantity ordered in the PO | 
| 
DESTINATION_TYPE_CODE | 
NUMBER | 
Y | 
'EXPENSE','INVENTORY' | 
| 
ACRUE_ON_RECEIPT_FLAG | 
NUMBER | 
Y |  | 
| 
CREATION_DATE | 
NUMBER | 
Y | 
Who column | 
| 
CREATED_BY | 
VARCHAR2 | 
Y | 
Who column | 
| 
ORG_ID | 
NUMBER | 
OPTIONAL | 
Operating Unit | 
Insertion steps
Following are the
steps that must be followed, in order, to perform the Single insertions for
purchase orders in 12.1.3
| 
Execution
   Step | 
Description | 
| 
Step 1 | 
Identify the vendor id and his
  corresponding vendor site id. 
select * from ap_suppliers 
where 1=1 
and vendor_name like 'Star Gate Ltd' 
and vendor_id = 5 
With
  the above vendor_id get any one of the vendor_site_id which have
  purchasing_site_flag enabled. The vendor_site_id is  specific to the
  operating unit. Choose the vendor_site_id under the operating unit you are
  performing the import. 
select * from ap_supplier_sites_all 
where 1=1 
and vendor_id = 5 
AND purchasing_site_flag = 'Y' 
and vendor_site_id = 6 | 
| 
Step 2 | 
Get the agent_id i.e. buyer_id. A agent
  has to be defined for viewing any purchase order related forms. These agents
  are the employees of the organizations who are set up as buyers, so that they
  can raise purchase orders and requisitions. 
SELECT full_name, agent_id 
FROM po_agents pa, per_all_people_f ppl 
WHERE 1=1 
and pa.agent_id = ppl.person_id 
AND UPPER
  (ppl.full_name) LIKE UPPER ('Stock, Ms. Pat') 
and agent_id  = 25 | 
| 
Step 3 | 
Identify the ship_to_location_id and
  bill_to_location_id defined for the vendor_sites using the Step 1 of vendor
  sites. 
SELECT  
vendor_site_id 
,ship_to_location_id 
,bill_to_location_id 
FROM po_vendor_sites_all 
WHERE 1=1  
and vendor_id = 5 
AND purchasing_site_flag = 'Y'  
AND org_id = 204; 
If
  there is no data for the location columns then derive the values from the
  below query. It returns the default ship_to and bill_to location values for a
  org id. 
SELECT  
ship_to_location_id 
,bill_to_location_id 
FROM financials_system_params_all 
WHERE 1=1 
AND org_id = 204 | 
| 
Step 4 | 
Choose one of the values for the action
  column 
'ORIGINAL' → A New record 
'UPDATE' → To update an existing
  record 
'ADD' → To add lines to an
  existing purchase order. 
Choose the following values for the
  document_type_code column 
STANDARD → One time purchase
  orders 
BLANKET  →  Cover a
  specific date range and used when not sure of the exact quantity is not known
  prior. 
QUOTATIONS → Quotation in
  response to the RFQ generated by the organization. | 
| 
Step 5  | 
INSERT
  INTO po_headers_interface  
         
  (interface_header_id, 
        
  batch_id, 
        
  action, 
        
  document_type_code, 
        
  vendor_id, 
     
     vendor_site_id, 
        
  org_id, 
        
  currency_code, 
        
  agent_id, 
        
  ship_to_location_id, 
        
  bill_to_location_id, 
        
  approved_date, 
        
  creation_date, 
        
  created_by, 
        
  effective_date) 
    
  VALUES (po_headers_interface_s.NEXTVAL,--interface_header_id, 
            
  4321,                 
  -- batch_id 
            
  'ORIGINAL',             
  -- action 
            
  'STANDARD',  --
  document_type_code 
            
  5,                   
  -- vendor_id 
            
  6,              
  -- vendor_site_id 
            
  204,                    
  -- org_id 
            
  'USD',           
  -- currency_code 
            
  25,                   
  -- agent_id 
            
  207,        -- ship_to_location_id 
            
  204,        -- bill_to_location_id 
            
  SYSDATE,         
  -- approved_date 
            
  SYSDATE,         
  -- creation_date 
            
  1318,               
  -- created_by 
            
  SYSDATE          
  --effective_date 
                   
  ); | 
| 
Step 6 | 
Get an item id from mtl_system_items_b
  such that both the flags 'Purchasing_Enabled_Flag' and 'Purchasing Item Flag'
  are set to 'Y'. Also get the relevant unit_of_measure for the item. 
SELECT  
primary_unit_of_measure 
,inventory_item_id 
,description 
,organization_id 
FROM mtl_system_items_b 
WHERE 1=1 
AND segment1 = 'AS54999' 
AND purchasing_enabled_flag = 'Y' 
AND purchasing_item_flag = 'Y' | 
| 
Step 7 | 
Based
  on the ship_to_location_id column value given in the Po_Headers_Interface
  derive the corresponding ship_to_organization_id. 
SELECT hu.NAME, hu.organization_id 
FROM hr_organization_information hi, hr_all_organization_units hu 
WHERE 1=1 
AND hi.organization_id = hu.organization_id 
AND hu.location_id = 207 --(as from the Step 3 ) 
AND hi.org_information1 = 'INV' | 
| 
Step 8 | 
There's an exclusive category set to be
  used for purchasing  which is 'Purchasing Category Set'. 
The item being considered for purchase
  orders should fall  under this category. 
SELECT  
mcs.category_set_name 
, mic.category_set_id 
, mic.category_id 
, mic.organization_id 
FROM mtl_item_categories mic, mtl_category_sets_tl mcs 
WHERE 1=1 
AND mic.category_set_id = mcs.category_set_id 
AND mic.inventory_item_id = 2155 --(as from the Step 6) | 
| 
Step 9 | 
INSERT
  INTO po_lines_interface (interface_line_id, 
                               
  interface_header_id, 
                               
  line_type, 
                               
  line_num, 
                               
  unit_of_measure, 
                               
  quantity, 
                               
  unit_price, 
                               
  item_id, 
                               
  item_description, 
                         
        ship_to_location_id, 
                               
  ship_to_organization_id, 
                               
  creation_date, 
                               
  created_by, 
                               
  shipment_num, 
                               
  category_id, 
                               
  promised_date) 
    
  VALUES (po_lines_interface_s.NEXTVAL,    -- interface_line_id 
            
  po_headers_interface_s.CURRVAL,-- interface_header_id 
            
  'Goods',                                
  -- line_type 
            
  1,                                       
  -- line_num 
            
  'Each',                           
  -- unit_of_measure 
            
  1,                                       
  -- quantity 
            
  100,                        
             -- unit_price 
            
  2155,                                     
  -- item_id 
            
  'Sentinel
  Standard Desktop',       -- item_description 
            
  209,                          
  -- ship_to_location_id 
            
  209,                          
  --ship_to_organization_id 
            
  SYSDATE,                       
  -- creation_date 
            
  1318,                             
  -- created_by 
            
  1,                              
  -- shipment_num 
            
  1, 
                                -- category_id 
            
  SYSDATE + 10                    
  --promised_date 
                     
  ); | 
| 
Step 10 | 
INSERT
  INTO po_distributions_interface (interface_distribution_id, 
                                       
  interface_line_id, 
                                       
  interface_header_id, 
                                       
  distribution_num, 
                                       
  quantity_ordered, 
                                       
  destination_type_code, 
                                       
  accrue_on_receipt_flag, 
                                       
  creation_date, 
                                       
  created_by, 
                                       
  org_id) 
    
  VALUES (po_distributions_interface_s.NEXTVAL,--interface_distribut_id 
            
  po_lines_interface_s.CURRVAL,   -- interface_line_id 
            
  po_headers_interface_s.CURRVAL, --
  interface_header_id 
            
  1,                   
  -- distribution_num 
            
  1,                   
  -- quantity_ordered 
            
  'INVENTORY',     -- destination_type_code 
            
  'N',           
  -- accrue_on_receipt_flag 
            
  SYSDATE,                
  -- creation_date 
            
  1318,                 
        --created_by 
            
  204                             
  --org_id 
               
  );   | 
| 
Step 11 | 
COMMIT | 
| 
Step 12 | 
Check the values in interface tables 
select * from po_headers_interface 
where 1=1 
and creation_date > sysdate
  - 1 
order by
  creation_date desc 
select * from po_lines_interface 
where 1=1 
and creation_date > sysdate
  - 1 
order by
  creation_date desc 
select * from po_distributions_interface 
where 1=1 
and creation_date > sysdate
  - 1 
order by
  creation_date desc 
select * from po_interface_errors 
where 1=1 
and creation_date > sysdate
  - 1 
order by
  creation_date desc | 
| 
Step 13 | 
Responsibility:  Purchasing Super
  User 
Navigation : Purchasing Super User →
  Reports → Run → Import Standard Purchase Orders 
The parameters for the concurrent program
  are 
1.     
  Default Buyer  → A default buyer name which will
  appear on the imported PO. 
2.     
  Create or Update Items → If even item creation or
  update is done along with PO check this. 
3.     
  Approval Status → APPROVED, INCOMPLETE,INITIATE
  APPROVAL  
4.     
  Batch Id → A unique identifier for the records
  inserted by us. | 
| 
Step 14 | 
If the import programs completes as
  normal check for the status of po_headers_interface action column. If its
  'REJECTED' check in the PO_INTERFACE_ERRORS with the batch_id. 
SELECT * 
  FROM po_interface_errors 
WHERE batch_id = 4321; --( the batch id we passed
  for in step 5) | 
| 
Step 15 | 
Check the Base tables  and their
  respective columns effected. 
Below listed are the important columns in
  each table. 
select * from po_headers_all 
where 1=1 
and creation_date > sysdate
  - 1 
order by
  creation_date desc 
select * from po_lines_all 
where 1=1 
and creation_date > sysdate
  - 1 
order by
  creation_date desc 
select * from po_distributions_all 
where 1=1 
and creation_date > sysdate
  - 1 
order by
  creation_date desc 
1.     
  PO_HEADERS_ALL  
     PO_HEADER_ID 
AGENT_ID 
TYPE_LOOKUP_CODE 
SEGMENT1 
SUMMARY_FLAG 
ENABLED_FLAG 
VENDOR_ID 
VENDOR_SITE_ID 
VENDOR_CONTACT_ID 
SHIP_TO_LOCATION_ID 
BILL_TO_LOCATION_ID 
CURRENCT_CODE 
CLOSED_CODE 
ORG_ID 
2.     
  PO_LINES_ALL 
    
  PO_LINE_ID 
PO_HEADER_ID 
LINE_TYPE_ID 
LINE_NUM 
ITEM_ID 
ITEM_REVISION 
CATEGORY_ID 
ITEM_DESCRIPTION 
QUANTITY_COMMITTED 
UNIT_PRICE 
QUANTITY 
CLOSED_CODE 
ORG_ID 
3.     
  PO_LINE_LOCATIONS_ALL 
LINE_LOCATION_ID 
PO_HEADER_ID 
PO_LINE_ID 
QUANTITY 
QUANTITY_RECEIVED 
QUANTITY_ACCEPTED 
QUANTITY_REJECTED 
QUANTITY_BILLED 
QUANTITY_CANCELLED 
SHIP_TO_LOCATION_ID 
PROMISED_DATE 
PO_DISTRIBUTIONS_ALL 
   PO_DISTRIBUTION_ID 
PO_HEADER_ID 
PO_LINE_ID 
LINE_LOCATION_ID 
SET_OF_BOOKS_ID 
CODE_COMBINATION_ID 
QUANTITY_ORDERED 
QUANTITY_DELIVERED 
QUANTITY_BILLED 
DESTINATION_TYPE_CODE 
DESTINATION_ORGANIZATION_ID 
ACCRUAL_ACCOUNT_ID 
VARIANCE_ACCOUNT_ID 
ORG_ID | 
Pre-Requisitions
Below mentioned are
the list of tasks which need to be setup prior to purchase orders import.
| 
Execution
   Step | 
Description | 
| 
Step 1 | 
Buyer need to be defined for viewing
  purchase orders or requisitions. The buyer in general terms is an employee of
  the organization who has been given the privilege to buy the goods. To enable
  an employee as a buyer  
Navigate to  
Purchasing Super User → Setup → Personal
  → Buyer  
Only selected list of buyers have the
  rights for the PO approval. | 
| 
Step 2 | 
Suppliers need to be defined with proper
  site associations. The supplier sites are organization specific and are to
  have the purchasing_site_flag enabled. | 
| 
Step 3 | 
The item which is being user in the
  purchase orders has to have 'Purchasing Enabled Flag' and 'Purchasing Item
  Flag' Enabled. | 
Code Attachments
The below sql code
has the code to perform single insert into Interface tables for Standard
Purchase orders.
--XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DECLARE
  
L_header_id         NUMBER := po_headers_interface_s.NEXTVAL;
  
L_line_id           NUMBER := po_lines_interface_s.NEXTVAL;
   L_distribution_id   NUMBER := po_distributions_interface_s.NEXTVAL;
BEGIN
   --XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
   --------> INSERT INTO HEADERS INTERFACE
TABLE<---------
   --XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
   INSERT INTO po_headers_interface (interface_header_id,
                                    
batch_id,
                                    
action,
     
                               document_type_code,
                                    
vendor_id,
                                    
vendor_site_id,
                                    
org_id,
                                    
currency_code,
      
                              agent_id,
                                    
ship_to_location_id,
                                    
bill_to_location_id,
                                    
approved_date,
                                    
creation_date,
                                    
created_by,
                                    
effective_date)
        VALUES (l_header_id,                           
--interface_header_id,
               
4321,                                             
-- batch_id
               
'ORIGINAL',                                         
-- action
               
'STANDARD',                             
--
document_type_code
               
5,                                               
-- vendor_id
      
         6,                                          
--
vendor_site_id
               
204,                                                
-- org_id
               
'USD',                                       
--
currency_code
               
25,      
                                         -- agent_id
               
207,                                   
--
ship_to_location_id
               
204,                                   
--
bill_to_location_id
               
SYSDATE,                    
                 -- approved_date
               
SYSDATE,                                     
--
creation_date
               
1318,                                           
-- created_by
               
SYSDATE                                      
--effective_date
                      
);
   --XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
   --------> INSERT INTO LINES INTERFACE
<---------
   --XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
   INSERT INTO po_lines_interface (interface_line_id,
                                  
interface_header_id,
                                  
line_type,
                                  
line_num,
                                  
unit_of_measure,
                                  
quantity,
                                  
unit_price,
                                  
item_id,
                                  
item_description,
                                  
ship_to_location_id,
                                  
ship_to_organization_id,
                                  
creation_date,
                                  
created_by,
                                  
shipment_num,
                            
      category_id,
                                  
promised_date)
        VALUES (l_line_id,                               
--
interface_line_id
               
l_header_id,                           
-- interface_header_id
               
'Goods',    
                                     -- line_type
               
1,                                                
-- line_num
               
'Each',                                    
--
unit_of_measure
               
1,                             
                   -- quantity
               
100,                                            
-- unit_price
               
2155,                                              
-- item_id
               
'Sentinel Standard
Desktop - Rugged',      -- item_description
               
209,                                   
--
ship_to_location_id
               
209,                               
--
ship_to_organization_id
               
SYSDATE,                                     
--
creation_date
      
         1318,                                           
-- created_by
               
1,                                            
--
shipment_num
               
1,                                             
-- category_id
               
SYSDATE + 10                                  
--promised_date
                           
);
   --XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
   --------> INSERT INTO DISTRIBUTIONS INTERFACE
TABLE<---------
   --XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
   INSERT INTO po_distributions_interface (interface_distribution_id,
                                          
interface_line_id,
                                         
 interface_header_id,
                                          
distribution_num,
                                          
quantity_ordered,
                                          
destination_type_code,
                                          
accrue_on_receipt_flag,
                                          
creation_date,
                                          
created_by,
                                          
org_id)
        VALUES (L_distribution_id,                   
--interface_distribut_id
               
l_line_id,                               
--
interface_line_id
               
l_header_id,                           
--
interface_header_id
               
1,                                        
-- distribution_num
          
     1,                                        
--
quantity_ordered
               
'INVENTORY',                         
--
destination_type_code
               
'N',                                
--
accrue_on_receipt_flag
               
SYSDATE,     
                                -- creation_date
               
1318,                                            
--created_by
               
204                                                  
--org_id
                  
);
   COMMIT;
------------------------------------------------------------------------------
END;
--XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 




 
 Get Flower Effect
Get Flower Effect
No comments:
Post a Comment