Friday, 10 May 2013

Script for Autocreate delivery no through API for released to warehouse lines



DECLARE
   --  v_counter             NUMBER;
   l_organization_id     NUMBER;
   l_organization_code   VARCHAR2 (10);



   l_return_statuss      VARCHAR2 (2);



   X_RETURN_STATUS       VARCHAR2 (10);
   X_MSG_COUNT           NUMBER;
   X_MSG_DATA            VARCHAR2 (4000);

   L_REQUEST_ID          fnd_concurrent_requests.request_id%TYPE;
   l_status_code         fnd_concurrent_requests.status_code%TYPE := '~';

   x_del_rows            wsh_util_core.id_tab_type;
   x_line_rows           wsh_util_core.id_tab_type;
   v_counter             NUMBER;

   l_debug_level         NUMBER := 0;                -- OM DEBUG LEVEL (MAX 5)
   l_return_status       VARCHAR2 (100);
   l_msg_count           NUMBER;
   l_msg_data            VARCHAR2 (1000);
   l_del_rows            NUMBER;
   l_user_id             NUMBER;
   l_trip_id             NUMBER;
   m_return_status       VARCHAR2 (1000);
   m_msg_count           NUMBER;
   m_msg_data            VARCHAR2 (1000);
   l_batch_id            NUMBER;
   l_batch_rec           wsh_picking_batches_pub.batch_info_rec;
   x_request_id          NUMBER;

   CURSOR cur_del
   IS
        SELECT   delivery_detail_id, organization_id
          FROM   wsh_delivery_details ws
         WHERE       organization_id = 17 --  org_id
                 AND released_status = 'S'
                 AND customer_id =  5346 -- customer id
                 AND NOT EXISTS
                       (SELECT   delivery_detail_id
                          FROM   wsh_delivery_assignments
                         WHERE   delivery_detail_id = ws.delivery_detail_id
                                 AND delivery_id IS NOT NULL)
      ORDER BY   customer_id;
BEGIN
   mo_global.init ('ONT');
   FND_GLOBAL.APPS_INITIALIZE (FND_PROFILE.VALUE ('USER_ID'),
                               FND_PROFILE.VALUE ('RESP_ID'),
                               FND_PROFILE.VALUE ('RESP_APPL_ID'),
                               NULL,
                               NULL);


   BEGIN
      v_counter := 0;

      FOR r_delivery IN cur_del
      LOOP
         v_counter := v_counter + 1;
         l_organization_id := r_delivery.organization_id;
         x_line_rows (v_counter) := r_delivery.delivery_detail_id;
      END LOOP;

      IF x_line_rows.COUNT > 0
      THEN
         wsh_delivery_details_pub.autocreate_deliveries (
            p_api_version_number   => 1.0,
            p_init_msg_list        => fnd_api.g_true,
            p_commit               => fnd_api.g_true,
            x_return_status        => x_return_status,
            x_msg_count            => x_msg_count,
            x_msg_data             => x_msg_data,
            p_line_rows            => x_line_rows,
            x_del_rows             => x_del_rows
         );

         IF (x_return_status <> wsh_util_core.g_ret_sts_success)
         THEN
            --fnd_file.PUT_LINE (fnd_file.OUTPUT, 'Failure');
            DBMS_OUTPUT.put_line ('Failure  ' || SQLERRM || SQLCODE);
            NULL;
         ELSE
            COMMIT;
            --               fnd_file.PUT_LINE (fnd_file.OUTPUT, 'Success');

            DBMS_OUTPUT.put_line ('Sucess  ');
            DBMS_OUTPUT.put_line (x_del_rows (1));
            l_del_rows := x_del_rows (1);
            COMMIT;
         --retcode := 0;
         END IF;
      END IF;
   END;
END;

No comments:

Post a Comment