Backorder from “Ship Confirm”Action API

Example供大家參考

適用於有Assign Delivery Number的資料

/* Formatted on 2010/01/12 14:07 (Formatter Plus v4.8.8) */
DECLARE
----------------------------------------------------------------------------------------
-- procedure SHIP_CONFIRM_EXAMPLE(
----------------------------------------------------------------------------------------
   x_return_status          VARCHAR2 (200);
   x_msg_count              NUMBER;
   x_msg_data               VARCHAR2 (2000);
----------------------------------------------------------------------------------------
-- Standard Parameters.
----------------------------------------------------------------------------------------
   p_api_version_number     NUMBER;
   init_msg_list            VARCHAR2 (30);
   x_msg_details            VARCHAR2 (3000);
   x_msg_summary            VARCHAR2 (3000);
   p_validation_level       NUMBER;
   p_commit                 VARCHAR2 (30);
----------------------------------------------------------------------------------------
-- Parameters for WSH_DELIVERIES_PUB.Delivery_Action.
----------------------------------------------------------------------------------------
   p_action_code            VARCHAR2 (15);
   p_delivery_id            NUMBER;
   p_delivery_name          VARCHAR2 (30);
   p_asg_trip_id            NUMBER;
   p_asg_trip_name          VARCHAR2 (30);
   p_asg_pickup_stop_id     NUMBER;
   p_asg_pickup_loc_id      NUMBER;
   p_asg_pickup_loc_code    VARCHAR2 (30);
   p_asg_pickup_arr_date    DATE;
   p_asg_pickup_dep_date    DATE;
   p_asg_dropoff_stop_id    NUMBER;
   p_asg_dropoff_loc_id     NUMBER;
   p_asg_dropoff_loc_code   VARCHAR2 (30);
   p_asg_dropoff_arr_date   DATE;
   p_asg_dropoff_dep_date   DATE;
   p_sc_action_flag         VARCHAR2 (10);
   p_sc_close_trip_flag     VARCHAR2 (10);
   p_sc_create_bol_flag     VARCHAR2 (10);
   p_sc_stage_del_flag      VARCHAR2 (10);
   p_sc_trip_ship_method    VARCHAR2 (30);
   p_sc_actual_dep_date     VARCHAR2 (30);
   p_sc_report_set_id       NUMBER;
   p_sc_report_set_name     VARCHAR2 (60);
   p_wv_override_flag       VARCHAR2 (10);
   x_trip_id                VARCHAR2 (30);
   x_trip_name              VARCHAR2 (30);
----------------------------------------------------------------------------------------
   --Parameters for WSH_DELIVERY_DETAILS_PUB.Update_Shipping_Attributes.
----------------------------------------------------------------------------------------
   source_code              VARCHAR2 (15);
----------------------------------------------------------------------------------------
/*Handle exceptions*/
----------------------------------------------------------------------------------------
   fail_api                 EXCEPTION;
----------------------------------------------------------------------------------------
/*User information*/
----------------------------------------------------------------------------------------
   p_user_id                fnd_user.user_id%TYPE;
   p_resp_id                NUMBER;

   CURSOR cur
   IS
      SELECT DISTINCT wnd.delivery_id, wnd.NAME
                 FROM wsh_new_deliveries wnd,
                      wsh_delivery_assignments wda,
                      wsh_delivery_details wdd
                WHERE wda.delivery_id = wnd.delivery_id
                  AND wdd.delivery_detail_id = wda.delivery_detail_id
                  AND wdd.source_code = 'OE'
                  AND subinventory = 'STAGE'
                  AND wdd.released_status = 'Y'
                  AND wdd.organization_id = 93
             ORDER BY wnd.delivery_id;
BEGIN
   SELECT user_id
     INTO p_user_id
     FROM fnd_user
    WHERE user_name = 'TINALEE';

   SELECT responsibility_id
     INTO p_resp_id
     FROM fnd_responsibility_tl
    WHERE LANGUAGE = 'US' AND responsibility_name = 'HKG ORDER MANAGEMENT SU';

/* Initialize return status*/
   x_return_status := wsh_util_core.g_ret_sts_success;
   DBMS_OUTPUT.put_line ('submit');
      /* Call this procedure to initialize applications parameters. To determine
   parameter values, refer to the Application Paramater Initialization section of
   this chapter. */
   fnd_global.apps_initialize (user_id           => p_user_id,
                               resp_id           => p_resp_id,
                               resp_appl_id      => 660
                              );
   /* Values for updating delivery details to ship the partial qty.*/
   source_code := 'OE'; -- The only source code that should be used by the API
   /* Values for Ship Confirming the delivery.*/
   p_action_code := 'CONFIRM';             -- The action code for ship confirm

   FOR rec IN cur
   LOOP
      p_sc_action_flag := 'C';                                 -- Backorder='
      p_sc_close_trip_flag := 'Y';
      p_delivery_id := rec.delivery_id;
                                   -- The delivery that needs to be confirmed
      p_delivery_name := rec.NAME;                      -- The delivery name,
      DBMS_OUTPUT.put_line (' Delivery Number=' || p_delivery_name);
      wsh_deliveries_pub.delivery_action
                           (p_api_version_number        => 1.0,
                            p_init_msg_list             => init_msg_list,
                            x_return_status             => x_return_status,
                            x_msg_count                 => x_msg_count,
                            x_msg_data                  => x_msg_data,
                            p_action_code               => p_action_code,
                            p_delivery_id               => p_delivery_id,
                            p_delivery_name             => p_delivery_name,
                            p_asg_trip_id               => p_asg_trip_id,
                            p_asg_trip_name             => p_asg_trip_name,
                            p_asg_pickup_stop_id        => p_asg_pickup_stop_id,
                            p_asg_pickup_loc_id         => p_asg_pickup_loc_id,
                            p_asg_pickup_loc_code       => p_asg_pickup_loc_code,
                            p_asg_pickup_arr_date       => p_asg_pickup_arr_date,
                            p_asg_pickup_dep_date       => p_asg_pickup_dep_date,
                            p_asg_dropoff_stop_id       => p_asg_dropoff_stop_id,
                            p_asg_dropoff_loc_id        => p_asg_dropoff_loc_id,
                            p_asg_dropoff_loc_code      => p_asg_dropoff_loc_code,
                            p_asg_dropoff_arr_date      => p_asg_dropoff_arr_date,
                            p_asg_dropoff_dep_date      => p_asg_dropoff_dep_date,
                            p_sc_action_flag            => p_sc_action_flag,
                            p_sc_close_trip_flag        => p_sc_close_trip_flag,
                            p_sc_create_bol_flag        => p_sc_create_bol_flag,
                            p_sc_stage_del_flag         => p_sc_stage_del_flag,
                            p_sc_trip_ship_method       => p_sc_trip_ship_method,
                            p_sc_actual_dep_date        => p_sc_actual_dep_date,
                            p_sc_report_set_id          => p_sc_report_set_id,
                            p_sc_report_set_name        => p_sc_report_set_name,
                            p_wv_override_flag          => p_wv_override_flag,
                            x_trip_id                   => x_trip_id,
                            x_trip_name                 => x_trip_name
                           );

      IF (x_return_status <> wsh_util_core.g_ret_sts_success)
      THEN
         DBMS_OUTPUT.put_line (' ** Fail **');
         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;
            DBMS_OUTPUT.put_line ('  - ' || x_msg_data);
         END IF;
      END IF;

      DBMS_OUTPUT.put_line (' Successful');
      COMMIT;
   END LOOP;
EXCEPTION
   WHEN OTHERS
   THEN
      DBMS_OUTPUT.put_line (SQLERRM);
END;

arrow
arrow
    全站熱搜

    Somebaby 發表在 痞客邦 留言(2) 人氣()