OM-API生成一个订单

DECLARE
  l_header_rec OE_ORDER_PUB.Header_Rec_Type;
  l_line_tbl   OE_ORDER_PUB.Line_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_scredit_tbl       OE_ORDER_PUB.Header_Scredit_Tbl_Type;
  --l_line_scredit_tbl         OE_ORDER_PUB.Line_Scredit_Tbl_Type;
  l_action_request_tbl OE_ORDER_PUB.Request_Tbl_Type;

  l_return_status VARCHAR2(1);
  l_msg_count     NUMBER;
  l_msg_data      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;

  X_DEBUG_FILE     VARCHAR2(100);
  l_line_tbl_index NUMBER;
  l_msg_index_out  NUMBER(10);


BEGIN
  dbms_output.enable(1000000);
  fnd_global.apps_initialize(1115, 50251, 660); -- pass in user_id,responsibility_id, and application_id
  oe_msg_pub.initialize; --初始化
  oe_debug_pub.initialize; --Debug初始化,清除debug cache
  X_DEBUG_FILE := OE_DEBUG_PUB.Set_Debug_Mode('FILE');
  oe_debug_pub.SetDebugLevel(5); -- Use 5 for the most debuging output, I warn you its a lot of data 设置Debug级别
  --DBMS_APPLICATION_INFO.set_client_info(122);--org_id
  dbms_output.put_line('START OF NEW DEBUG');

  /* The header record is initialized to missing as there would be no header_id exists for the record.
  Once the header_id is generated by the API, the l_header_rec will take the value of the header_id */
  l_header_rec := OE_ORDER_PUB.G_MISS_HEADER_REC;
  -- Header Attributes
  l_header_rec.order_type_id  := 1022; --10-标准订单
  l_header_rec.sold_to_org_id := 513961; --关联客户编号
  --l_header_rec.ship_to_org_id        := 23128;--关联收货地点
  -- l_header_rec.cust_po_number          := 'csg2009091607';
  --l_header_rec.transactional_curr_code := 'CNY';
  -- The statement indicates to the process order API that a new header has to be created.
  l_header_rec.operation := OE_GLOBALS.G_OPR_CREATE;

  -- Setting index as 1 to indicate that these belong to 1st line record
  l_line_tbl_index := 1;
  -- Initializing the line record to missing
  l_line_tbl(l_line_tbl_index) := OE_ORDER_PUB.G_MISS_LINE_REC;
  -- Line Attributes
  l_line_tbl(l_line_tbl_index).inventory_item_id := 277; --关联物料编号
  l_line_tbl(l_line_tbl_index).ordered_quantity := 17; --订单数量
  --l_line_tbl(l_line_tbl_index).SHIP_FROM_ORG_ID := 130;--发运仓库ID
  --l_line_tbl(l_line_tbl_index).calculate_price_flag := 'Y';--标识价目表是否要输入
  l_line_tbl(l_line_tbl_index).line_type_id := 1001; --行类型
  -- Indicates that this is a create operation for the line record.
  l_line_tbl(l_line_tbl_index).operation := OE_GLOBALS.G_OPR_CREATE;

  -- action request订单登记
  /*
  l_action_request_tbl(l_line_tbl_index) := oe_order_pub.g_miss_request_rec;
  l_action_request_tbl(l_line_tbl_index).request_type := oe_globals.g_book_order;
  l_action_request_tbl(l_line_tbl_index).entity_code := oe_globals.g_entity_header;
  l_action_request_tbl(l_line_tbl_index).entity_id := l_header_rec.header_id;
  */
  OE_ORDER_PUB.process_order(p_api_version_number => 1.0, --API版本初始化
                             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,
                             -- OUT PARAMETERS
                             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_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('OM Debug file: ' || oe_debug_pub.G_DIR || '/' ||
                       oe_debug_pub.G_FILE);
  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!');
    commit;
  ELSE
    dbms_output.put_line('~_~Process Order Failed!');
    rollback;
  END IF;
  -- debug output
  dbms_output.put_line('Debug Output');
  FOR i in 1 .. OE_DEBUG_PUB.g_debug_count LOOP
    dbms_output.put_line(OE_DEBUG_PUB.G_debug_tbl(i));
  END LOOP;
END;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15725751/viewspace-614806/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/15725751/viewspace-614806/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值