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

Sale Order Line Update API

The document contains code to update order line details for existing orders in an Oracle database. It declares variables to store order header, line, and other related data. A cursor is used to retrieve order header IDs. The code then loops through each header ID, populates the line data variables, calls an API to process the order update, and commits or rolls back based on the API response status. Any error messages returned are also output.

Uploaded by

muzamilsabir
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
62 views

Sale Order Line Update API

The document contains code to update order line details for existing orders in an Oracle database. It declares variables to store order header, line, and other related data. A cursor is used to retrieve order header IDs. The code then loops through each header ID, populates the line data variables, calls an API to process the order update, and commits or rolls back based on the API response status. Any error messages returned are also output.

Uploaded by

muzamilsabir
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

--SET SERVEROUTPUT ON;

--exec dbms_output.ENABLE(300000000);
DECLARE
cursor c1 is select * from tgc_order_update t
where 1=1
and t.HEADER_ID <> 157102 ; ---17022022
v_api_version_number NUMBER := 1;
v_return_status VARCHAR2 (2000);
v_msg_count NUMBER;
v_msg_data VARCHAR2 (2000);
-- IN Variables --
v_header_rec oe_order_pub.header_rec_type;
v_line_tbl oe_order_pub.line_tbl_type;
v_action_request_tbl oe_order_pub.request_tbl_type;
v_line_adj_tbl oe_order_pub.line_adj_tbl_type;
-- OUT Variables --
v_header_rec_out oe_order_pub.header_rec_type;
v_header_val_rec_out oe_order_pub.header_val_rec_type;
v_header_adj_tbl_out oe_order_pub.header_adj_tbl_type;
v_header_adj_val_tbl_out oe_order_pub.header_adj_val_tbl_type;
v_header_price_att_tbl_out oe_order_pub.header_price_att_tbl_type;
v_header_adj_att_tbl_out oe_order_pub.header_adj_att_tbl_type;
v_header_adj_assoc_tbl_out oe_order_pub.header_adj_assoc_tbl_type;
v_header_scredit_tbl_out oe_order_pub.header_scredit_tbl_type;
v_header_scredit_val_tbl_out oe_order_pub.header_scredit_val_tbl_type;
v_line_tbl_out oe_order_pub.line_tbl_type;
v_line_val_tbl_out oe_order_pub.line_val_tbl_type;
v_line_adj_tbl_out oe_order_pub.line_adj_tbl_type;
v_line_adj_val_tbl_out oe_order_pub.line_adj_val_tbl_type;
v_line_price_att_tbl_out oe_order_pub.line_price_att_tbl_type;
v_line_adj_att_tbl_out oe_order_pub.line_adj_att_tbl_type;
v_line_adj_assoc_tbl_out oe_order_pub.line_adj_assoc_tbl_type;
v_line_scredit_tbl_out oe_order_pub.line_scredit_tbl_type;
v_line_scredit_val_tbl_out oe_order_pub.line_scredit_val_tbl_type;
v_lot_serial_tbl_out oe_order_pub.lot_serial_tbl_type;
v_lot_serial_val_tbl_out oe_order_pub.lot_serial_val_tbl_type;
v_action_request_tbl_out oe_order_pub.request_tbl_type;
v_msg_index NUMBER;
v_data VARCHAR2 (2000);
v_loop_count NUMBER;
v_debug_file VARCHAR2 (200);
b_return_status VARCHAR2 (200);
b_msg_count NUMBER;
b_msg_data VARCHAR2 (2000);
l_line_tbl_index NUMBER ;
BEGIN
DBMS_OUTPUT.PUT_LINE('Starting of script');
-- Setting the Enviroment --
mo_global.init('ONT');
fnd_global.apps_initialize ( user_id => 1110
,resp_id => 50745
,resp_appl_id => 660);
mo_global.set_policy_context('S',85);
FOR head in c1 loop
-- Header Record --
v_header_rec := oe_order_pub.g_miss_header_rec;
-- v_header_rec.operation := OE_GLOBALS.G_OPR_UPDATE;
-- v_header_rec.shipment_priority_code := head.shipment_priority_code ;
-- Updating the Request Date
-- v_header_rec.header_id := head.header_id ; -- Existing o
rder header id
v_action_request_tbl (1) := oe_order_pub.g_miss_request_rec;
-- Line Record --
-- v_line_tbl (1) := oe_order_pub.g_miss_line_rec;

--This is to update a line to an existing order


l_line_tbl_index :=1;
-- Changed attributes
v_line_tbl(l_line_tbl_index) := OE_ORDER_PUB.G_MISS_LINE_REC;
-- Indicates to process order that this is an update operation
v_line_tbl(l_line_tbl_index).operation := OE_GLOBALS.G_OPR_UPDATE;
--l_line_tbl(l_line_tbl_index).invoice_to_org_id := 322;
v_line_tbl(l_line_tbl_index).shipment_priority_code := 'EXPORT' ;
-- Primary key of the entity i.e. the order line
v_line_tbl(l_line_tbl_index).line_id := head.line_id;
v_line_tbl(l_line_tbl_index).change_reason := 'Not provided';

DBMS_OUTPUT.PUT_LINE('Starting of API');
-- Calling the API to update the header details of an existing Order --
OE_ORDER_PUB.PROCESS_ORDER (
p_api_version_number => v_api_version_number
, p_header_rec => v_header_rec
, p_line_tbl => v_line_tbl
, p_action_request_tbl => v_action_request_tbl
, p_line_adj_tbl => v_line_adj_tbl
-- OUT variables
, x_header_rec => v_header_rec_out
, x_header_val_rec => v_header_val_rec_out
, x_header_adj_tbl => v_header_adj_tbl_out
, x_header_adj_val_tbl => v_header_adj_val_tbl_out
, x_header_price_att_tbl => v_header_price_att_tbl_out
, x_header_adj_att_tbl => v_header_adj_att_tbl_out
, x_header_adj_assoc_tbl => v_header_adj_assoc_tbl_out
, x_header_scredit_tbl => v_header_scredit_tbl_out
, x_header_scredit_val_tbl => v_header_scredit_val_tbl_out
, x_line_tbl => v_line_tbl_out
, x_line_val_tbl => v_line_val_tbl_out
, x_line_adj_tbl => v_line_adj_tbl_out
, x_line_adj_val_tbl => v_line_adj_val_tbl_out
, x_line_price_att_tbl => v_line_price_att_tbl_out
, x_line_adj_att_tbl => v_line_adj_att_tbl_out
, x_line_adj_assoc_tbl => v_line_adj_assoc_tbl_out
, x_line_scredit_tbl => v_line_scredit_tbl_out
, x_line_scredit_val_tbl => v_line_scredit_val_tbl_out
, x_lot_serial_tbl => v_lot_serial_tbl_out
, x_lot_serial_val_tbl => v_lot_serial_val_tbl_out
, x_action_request_tbl => v_action_request_tbl_out
, x_return_status => v_return_status
, x_msg_count => v_msg_count
, x_msg_data => v_msg_data
);
DBMS_OUTPUT.PUT_LINE('Completion of API');

IF v_return_status = fnd_api.g_ret_sts_success THEN


COMMIT;
dbms_output.Put_line('Succesfully Updated Line Id: ' ||v
_line_tbl(l_line_tbl_index).line_id);
ELSE
DBMS_OUTPUT.put_line ('Order Line Updation failed:'||v_m
sg_data);
ROLLBACK;
FOR i IN 1 .. v_msg_count
LOOP
v_msg_data := oe_msg_pub.get( p_msg_index => i, p_
encoded => 'F');
dbms_output.put_line( i|| ') '|| v_msg_data);
END LOOP;
END IF;
END LOOP ;
END;
/

You might also like