码迷,mamicode.com
首页 > Windows程序 > 详细

使用API进行销售订单的Pick Release和Pick Confirm

时间:2015-06-18 15:22:06      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:oracle   ebs   api   测试demo   

DECLARE

  x_return_status      VARCHAR2(2);
  x_msg_count          NUMBER;
  x_msg_data           VARCHAR2(2000);
  p_api_version_number NUMBER := 1.0;
  init_msg_list        VARCHAR2(200);
  x_msg_details        VARCHAR2(3000);
  x_msg_summary        VARCHAR2(3000);
  p_line_rows          wsh_util_core.id_tab_type;
  x_del_rows           wsh_util_core.id_tab_type;
  l_ship_method_code   VARCHAR2(100);
  i                    NUMBER;
  l_commit             VARCHAR2(30);
  p_delivery_id        NUMBER;
  p_delivery_name      VARCHAR2(30);
  x_trip_id            VARCHAR2(30);
  x_trip_name          VARCHAR2(30);
  exep_api EXCEPTION;
  l_picked_flag   VARCHAR2(10);
  l_return_status VARCHAR2(1000);
  l_msg_count     NUMBER;
  l_msg_data      VARCHAR2(1000);
  l_user_id       NUMBER;
  l_resp_id       NUMBER;
  l_appl_id       NUMBER;

  CURSOR c_ord_details IS
  
    SELECT oha.order_number sales_order
          ,oha.org_id
          ,ola.line_number
          ,ola.shipment_number
          ,ola.flow_status_code
          ,wdd.delivery_detail_id
          ,wdd.inv_interfaced_flag
          ,wdd.oe_interfaced_flag
          ,wdd.released_status
      FROM apps.oe_order_headers_all oha
          ,apps.oe_order_lines_all   ola
          ,apps.wsh_delivery_details wdd
     WHERE oha.header_id = ola.header_id
       AND oha.org_id = ola.org_id
       AND oha.header_id = wdd.source_header_id
       AND ola.line_id = wdd.source_line_id
       AND oha.booked_flag = 'Y'
       AND nvl(ola.cancelled_flag, 'N') <> 'Y'
       AND wdd.released_status IN ('R', 'B')
       AND ola.flow_status_code = 'AWAITING_SHIPPING'
       AND oha.order_number = 1506764261
       AND oha.org_id = 121;
  --
  v_user_id      NUMBER;
  v_resp_id      NUMBER;
  v_resp_appl_id NUMBER;
  --    

BEGIN

  --
  /* To get the user id details */
  SELECT user_id INTO v_user_id FROM fnd_user WHERE user_name = 'SETUP01';

  /* To get the responsibility and responsibility application id */
  SELECT f.responsibility_id, f.application_id
    INTO v_resp_id, v_resp_appl_id
    FROM fnd_responsibility_tl f
   WHERE f.responsibility_name = '受注管理スーパーユーザー(SC)'
     AND f.language = 'JA';

  dbms_output.put_line(v_user_id || ' ' || v_resp_id || ' ' ||
                       v_resp_appl_id);
  --
  dbms_output.put_line('Starting of script');
  -- Setting the Enviroment --
  fnd_global.apps_initialize(user_id      => v_user_id,
                             resp_id      => v_resp_id,
                             resp_appl_id => v_resp_appl_id);
  --

  x_return_status := wsh_util_core.g_ret_sts_success;
  i               := 0;

  FOR i IN c_ord_details
  
   LOOP
  
    -- Mandatory initialization for R12
    mo_global.set_policy_context('S', i.org_id);
    mo_global.init('ONT');
  
    p_line_rows(1) := i.delivery_detail_id;
  
    -- API Call for Auto Create Deliveries
  
    dbms_output.put_line('Calling WSH_DELIVERY_DETAILS_PUB to Perform AutoCreate Delivery');
    dbms_output.put_line('====================================================');
  
    wsh_delivery_details_pub.autocreate_deliveries(p_api_version_number => 1.0,
                                                   p_init_msg_list      => apps.fnd_api.g_true,
                                                   p_commit             => l_commit,
                                                   x_return_status      => x_return_status,
                                                   x_msg_count          => x_msg_count,
                                                   x_msg_data           => x_msg_data,
                                                   p_line_rows          => p_line_rows,
                                                   x_del_rows           => x_del_rows);
  
    dbms_output.put_line(x_return_status);
    dbms_output.put_line(x_msg_count);
    dbms_output.put_line(x_msg_data);
  
    IF (x_return_status <> wsh_util_core.g_ret_sts_success) THEN
    
      dbms_output.put_line('Failed to Auto create delivery for Sales Order');
      RAISE exep_api;
    
    ELSE
    
      dbms_output.put_line('Auto Create Delivery Action has successfully completed for SO');
      dbms_output.put_line('=============================================');
    END IF;
  
    -- Pick release.
    p_delivery_id   := x_del_rows(1);
    p_delivery_name := to_char(x_del_rows(1));
  
    dbms_output.put_line('Calling WSH_DELIVERIS_PUB to Perform Pick Release of SO');
    dbms_output.put_line('=============================================');
    -- API Call for Pick Release
  
    wsh_deliveries_pub.delivery_action(p_api_version_number      => 1.0,
                                       p_init_msg_list           => NULL,
                                       x_return_status           => x_return_status,
                                       x_msg_count               => x_msg_count,
                                       x_msg_data                => x_msg_data,
                                       p_action_code             => 'PICK-RELEASE',
                                       p_delivery_id             => p_delivery_id,
                                       p_delivery_name           => p_delivery_name,
                                       p_asg_trip_id             => NULL,
                                       p_asg_trip_name           => NULL,
                                       p_asg_pickup_stop_id      => NULL,
                                       p_asg_pickup_loc_id       => NULL,
                                       p_asg_pickup_stop_seq     => NULL,
                                       p_asg_pickup_loc_code     => NULL,
                                       p_asg_pickup_arr_date     => NULL,
                                       p_asg_pickup_dep_date     => NULL,
                                       p_asg_dropoff_stop_id     => NULL,
                                       p_asg_dropoff_loc_id      => NULL,
                                       p_asg_dropoff_stop_seq    => NULL,
                                       p_asg_dropoff_loc_code    => NULL,
                                       p_asg_dropoff_arr_date    => NULL,
                                       p_asg_dropoff_dep_date    => NULL,
                                       p_sc_action_flag          => 'S',
                                       p_sc_intransit_flag       => 'N',
                                       p_sc_close_trip_flag      => 'N',
                                       p_sc_create_bol_flag      => 'N',
                                       p_sc_stage_del_flag       => 'Y',
                                       p_sc_trip_ship_method     => NULL,
                                       p_sc_actual_dep_date      => NULL,
                                       p_sc_report_set_id        => NULL,
                                       p_sc_report_set_name      => NULL,
                                       p_sc_defer_interface_flag => 'Y',
                                       p_sc_send_945_flag        => NULL,
                                       p_sc_rule_id              => NULL,
                                       p_sc_rule_name            => NULL,
                                       p_wv_override_flag        => 'N',
                                       x_trip_id                 => x_trip_id,
                                       x_trip_name               => x_trip_name);
  
    dbms_output.put_line(x_return_status);
    dbms_output.put_line(x_msg_count);
    dbms_output.put_line(x_msg_data);
  
    IF (x_return_status <> wsh_util_core.g_ret_sts_success) THEN
    
      dbms_output.put_line('Failed to Pick Release the sales order');
      RAISE exep_api;
    
    ELSE
    
      dbms_output.put_line('Sales Order has successfully Pick Released');
      dbms_output.put_line('==============================');
    
    END IF;
  
    --for pick confirm
    --COMMIT;
  
  END LOOP;

EXCEPTION

  WHEN exep_api THEN
  
    dbms_output.put_line('==============');
    dbms_output.put_line('Error Details If Any');
    dbms_output.put_line('==============');
  
    wsh_util_core.get_messages('Y',
                               x_msg_summary,
                               x_msg_details,
                               x_msg_count);
  
    IF x_msg_count > 1 THEN
    
      x_msg_data := x_msg_summary || '---' || x_msg_details;
      dbms_output.put_line(x_msg_data);
    
    ELSE
    
      x_msg_data := x_msg_summary || '---' || x_msg_details;
      dbms_output.put_line(x_msg_data);
    
    END IF;
  
END;

使用API进行销售订单的Pick Release和Pick Confirm

标签:oracle   ebs   api   测试demo   

原文地址:http://blog.csdn.net/chosen1brain/article/details/46547883

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!