使用API進行銷售訂單的Pick Release和Pick Confirm,pickconfirm

來源:互聯網
上載者:User

使用API進行銷售訂單的Pick Release和Pick Confirm,pickconfirm

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;

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.