订单应用暂挂
You can apply hold on existing order by populating the order import interface with the following :
OE_HEADERS_IFACE_ALL ORDER_SOURCE_ID ORIG_SYS_DOCUMENT_REF OPERATION_CODE => 'UPDATE' ORG_ID ORDER_TYPE_ID CREATED_BY CREATION_DATE LAST_UPDATED_BY LAST_UPDATE_DATE OE_ACTIONS_IFACE_ALL ORDER_SOURCE_ID, ORIG_SYS_DOCUMENT_REF, ORG_ID, HOLD_ID, HOLD_TYPE_CODE, HOLD_TYPE_ID, OPERATION_CODE => 'APPLY_HOLD' HOLD_ID is the type of hold that should be applied. HOLD_ID from OE_HOLD_DEFINITIONS HOLD_TYPE_CODE is the entity code for the hold source to be created. C: Customer hold source S: Bill To or Ship To hold source I: Item hold source O: Order hold source W: Warehouse Hold Source HOLD_TYPE_ID value depends on value you populate in HOLD_TYPE_CODE, for example, when you populate HOLD_TYPE_CODE = 'C', HOLD_TYPE_ID would be the customer_number.
A sample call to the process_order API to apply hold is given below.
DECLARE l_header_rec oe_order_pub.header_rec_type; l_line_tbl oe_order_pub.line_tbl_type; l_action_request_tbl oe_order_pub.request_tbl_type; l_header_adj_tbl oe_order_pub.header_adj_tbl_type; l_line_adj_tbl oe_order_pub.line_adj_tbl_type; l_header_scr_tbl oe_order_pub.header_scredit_tbl_type; l_line_scredit_tbl oe_order_pub.line_scredit_tbl_type; l_request_rec oe_order_pub.request_rec_type; l_return_status VARCHAR2(1000); l_msg_count NUMBER; l_msg_data VARCHAR2(1000); p_api_version_number NUMBER := 1.0; p_init_msg_list VARCHAR2(10) := fnd_api.g_false; p_return_values VARCHAR2(10) := fnd_api.g_false; p_action_commit VARCHAR2(10) := fnd_api.g_false; x_return_status VARCHAR2(1); x_msg_count NUMBER; x_msg_data VARCHAR2(100); 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; p_header_rec oe_order_pub.header_rec_type := oe_order_pub.g_miss_header_rec; p_old_header_rec oe_order_pub.header_rec_type := oe_order_pub.g_miss_header_rec; p_header_val_rec oe_order_pub.header_val_rec_type := oe_order_pub.g_miss_header_val_rec; p_old_header_val_rec oe_order_pub.header_val_rec_type := oe_order_pub.g_miss_header_val_rec; p_header_adj_tbl oe_order_pub.header_adj_tbl_type := oe_order_pub.g_miss_header_adj_tbl; p_old_header_adj_tbl oe_order_pub.header_adj_tbl_type := oe_order_pub.g_miss_header_adj_tbl; p_header_adj_val_tbl oe_order_pub.header_adj_val_tbl_type := oe_order_pub.g_miss_header_adj_val_tbl; p_old_header_adj_val_tbl oe_order_pub.header_adj_val_tbl_type := oe_order_pub.g_miss_header_adj_val_tbl; p_header_price_att_tbl oe_order_pub.header_price_att_tbl_type := oe_order_pub.g_miss_header_price_att_tbl; p_old_header_price_att_tbl oe_order_pub.header_price_att_tbl_type := oe_order_pub.g_miss_header_price_att_tbl; p_header_adj_att_tbl oe_order_pub.header_adj_att_tbl_type := oe_order_pub.g_miss_header_adj_att_tbl; p_old_header_adj_att_tbl oe_order_pub.header_adj_att_tbl_type := oe_order_pub.g_miss_header_adj_att_tbl; p_header_adj_assoc_tbl oe_order_pub.header_adj_assoc_tbl_type := oe_order_pub.g_miss_header_adj_assoc_tbl; p_old_header_adj_assoc_tbl oe_order_pub.header_adj_assoc_tbl_type := oe_order_pub.g_miss_header_adj_assoc_tbl; p_header_scredit_tbl oe_order_pub.header_scredit_tbl_type := oe_order_pub.g_miss_header_scredit_tbl; p_old_header_scredit_tbl oe_order_pub.header_scredit_tbl_type := oe_order_pub.g_miss_header_scredit_tbl; p_header_scredit_val_tbl oe_order_pub.header_scredit_val_tbl_type := oe_order_pub.g_miss_header_scredit_val_tbl; p_old_header_scredit_val_tbl oe_order_pub.header_scredit_val_tbl_type := oe_order_pub.g_miss_header_scredit_val_tbl; p_line_tbl oe_order_pub.line_tbl_type := oe_order_pub.g_miss_line_tbl; p_old_line_tbl oe_order_pub.line_tbl_type := oe_order_pub.g_miss_line_tbl; p_line_val_tbl oe_order_pub.line_val_tbl_type := oe_order_pub.g_miss_line_val_tbl; p_old_line_val_tbl oe_order_pub.line_val_tbl_type := oe_order_pub.g_miss_line_val_tbl; p_line_adj_tbl oe_order_pub.line_adj_tbl_type := oe_order_pub.g_miss_line_adj_tbl; p_old_line_adj_tbl oe_order_pub.line_adj_tbl_type := oe_order_pub.g_miss_line_adj_tbl; p_line_adj_val_tbl oe_order_pub.line_adj_val_tbl_type := oe_order_pub.g_miss_line_adj_val_tbl; p_old_line_adj_val_tbl oe_order_pub.line_adj_val_tbl_type := oe_order_pub.g_miss_line_adj_val_tbl; p_line_price_att_tbl oe_order_pub.line_price_att_tbl_type := oe_order_pub.g_miss_line_price_att_tbl; p_old_line_price_att_tbl oe_order_pub.line_price_att_tbl_type := oe_order_pub.g_miss_line_price_att_tbl; p_line_adj_att_tbl oe_order_pub.line_adj_att_tbl_type := oe_order_pub.g_miss_line_adj_att_tbl; p_old_line_adj_att_tbl oe_order_pub.line_adj_att_tbl_type := oe_order_pub.g_miss_line_adj_att_tbl; p_line_adj_assoc_tbl oe_order_pub.line_adj_assoc_tbl_type := oe_order_pub.g_miss_line_adj_assoc_tbl; p_old_line_adj_assoc_tbl oe_order_pub.line_adj_assoc_tbl_type := oe_order_pub.g_miss_line_adj_assoc_tbl; p_line_scredit_tbl oe_order_pub.line_scredit_tbl_type := oe_order_pub.g_miss_line_scredit_tbl; p_old_line_scredit_tbl oe_order_pub.line_scredit_tbl_type := oe_order_pub.g_miss_line_scredit_tbl; p_line_scredit_val_tbl oe_order_pub.line_scredit_val_tbl_type := oe_order_pub.g_miss_line_scredit_val_tbl; p_old_line_scredit_val_tbl oe_order_pub.line_scredit_val_tbl_type := oe_order_pub.g_miss_line_scredit_val_tbl; p_lot_serial_tbl oe_order_pub.lot_serial_tbl_type := oe_order_pub.g_miss_lot_serial_tbl; p_old_lot_serial_tbl oe_order_pub.lot_serial_tbl_type := oe_order_pub.g_miss_lot_serial_tbl; p_lot_serial_val_tbl oe_order_pub.lot_serial_val_tbl_type := oe_order_pub.g_miss_lot_serial_val_tbl; p_old_lot_serial_val_tbl oe_order_pub.lot_serial_val_tbl_type := oe_order_pub.g_miss_lot_serial_val_tbl; p_action_request_tbl oe_order_pub.request_tbl_type := oe_order_pub.g_miss_request_tbl; 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; x_action_request_tbl oe_order_pub.request_tbl_type; x_debug_file VARCHAR2(100); l_msg_index_out NUMBER(10); BEGIN dbms_output.enable(1000000); fnd_global.apps_initialize(1370, 50717, 20005); -- pass in user_id, responsibility_id, and application_id oe_msg_pub.initialize; oe_debug_pub.initialize; mo_global.init('ONT'); mo_global.set_policy_context(p_access_mode => 'S', p_org_id => 81); x_debug_file := oe_debug_pub.set_debug_mode('FILE'); dbms_output.put_line('file :' || x_debug_file); oe_debug_pub.add('debug statement', 1); oe_debug_pub.setdebuglevel(5); dbms_output.put_line('START OF NEW DEBUG'); --This is to release hold an order header l_request_rec.entity_id := 431001; l_request_rec.entity_code := oe_globals.g_entity_header; l_request_rec.request_type := oe_globals.G_APPLY_HOLD; -- hold_id must be passed l_request_rec.param1 := 2001;--销售未确认-暂挂 -- indicator that it is an order hold l_request_rec.param2 := 'O'; -- Header ID of the order l_request_rec.param3 := 431001; --60002 --l_request_rec.param4 := 'OA_APPROVAL'; --l_request_rec.param5 :=' '; l_action_request_tbl(1) := l_request_rec; -- CALL TO PROCESS ORDER API 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_org_id => 82, p_header_rec => l_header_rec, p_line_tbl => l_line_tbl, p_action_request_tbl => l_action_request_tbl -- OUT PARAMETERS , x_header_rec => v_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 => v_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 => x_action_request_tbl); dbms_output.put_line('OM Debug file: ' || oe_debug_pub.g_dir || '/' || oe_debug_pub.g_file); -- Retrieve messages FOR i IN 1 .. l_msg_count LOOP oe_msg_pub.get(p_msg_index => i, p_encoded => fnd_api.g_false, p_data => l_msg_data, p_msg_index_out => l_msg_index_out); dbms_output.put_line('message is: ' || l_msg_data); dbms_output.put_line('message index is: ' || l_msg_index_out); END LOOP; -- Check the return status IF l_return_status = fnd_api.g_ret_sts_success THEN dbms_output.put_line('Process Order Success'); ELSE dbms_output.put_line('Failed'); END IF; END;