------------------------------------------------------------------------------------------------
--Query to Fetch ID's
select * from fnd_user where user_name like 'ANU%'; --16705
select * from fnd_responsibility_vl where responsibility_name=' XX OM ORDER ENTRY'; --51546
select * from fnd_application_vl where application_name like '%Order%'; --660
select header_id from oe_order_headers_all;
select line_id from oe_order_lines_all;
select list_header_id from qp_list_headers_tl;
select list_line_id from qp_list_lines;
------------------------------------------------------------------------------------------------
--Call to MAIN API
SET serveroutput on;
DECLARE
v_api_version_number NUMBER := 1.0;
v_init_msg_list VARCHAR2 (10) := fnd_api.g_false;
v_return_values VARCHAR2 (10) := fnd_api.g_false;
v_action_commit VARCHAR2 (10) := fnd_api.g_false;
x_ou_header_val_rec oe_order_pub.header_val_rec_type;
x_ou_header_adj_tbl oe_order_pub.header_adj_tbl_type;
x_ou_header_adj_val_tbl oe_order_pub.header_adj_val_tbl_type;
x_ou_header_price_att_tbl oe_order_pub.header_price_att_tbl_type;
x_ou_header_adj_att_tbl oe_order_pub.header_adj_att_tbl_type;
x_ou_header_adj_assoc_tbl oe_order_pub.header_adj_assoc_tbl_type;
x_ou_header_scredit_tbl oe_order_pub.header_scredit_tbl_type;
x_ou_header_scredit_val_tbl oe_order_pub.header_scredit_val_tbl_type;
x_ou_line_val_tbl oe_order_pub.line_val_tbl_type;
x_ou_line_adj_tbl oe_order_pub.line_adj_tbl_type;
x_ou_line_adj_val_tbl oe_order_pub.line_adj_val_tbl_type;
x_ou_line_price_att_tbl oe_order_pub.line_price_att_tbl_type;
x_ou_line_adj_att_tbl oe_order_pub.line_adj_att_tbl_type;
x_ou_line_adj_assoc_tbl oe_order_pub.line_adj_assoc_tbl_type;
x_ou_line_scredit_tbl oe_order_pub.line_scredit_tbl_type;
x_ou_line_scredit_val_tbl oe_order_pub.line_scredit_val_tbl_type;
x_ou_lot_serial_tbl oe_order_pub.lot_serial_tbl_type;
x_ou_lot_serial_val_tbl oe_order_pub.lot_serial_val_tbl_type;
x_ou_action_request_tbl oe_order_pub.request_tbl_type;
x_debug_file VARCHAR2 (100);
v_return_status VARCHAR2 (1);
v_msg_count NUMBER;
v_msg_data VARCHAR2 (100);
v_line_tbl_index NUMBER;
v_header_rec oe_order_pub.header_rec_type;
v_line_tbl oe_order_pub.line_tbl_type;
v_line_adj_tbl oe_order_pub.line_adj_tbl_type;
v_action_request_tbl oe_order_pub.request_tbl_type;
v_msg_index_out NUMBER (10);
BEGIN
DBMS_OUTPUT.ENABLE (1000000);
mo_global.set_policy_context ('S', 103);
fnd_global.apps_initialize (16705
,21623
,660
); -- pass in user_id, responsibility_id, and application_id
oe_msg_pub.initialize;
oe_debug_pub.initialize;
-- x_debug_file := oe_debug_pub.set_debug_mode ('FILE');
-- oe_debug_pub.setdebuglevel (5); -- Use 5 for the most debugging output, I warn you its a lot of data
DBMS_OUTPUT.put_line ('START OF NEW DEBUG');
--This is to UPDATE order line
v_line_tbl_index := 1;
-- Changed attributes
v_header_rec := oe_order_pub.g_miss_header_rec;
v_header_rec.header_id := 728232;
v_header_rec.operation := oe_globals.g_opr_update;
v_line_tbl (v_line_tbl_index) := oe_order_pub.g_miss_line_rec;
v_line_tbl (v_line_tbl_index).header_id := 728232;
v_line_tbl (v_line_tbl_index).line_id := 1813117;
v_line_tbl (v_line_tbl_index).operation := oe_globals.g_opr_update;
v_line_adj_tbl (1) := oe_order_pub.g_miss_line_adj_rec;
v_line_adj_tbl (1).operation := oe_globals.g_opr_create;
v_line_adj_tbl (1).header_id := 728232; --header_id of the sales order
v_line_adj_tbl (1).line_id := 1813117; --line_id of the sales order line
--v_Line_Adj_Tbl(1).price_adjustment_id := 3419268;
--price_adjustment_id is required for update/delete
v_line_adj_tbl (1).line_index := 1;
v_line_adj_tbl (1).automatic_flag := 'N';
v_line_adj_tbl (1).applied_flag := 'Y';
v_line_adj_tbl (1).updated_flag := 'Y'; --Optional, this is the fixed flag.
v_line_adj_tbl (1).list_header_id := 330069; --list_header_id of the adjustment
v_line_adj_tbl (1).list_line_id := 322476; --list_line_id of the adjustment
v_line_adj_tbl (1).list_line_type_code := 'DIS';
v_line_adj_tbl (1).adjusted_amount := -500;
v_line_adj_tbl (1).operand := 0;
-- CALL TO PROCESS ORDER
oe_order_pub.process_order (p_api_version_number => 1.0
,p_init_msg_list => fnd_api.g_false
,p_return_values => fnd_api.g_false
,p_action_commit => fnd_api.g_false
,x_return_status => v_return_status
,x_msg_count => v_msg_count
,x_msg_data => v_msg_data
,p_header_rec => v_header_rec
,p_line_tbl => v_line_tbl
,p_line_adj_tbl => v_line_adj_tbl
,p_action_request_tbl => v_action_request_tbl
-- OUT PARAMETERS
, x_header_rec => v_header_rec
,x_header_val_rec => x_ou_header_val_rec
,x_header_adj_tbl => x_ou_header_adj_tbl
,x_header_adj_val_tbl => x_ou_header_adj_val_tbl
,x_header_price_att_tbl => x_ou_header_price_att_tbl
,x_header_adj_att_tbl => x_ou_header_adj_att_tbl
,x_header_adj_assoc_tbl => x_ou_header_adj_assoc_tbl
,x_header_scredit_tbl => x_ou_header_scredit_tbl
,x_header_scredit_val_tbl => x_ou_header_scredit_val_tbl
,x_line_tbl => v_line_tbl
,x_line_val_tbl => x_ou_line_val_tbl
,x_line_adj_tbl => x_ou_line_adj_tbl
,x_line_adj_val_tbl => x_ou_line_adj_val_tbl
,x_line_price_att_tbl => x_ou_line_price_att_tbl
,x_line_adj_att_tbl => x_ou_line_adj_att_tbl
,x_line_adj_assoc_tbl => x_ou_line_adj_assoc_tbl
,x_line_scredit_tbl => x_ou_line_scredit_tbl
,x_line_scredit_val_tbl => x_ou_line_scredit_val_tbl
,x_lot_serial_tbl => x_ou_lot_serial_tbl
,x_lot_serial_val_tbl => x_ou_lot_serial_val_tbl
,x_action_request_tbl => v_action_request_tbl
);
COMMIT;
DBMS_OUTPUT.put_line ( v_msg_count
|| 'OM Debug file: '
|| oe_debug_pub.g_dir
|| '/'
|| oe_debug_pub.g_file);
DBMS_OUTPUT.put_line (v_header_rec.header_id);
--DBMS_OUTPUT.put_line ('adjustment.return_status IS: ' || x_line_adj_tbl(1).return_status);
-- Retrieve messages
FOR i IN 1 .. v_msg_count
LOOP
oe_msg_pub.get (p_msg_index => i
,p_encoded => fnd_api.g_false
,p_data => v_msg_data
,p_msg_index_out => v_msg_index_out
);
DBMS_OUTPUT.put_line ('message is: ' || v_msg_data);
DBMS_OUTPUT.put_line ('message index is: ' || v_msg_index_out);
END LOOP;
-- Check the return status
IF v_return_status = fnd_api.g_ret_sts_success
THEN
DBMS_OUTPUT.put_line ('Line Quantity Update Successful');
ELSE
DBMS_OUTPUT.put_line ('Line Quantity update Failed');
END IF;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLERRM);
END;