Friday 6 November 2015

iSupplier User Creation Script



DECLARE
   l_return_Status      VARCHAR2 (10);
   l_msg_count          NUMBER;
   l_msg_data           VARCHAR2 (1000);
   l_user_id            NUMBER;
   l_password           VARCHAR2 (100);
   l_resp_ids           po_tbl_number := po_tbl_number ();
   l_resp_app_ids       po_tbl_number := po_tbl_number ();
   l_sec_attr_numbers   po_tbl_number := po_tbl_number ();
   l_po_tbl_varchar30   po_tbl_varchar30 := po_tbl_varchar30 ();
BEGIN
   l_resp_ids.EXTEND;
   l_resp_app_ids.EXTEND;
   l_resp_ids (1) := 23075;
   l_resp_app_ids (1) := 177;
   l_po_tbl_varchar30.EXTEND;
   l_po_tbl_varchar30 (1) := 'ICX_SUPPLIER_ORG_ID';
   l_sec_attr_numbers.EXTEND;
   l_sec_attr_numbers (1) := '748046';
   pos_user_admin_pkg.create_supplier_user_account (
      p_user_name          => 'MYERPCIRCLES',
      p_user_email         => 'test123@erpcircles.com',
      p_person_party_id    => 4189720,
      p_resp_ids           => l_resp_ids,
      p_resp_app_ids       => l_resp_app_ids,
      p_sec_attr_codes     => l_po_tbl_varchar30,
      p_sec_attr_numbers   => l_sec_attr_numbers,
      p_password           => 'welcome',
      x_return_status      => l_return_Status,
      x_msg_count          => l_msg_count,
      x_msg_data           => l_msg_data,
      x_user_id            => l_user_id,
      x_password           => l_password);
   DBMS_OUTPUT.put_line (' User Id is : ' || l_user_id);
   DBMS_OUTPUT.put_line (' Message Count : ' || l_msg_count);
   DBMS_OUTPUT.put_line (' Message Data: ' || l_msg_data);
   DBMS_OUTPUT.put_line (' Return Status: ' || l_return_Status);
END;


COMMIT;

Thursday 8 October 2015

Order Management Interview Questions


1. What are the reasons for back order ?

 Ans:-

      Major Reason for back orders are:
  • Onhand not available
  • In case of any reservations against the available quantity
  • At the time or releasing source sub-inventory or locator are Active or not
  • Inventory periods
  • Item status active or inactive
  • Customer ship to site status
  • If lot controlled, check whether the lot is active or not also the expiration date is valid or not
  • Move order might be in pending status
      There may be other reasons those can be found by running Shipping Exception report 

Sunday 26 July 2015

Reset Fields in a OAF Page

Whenever we click on Cancel button in the page, all the fields should be resetted to blank (NULL).

1) Enter the sample text in the page fields as below:



2) Click Cancel



3) Code to be written in the controller process form request method, since it is a post action once the page is loaded.

4) Sample code as below:

  public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)
  {
    super.processFormRequest(pageContext, webBean);
       
    // All the user actions should be handled in the processFormRequest method.
    if (pageContext.getParameter("Cancel")!=null)
    {
      OAMessageTextInputBean OA = (OAMessageTextInputBean)webBean.findChildRecursive               ("WelcomeTxt"); // WelcomeTxt is the internal field name
      OA.setValue(pageContext,"");
      String message="Clear the input";
      throw new OAException(message,OAException.INFORMATION);
     }    
       
  }


Thursday 16 July 2015

Creating a Hold on Sales Order Header

DECLARE
   l_header_rec                   oe_order_pub.header_rec_type;
   l_line_tbl                     oe_order_pub.line_tbl_type;
   l_action_request_tbl           oe_order_pub.request_tbl_type;
   l_header_adj_tbl               oe_order_pub.header_adj_tbl_type;
   l_line_adj_tbl                 oe_order_pub.line_adj_tbl_type;
   l_header_scr_tbl               oe_order_pub.header_scredit_tbl_type;
   l_line_scredit_tbl             oe_order_pub.line_scredit_tbl_type;
   l_request_rec                  oe_order_pub.request_rec_type;
   l_return_status                VARCHAR2 (1000);
   l_msg_count                    NUMBER;
   l_msg_data                     VARCHAR2 (1000);
   p_api_version_number           NUMBER := 1.0;
   p_init_msg_list                VARCHAR2 (10) := fnd_api.g_true;
   p_return_values                VARCHAR2 (10) := fnd_api.g_false;
   p_action_commit                VARCHAR2 (10) := fnd_api.g_false;
   x_return_status                VARCHAR2 (1);
   x_msg_count                    NUMBER;
   x_msg_data                     VARCHAR2 (100);
   p_header_rec                   oe_order_pub.header_rec_type
                                     := oe_order_pub.g_miss_header_rec;
   p_old_header_rec               oe_order_pub.header_rec_type
                                     := oe_order_pub.g_miss_header_rec;
   p_header_val_rec               oe_order_pub.header_val_rec_type
                                     := oe_order_pub.g_miss_header_val_rec;
   p_old_header_val_rec           oe_order_pub.header_val_rec_type
                                     := oe_order_pub.g_miss_header_val_rec;
   p_header_adj_tbl               oe_order_pub.header_adj_tbl_type
                                     := oe_order_pub.g_miss_header_adj_tbl;
   p_old_header_adj_tbl           oe_order_pub.header_adj_tbl_type
                                     := oe_order_pub.g_miss_header_adj_tbl;
   p_header_adj_val_tbl           oe_order_pub.header_adj_val_tbl_type
                                     := oe_order_pub.g_miss_header_adj_val_tbl;
   p_old_header_adj_val_tbl       oe_order_pub.header_adj_val_tbl_type
                                     := oe_order_pub.g_miss_header_adj_val_tbl;
   p_header_price_att_tbl         oe_order_pub.header_price_att_tbl_type
                                     := oe_order_pub.g_miss_header_price_att_tbl;
   p_old_header_price_att_tbl     oe_order_pub.header_price_att_tbl_type
      := oe_order_pub.g_miss_header_price_att_tbl;
   p_header_adj_att_tbl           oe_order_pub.header_adj_att_tbl_type
                                     := oe_order_pub.g_miss_header_adj_att_tbl;
   p_old_header_adj_att_tbl       oe_order_pub.header_adj_att_tbl_type
                                     := oe_order_pub.g_miss_header_adj_att_tbl;
   p_header_adj_assoc_tbl         oe_order_pub.header_adj_assoc_tbl_type
      := oe_order_pub.g_miss_header_adj_assoc_tbl;
   p_old_header_adj_assoc_tbl     oe_order_pub.header_adj_assoc_tbl_type
      := oe_order_pub.g_miss_header_adj_assoc_tbl;
   p_header_scredit_tbl           oe_order_pub.header_scredit_tbl_type
                                     := oe_order_pub.g_miss_header_scredit_tbl;
   p_old_header_scredit_tbl       oe_order_pub.header_scredit_tbl_type
                                     := oe_order_pub.g_miss_header_scredit_tbl;
   p_header_scredit_val_tbl       oe_order_pub.header_scredit_val_tbl_type
      := oe_order_pub.g_miss_header_scredit_val_tbl;
   p_old_header_scredit_val_tbl   oe_order_pub.header_scredit_val_tbl_type
      := oe_order_pub.g_miss_header_scredit_val_tbl;
   p_line_tbl                     oe_order_pub.line_tbl_type
                                     := oe_order_pub.g_miss_line_tbl;
   p_old_line_tbl                 oe_order_pub.line_tbl_type
                                     := oe_order_pub.g_miss_line_tbl;
   p_line_val_tbl                 oe_order_pub.line_val_tbl_type
                                     := oe_order_pub.g_miss_line_val_tbl;
   p_old_line_val_tbl             oe_order_pub.line_val_tbl_type
                                     := oe_order_pub.g_miss_line_val_tbl;
   p_line_adj_tbl                 oe_order_pub.line_adj_tbl_type
                                     := oe_order_pub.g_miss_line_adj_tbl;
   p_old_line_adj_tbl             oe_order_pub.line_adj_tbl_type
                                     := oe_order_pub.g_miss_line_adj_tbl;
   p_line_adj_val_tbl             oe_order_pub.line_adj_val_tbl_type
                                     := oe_order_pub.g_miss_line_adj_val_tbl;
   p_old_line_adj_val_tbl         oe_order_pub.line_adj_val_tbl_type
                                     := oe_order_pub.g_miss_line_adj_val_tbl;
   p_line_price_att_tbl           oe_order_pub.line_price_att_tbl_type
      := oe_order_pub.g_miss_line_price_att_tbl;
   p_old_line_price_att_tbl       oe_order_pub.line_price_att_tbl_type
      := oe_order_pub.g_miss_line_price_att_tbl;
   p_line_adj_att_tbl             oe_order_pub.line_adj_att_tbl_type
                                     := oe_order_pub.g_miss_line_adj_att_tbl;
   p_old_line_adj_att_tbl         oe_order_pub.line_adj_att_tbl_type
                                     := oe_order_pub.g_miss_line_adj_att_tbl;
   p_line_adj_assoc_tbl           oe_order_pub.line_adj_assoc_tbl_type
      := oe_order_pub.g_miss_line_adj_assoc_tbl;
   p_old_line_adj_assoc_tbl       oe_order_pub.line_adj_assoc_tbl_type
      := oe_order_pub.g_miss_line_adj_assoc_tbl;
   p_line_scredit_tbl             oe_order_pub.line_scredit_tbl_type
                                     := oe_order_pub.g_miss_line_scredit_tbl;
   p_old_line_scredit_tbl         oe_order_pub.line_scredit_tbl_type
                                     := oe_order_pub.g_miss_line_scredit_tbl;
   p_line_scredit_val_tbl         oe_order_pub.line_scredit_val_tbl_type
      := oe_order_pub.g_miss_line_scredit_val_tbl;
   p_old_line_scredit_val_tbl     oe_order_pub.line_scredit_val_tbl_type
      := oe_order_pub.g_miss_line_scredit_val_tbl;
   p_lot_serial_tbl               oe_order_pub.lot_serial_tbl_type
                                     := oe_order_pub.g_miss_lot_serial_tbl;
   p_old_lot_serial_tbl           oe_order_pub.lot_serial_tbl_type
                                     := oe_order_pub.g_miss_lot_serial_tbl;
   p_lot_serial_val_tbl           oe_order_pub.lot_serial_val_tbl_type
      := oe_order_pub.g_miss_lot_serial_val_tbl;
   p_old_lot_serial_val_tbl       oe_order_pub.lot_serial_val_tbl_type
      := oe_order_pub.g_miss_lot_serial_val_tbl;
   p_action_request_tbl           oe_order_pub.request_tbl_type
                                     := oe_order_pub.g_miss_request_tbl;
   x_header_rec                   oe_order_pub.header_rec_type;
   x_header_val_rec               oe_order_pub.header_val_rec_type;
   x_header_adj_tbl               oe_order_pub.header_adj_tbl_type;
   x_header_adj_val_tbl           oe_order_pub.header_adj_val_tbl_type;
   x_header_price_att_tbl         oe_order_pub.header_price_att_tbl_type;
   x_header_adj_att_tbl           oe_order_pub.header_adj_att_tbl_type;
   x_header_adj_assoc_tbl         oe_order_pub.header_adj_assoc_tbl_type;
   x_header_scredit_tbl           oe_order_pub.header_scredit_tbl_type;
   x_header_scredit_val_tbl       oe_order_pub.header_scredit_val_tbl_type;
   x_line_val_tbl                 oe_order_pub.line_val_tbl_type;
   x_line_adj_tbl                 oe_order_pub.line_adj_tbl_type;
   x_line_adj_val_tbl             oe_order_pub.line_adj_val_tbl_type;
   x_line_price_att_tbl           oe_order_pub.line_price_att_tbl_type;
   x_line_adj_att_tbl             oe_order_pub.line_adj_att_tbl_type;
   x_line_adj_assoc_tbl           oe_order_pub.line_adj_assoc_tbl_type;
   x_line_scredit_tbl             oe_order_pub.line_scredit_tbl_type;
   x_line_scredit_val_tbl         oe_order_pub.line_scredit_val_tbl_type;
   x_lot_serial_tbl               oe_order_pub.lot_serial_tbl_type;
   x_lot_serial_val_tbl           oe_order_pub.lot_serial_val_tbl_type;
   x_action_request_tbl           oe_order_pub.request_tbl_type;
   x_debug_file                   VARCHAR2 (100);
   l_msg_index_out                NUMBER (10);
   l_org_id                       VARCHAR2 (1000);
BEGIN
   DBMS_OUTPUT.ENABLE (1000000);
   fnd_global.Apps_initialize (1318, 21623, 660);
   -- pass in user_id, responsibility_id, and application_id
   mo_global.Init ('ONT');                                 -- Required for R12
   mo_global.set_org_context (204, NULL, 'ONT');
   fnd_global.set_nls_context ('AMERICAN');
   MO_GLOBAL.SET_POLICY_CONTEXT ('S', 204);                -- Required for R12
   oe_msg_pub.initialize;
   oe_debug_pub.initialize;
   /*
    x_debug_file := oe_debug_pub.Set_debug_mode('FILE');

    User to Enable Debug Option
   oe_debug_pub.Setdebuglevel(5); -- Use 5 for the most debuging output

   oe_debug_pub.debug_on;

   dbms_output.Put_line('START OF NEW DEBUG');
   */
   l_header_rec := oe_order_pub.g_miss_header_rec;

   --This is to apply hold an order header
   l_request_rec.entity_id := 238413;

   l_request_rec.entity_code := oe_globals.g_entity_header;

   l_request_rec.request_type := oe_globals.g_apply_hold;

   -- hold_id must be passed
   l_request_rec.param1 := 1000;

   -- indicator that it is an order hold
   l_request_rec.param2 := 'O';

   -- Header ID of the order
   l_request_rec.param3 := 238413;

   l_request_rec.param4 := 'Hold';

   L_action_request_tbl (1) := l_request_rec;

   DBMS_OUTPUT.Put_line ('entity_id: ' || l_request_rec.entity_id);

   DBMS_OUTPUT.Put_line ('param3: ' || l_request_rec.param3);

   -- CALL TO PROCESS ORDER
   oe_order_pub.Process_order (
      p_org_id                   => 204,
      p_api_version_number       => 1.0,
      p_init_msg_list            => fnd_api.g_false,
      p_return_values            => fnd_api.g_false,
      p_action_commit            => fnd_api.g_false,
      x_return_status            => l_return_status,
      x_msg_count                => l_msg_count,
      x_msg_data                 => l_msg_data,
      p_header_rec               => l_header_rec-- , p_line_tbl          => l_line_tbl
      ,
      p_action_request_tbl       => l_action_request_tbl--OUT PARAMETERS
      ,
      x_header_rec               => x_header_rec,
      x_header_val_rec           => x_header_val_rec,
      x_header_adj_tbl           => x_header_adj_tbl,
      x_header_adj_val_tbl       => x_header_adj_val_tbl,
      x_header_price_att_tbl     => x_header_price_att_tbl,
      x_header_adj_att_tbl       => x_header_adj_att_tbl,
      x_header_adj_assoc_tbl     => x_header_adj_assoc_tbl,
      x_header_scredit_tbl       => x_header_scredit_tbl,
      x_header_scredit_val_tbl   => x_header_scredit_val_tbl,
      x_line_tbl                 => l_line_tbl,
      x_line_val_tbl             => x_line_val_tbl,
      x_line_adj_tbl             => x_line_adj_tbl,
      x_line_adj_val_tbl         => x_line_adj_val_tbl,
      x_line_price_att_tbl       => x_line_price_att_tbl,
      x_line_adj_att_tbl         => x_line_adj_att_tbl,
      x_line_adj_assoc_tbl       => x_line_adj_assoc_tbl,
      x_line_scredit_tbl         => x_line_scredit_tbl,
      x_line_scredit_val_tbl     => x_line_scredit_val_tbl,
      x_lot_serial_tbl           => x_lot_serial_tbl,
      x_lot_serial_val_tbl       => x_lot_serial_val_tbl,
      x_action_request_tbl       => x_action_request_tbl);

   --dbms_output.Put_line('OM Debug file: ' ||oe_debug_pub.g_dir ||'/' ||oe_debug_pub.g_file);

   -- Retrieve messages
   FOR i IN 1 .. l_msg_count
   LOOP
      oe_msg_pub.Get (p_msg_index       => i,
                      p_encoded         => fnd_api.g_false,
                      p_data            => l_msg_data,
                      p_msg_index_out   => l_msg_index_out);

      DBMS_OUTPUT.Put_line ('message is: ' || l_msg_data);

      DBMS_OUTPUT.Put_line ('message index is: ' || l_msg_index_out);

      DBMS_OUTPUT.Put_line ('l_return_status is: ' || l_return_status);
   END LOOP;

   DBMS_OUTPUT.Put_line ('message is: ' || l_msg_data);

   DBMS_OUTPUT.Put_line ('message index is: ' || l_msg_index_out);

   DBMS_OUTPUT.Put_line ('l_return_status is: ' || l_return_status);

   -- Check the return status
   IF l_return_status = fnd_api.g_ret_sts_success
   THEN
      DBMS_OUTPUT.Put_line ('Process Order Success');
   ELSE
      DBMS_OUTPUT.Put_line ('Failed');
   END IF;
END;
/


COMMIT;


For Releasing Hold :

   l_request_rec.request_type := OE_GLOBALS.G_RELEASE_HOLD;

   l_request_rec.param4 := 'OM_APPROVE';


   l_request_rec.param5 := 'Release Hold Through API';