Showing posts with label Oracle Order Management. Show all posts
Showing posts with label Oracle Order Management. Show all posts

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 

Thursday, 16 July 2015

Creating Sales Order in Booked Status Using API


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_FALSE;
   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);
   x_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_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_line_tbl_index               NUMBER;
   l_msg_index_out                NUMBER (10);
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' ) ;
   --oe_debug_pub.SetDebugLevel ( 5 ) ; -- Use 5 for the most debuging output, I warn you its a lot of data
   DBMS_OUTPUT.put_line ('START OF NEW DEBUG');
   --This is to CREATE an order header and an order line
   --Create Header record
   --Initialize header record to missing
   l_header_rec := OE_ORDER_PUB.G_MISS_HEADER_REC;
   l_header_rec.TRANSACTIONAL_CURR_CODE := 'USD';
   l_header_rec.pricing_date := SYSDATE;
   l_header_rec.cust_po_number := 'BookTestAPI';
   l_header_rec.sold_to_org_id := 5371;
   l_header_rec.price_list_id := 1000;
   l_header_rec.ordered_date := SYSDATE;
   l_header_rec.shipping_method_code := 'DHL';
   l_header_rec.sold_from_org_id := 204;
   l_header_rec.ship_from_org_id := 204;
   l_header_rec.salesrep_id := 1001;
   l_header_rec.order_type_id := 1000;
   l_header_rec.operation := OE_GLOBALS.G_OPR_CREATE;
   l_line_tbl_index := 1;
   -- FIRST LINE RECORD
   -- Initialize record to missing
   l_line_tbl (l_line_tbl_index) := OE_ORDER_PUB.G_MISS_LINE_REC;
   -- Line attributes
   l_line_tbl (l_line_tbl_index).inventory_item_id := 230955;
   l_line_tbl (l_line_tbl_index).ordered_quantity := 2;
   l_line_tbl (l_line_tbl_index).ship_from_org_id := 204;
   l_line_tbl (l_line_tbl_index).unit_selling_price := 101;
   l_line_tbl (l_line_tbl_index).unit_list_price := 101;
   --l_line_tbl ( l_line_tbl_index ) .subinventory      := 'FGI';
   l_line_tbl (l_line_tbl_index).calculate_price_flag := 'Y';
   l_line_tbl (l_line_tbl_index).operation := OE_GLOBALS.G_OPR_CREATE;
   l_line_tbl_index := 1;
   l_action_request_tbl (l_line_tbl_index).request_type :=
      oe_globals.g_book_order;
   l_action_request_tbl (l_line_tbl_index).entity_code :=
      oe_globals.g_entity_header;
   -- l_action_request_tbl(l_line_tbl_index).entity_id := 190383;
   -- CALL TO PROCESS ORDER Check the return status and then commit.
   OE_ORDER_PUB.process_order (
      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                 => p_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 ) ;
   DBMS_OUTPUT.put_line ('Header_ID : ' || x_header_rec.header_id);

   -- 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);
   END LOOP;

   -- Check the return status
   IF l_return_status = FND_API.G_RET_STS_SUCCESS
   THEN
      DBMS_OUTPUT.put_line ('Process Order Sucess');
   ELSE
      DBMS_OUTPUT.put_line ('Failed');
   END IF;
EXCEPTION
   WHEN OTHERS
   THEN
      DBMS_OUTPUT.put_line ('Error: ' || SQLERRM);

END;