Order Management APIs -- Oe_Order_Pub

调用Oe_Order_Pub.process_order Update及Insert记录的方法

 

1、 使用范围
Process Order可以对以下销售订单实体做Update,Insert及Delete处理

 

 

Entity

Table Name

Order Header            OE_ORDER_HEADERS_ALL

Order Price Adjustments      OE_PRICE_ADJUSTMENTS

Order Sales Credits          OE_SALES_CREDITS

Order Line              OE_ORDER_LINES_ALL

Order Pricing Attributes       OE_ORDER_PRICE_ATTRIBS

Order Adjustment Attributes    OE_PRICE_ADJ_ATTRIBS

Order Adjustment Associations     OE_PRICE_ADJ_ASSOCS

Line Sales Credits          OE_SALES_CREDITS

Line Price Adjustments        OE_PRICE_ADJUSTMENTS

Line Pricing Attributes         OE_ORDER_PRICE_ATTRIBS

Line Adjustment Attributes       OE_PRICE_ADJ_ATTRIBS

Line Adjustment Associations     OE_PRICE_ADJ_ASSOCS

Lot Serial Numbers         OE_LOT_SERIAL_NUMBERS

2、 设置初始化参数
API版本初始化,消息列表初始化;
调用API的时候所有的输出参数必须赋值,必要的输入参数也需赋值;
每调用一次API只能处理同一张订单。

 

 

3、 调用 Oe_Order_Pub.process_order 更新记录
Update的情况,必须使用Oe_Globals.g_opr_update操作,需传入该订单项目的主键参数,比如更新订单行的时候要传入该行的line_id,再传入需更新的项的值。
4、 调用 Oe_Order_Pub.process_order 插入新记录
Insert的情况,必须使用Oe_Globals.g_opr_create操作。传入必需项的值,其它项API会自动赋予缺损值。注意,不必需项当传入NULL值的时候,则API将NULL值赋予指定项而不再赋予缺损值。

 

5、 返回值处理及消息列表获取
API通过 l_return_status返回值告诉程序员API是否处理成功。还可以通过调用Oe_Msg_Pub.get来获取错误消息列表,后面例子中有详细说明。

 

6、 实例说明
以下是通过一个Procedure调用API来更新oe_order_lines_all的SSD的实例:

create   or   replace   procedure  update_line_ssd(p_line_id  in   number ,
                                            
                                            p_org_id 
in   number ,
                                            
                                            p_ssd 
in  date
                                            
                                            )

 
is

    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_return_status 
varchar2 ( 1000 );

    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;

begin

    oe_msg_pub.initialize;

    oe_debug_pub.initialize;

    oe_debug_pub.debug_on;

    oe_debug_pub.setdebuglevel(
5 );

    dbms_application_info.set_client_info(p_org_id);

    l_line_tbl(
1 ) : =  oe_order_pub.g_miss_line_rec;

    l_line_tbl(
1 ).line_id : =  p_line_id;

    l_line_tbl(
1 ).promise_date : =  p_ssd;

    l_line_tbl(
1 ).operation : =  oe_globals.g_opr_update;

    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_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
     
     );

    
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 ;

    
if  l_return_status  =  fnd_api.g_ret_sts_success
    
     
then
    
        dbms_output.put_line(
' Update is Sucess ' );
    
    
else
    
        dbms_output.put_line(
' Update is False ' );
    
    
end   if ;

exception

    
when  others  then
    
        
null ;
    
end ;

 

 

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值