zoukankan      html  css  js  c++  java
  • 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;

     

             

                成长

           /      |     \

        学习   总结   分享

    QQ交流群:122230156

  • 相关阅读:
    Elasticsearch常用插件集合(转)
    istio 安装与bookinfo示例运行(转)
    kubernetes发布tomcat服务,通过deployment,service布署(转)
    记一次ceph集群的严重故障 (转)
    Linux centos 7 安装NFS服务
    Centos7下使用Ceph-deploy快速部署Ceph分布式存储-操作记录(转)
    docker 安装 jmeter
    idea 2018.1破解激活方法,有效期至2099年
    MySQL和Oracle的区别
    SpringCloud面试题
  • 原文地址:https://www.cnblogs.com/benio/p/1926012.html
Copyright © 2011-2022 走看看