更新销售订单行信息
DECLARE
l_header_rec oe_order_pub.header_rec_type;
l_line_tbl oe_order_pub.line_tbl_type;
l_line_tb2 oe_order_pub.line_tbl_type;
l_action_request_tbl oe_order_pub.request_tbl_type;
l_return_status
VARCHAR2
(
1000
);
l_msg_count
NUMBER
;
l_msg_data
VARCHAR2
(
1000
);
v_line_number
VARCHAR2
(
1000
);
l_index
VARCHAR2
(
1000
);
x_header_val_rec oe_order_pub.header_val_rec_type;
x_header_adj_tbl oe_order_pub.header_adj_tbl_type;
x_header_adj_val_tbl oe_order_pub.header_adj_val_tbl_type;
x_header_price_att_tbl oe_order_pub.header_price_att_tbl_type;
x_header_adj_att_tbl oe_order_pub.header_adj_att_tbl_type;
x_header_adj_assoc_tbl oe_order_pub.header_adj_assoc_tbl_type;
x_header_scredit_tbl oe_order_pub.header_scredit_tbl_type;
x_header_scredit_val_tbl oe_order_pub.header_scredit_val_tbl_type;
x_line_val_tbl oe_order_pub.line_val_tbl_type;
x_line_adj_tbl oe_order_pub.line_adj_tbl_type;
x_line_adj_val_tbl oe_order_pub.line_adj_val_tbl_type;
x_line_price_att_tbl oe_order_pub.line_price_att_tbl_type;
x_line_adj_att_tbl oe_order_pub.line_adj_att_tbl_type;
x_line_adj_assoc_tbl oe_order_pub.line_adj_assoc_tbl_type;
x_line_scredit_tbl oe_order_pub.line_scredit_tbl_type;
x_line_scredit_val_tbl oe_order_pub.line_scredit_val_tbl_type;
x_lot_serial_tbl oe_order_pub.lot_serial_tbl_type;
x_lot_serial_val_tbl oe_order_pub.lot_serial_val_tbl_type;
BEGIN
fnd_global.apps_initialize(user_id =>
1190
,
resp_id =>
50786
,
resp_appl_id =>
20003
);
mo_global.init(
'ONT'
);
--r12的安全机制,必须初始化否则报错
oe_msg_pub.initialize;
oe_debug_pub.initialize;
oe_debug_pub.debug_on;
oe_debug_pub.setdebuglevel(
5
);
--mo_global.set_policy_context('S', 1497); --貌似也不需要
l_header_rec := oe_order_pub.g_miss_header_rec;
--不需要
l_header_rec.header_id :=
101449
;
--501010000051
l_header_rec.operation := oe_globals.g_opr_update;
l_line_tbl(
1
) := oe_order_pub.g_miss_line_rec;
l_line_tbl(
1
).line_id :=
112362
;
l_line_tbl(
1
).operation := oe_globals.g_opr_update;
l_line_tbl(
1
).ship_tolerance_below :=
0
;
--dbms_output.put_line('l_line_tbl:' || l_line_tbl(1).open_flag);
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 => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data,
p_header_rec => l_header_rec,
p_line_tbl => l_line_tbl,
--就是这里
p_action_request_tbl => l_action_request_tbl,
x_header_rec => l_header_rec,
x_header_val_rec => x_header_val_rec,
x_header_adj_tbl => x_header_adj_tbl,
x_header_adj_val_tbl => x_header_adj_val_tbl,
x_header_price_att_tbl => x_header_price_att_tbl,
x_header_adj_att_tbl => x_header_adj_att_tbl,
x_header_adj_assoc_tbl => x_header_adj_assoc_tbl,
x_header_scredit_tbl => x_header_scredit_tbl,
x_header_scredit_val_tbl => x_header_scredit_val_tbl,
x_line_tbl => l_line_tb2,
--r11中这里跟p_line_tbl是一样的
x_line_val_tbl => x_line_val_tbl,
x_line_adj_tbl => x_line_adj_tbl,
x_line_adj_val_tbl => x_line_adj_val_tbl,
x_line_price_att_tbl => x_line_price_att_tbl,
x_line_adj_att_tbl => x_line_adj_att_tbl,
x_line_adj_assoc_tbl => x_line_adj_assoc_tbl,
x_line_scredit_tbl => x_line_scredit_tbl,
x_line_scredit_val_tbl => x_line_scredit_val_tbl,
x_lot_serial_tbl => x_lot_serial_tbl,
x_lot_serial_val_tbl => x_lot_serial_val_tbl,
x_action_request_tbl => l_action_request_tbl);
dbms_output.put_line(
'l_index:'
|| l_index ||
'l_msg_data1:'
||
l_msg_data);
IF
l_msg_count >
0
THEN
FOR
l_index
IN
1
.. l_msg_count
LOOP
l_msg_data := oe_msg_pub.get(p_msg_index => l_index, p_encoded =>
'F'
);
END
LOOP
;
END
IF
;
dbms_output.put_line(
'l_index:'
|| l_index ||
'l_msg_data:'
||
l_msg_data);
IF
l_return_status = fnd_api.g_ret_sts_success
THEN
dbms_output.put_line(
'OK'
);
--COMMIT;
ELSE
dbms_output.put_line(
'Failed'
);
ROLLBACK
;
END
IF
;
--COMMIT;
END
;