小说网站 搜小说 无限网 烟雨红尘 小说爱好者 免费小说 免费小说网站

订单应用暂挂

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;


posted on 2014-10-17 15:15  王小航  阅读(249)  评论(0编辑  收藏  举报

导航