Fazer backorder de várias linhas via API

Nesse post irei deixar uma API para fazer backorder em alto volume.

DECLARE
   l_return_status        VARCHAR2 (100);
   l_msg_count            NUMBER;
   l_msg_data             VARCHAR2 (2000);
   l_msg_index            NUMBER;
   l_user_id              NUMBER;
   l_resp_id              NUMBER;
   l_appl_id              NUMBER;
   l_org_id               NUMBER := &org_id;
   l_move_order_line_id   NUMBER := &mo_line_id;
BEGIN
   SELECT user_id
     INTO l_user_id
     FROM fnd_user
    WHERE user_name = 'PRAWILNSON';

   SELECT responsibility_id, application_id
     INTO l_resp_id, l_appl_id
     FROM fnd_responsibility_vl
    WHERE responsibility_name = 'Order Management Super User';

   FND_GLOBAL.apps_initialize (l_user_id, l_resp_id, l_appl_id);
   MO_GLOBAL.set_policy_context ('S', l_org_id);
   MO_GLOBAL.init;

   DBMS_OUTPUT.put_line ('Calling INV_MO_BACKORDER_PVT to Backorder MO');
   DBMS_OUTPUT.put_line ('===============================');

   inv_mo_backorder_pvt.backorder (p_line_id         => l_move_order_line_id,
                                   x_return_status   => l_return_status,
                                   x_msg_count       => l_msg_count,
                                   x_msg_data        => l_msg_data);

   DBMS_OUTPUT.put_line ('Return Status is : ' || l_return_status);

   IF l_return_status = fnd_api.g_ret_sts_success
   THEN
      DBMS_OUTPUT.put_line ('Successfully BackOrdered the Move Order Line');
      COMMIT;
   ELSE
      DBMS_OUTPUT.put_line (
         'Could not able to Back Order Line Due to Following Reasons');
      ROLLBACK;

      FOR j IN 1 .. l_msg_count
      LOOP
         FND_MSG_PUB.get (p_msg_index       => j,
                          p_encoded         => fnd_api.g_false,
                          p_data            => l_msg_data,
                          p_msg_index_out   => l_msg_index);

         DBMS_OUTPUT.put_line ('Error Message is : ' || l_msg_data);
      END LOOP;
   END IF;
END;

Essa API pode auxiliar a resolver vários problemas com integração e muitos dados.

Deixe uma resposta

Powered by WordPress.com. Tema: Baskerville 2 por Anders Noren

Acima ↑

%d blogueiros gostam disto: