: Change values as per your requirement also ON DBMS Output window to see DBMS Output message.)
DECLARE  
  l_api_version_number NUMBER := 1;  
  l_return_status      VARCHAR2(2000);  
  l_msg_count          NUMBER;  
  l_msg_data           VARCHAR2(2000);  
  -- PARAMETERS  
  l_debug_level NUMBER := 5;   -- OM DEBUG LEVEL (MAX 5)  
  l_org         NUMBER := 194; -- OPERATING UNIT  
  l_no_orders   NUMBER := 1;   -- NO OF ORDERS  
  -- INPUT VARIABLES FOR PROCESS_ORDER API  
  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;  
  -- OUT VARIABLES FOR PROCESS_ORDER API  
  l_header_rec_out oe_order_pub.header_rec_type;  
  l_header_val_rec_out oe_order_pub.header_val_rec_type;  
  l_header_adj_tbl_out oe_order_pub.header_adj_tbl_type;  
  l_header_adj_val_tbl_out oe_order_pub.header_adj_val_tbl_type;  
  l_header_price_att_tbl_out oe_order_pub.header_price_att_tbl_type;  
  l_header_adj_att_tbl_out oe_order_pub.header_adj_att_tbl_type;  
  l_header_adj_assoc_tbl_out oe_order_pub.header_adj_assoc_tbl_type;  
  l_header_scredit_tbl_out oe_order_pub.header_scredit_tbl_type;  
  l_header_scredit_val_tbl_out oe_order_pub.header_scredit_val_tbl_type;  
  l_line_tbl_out oe_order_pub.line_tbl_type;  
  l_line_val_tbl_out oe_order_pub.line_val_tbl_type;  
  l_line_adj_tbl_out oe_order_pub.line_adj_tbl_type;  
  l_line_adj_val_tbl_out oe_order_pub.line_adj_val_tbl_type;  
  l_line_price_att_tbl_out oe_order_pub.line_price_att_tbl_type;  
  l_line_adj_att_tbl_out oe_order_pub.line_adj_att_tbl_type;  
  l_line_adj_assoc_tbl_out oe_order_pub.line_adj_assoc_tbl_type;  
  l_line_scredit_tbl_out oe_order_pub.line_scredit_tbl_type;  
  l_line_scredit_val_tbl_out oe_order_pub.line_scredit_val_tbl_type;  
  l_lot_serial_tbl_out oe_order_pub.lot_serial_tbl_type;  
  l_lot_serial_val_tbl_out oe_order_pub.lot_serial_val_tbl_type;  
  l_action_request_tbl_out oe_order_pub.request_tbl_type; 
  lt_line_adj_tbl      OE_ORDER_PUB.Line_Adj_Tbl_Type;  
  l_msg_index  NUMBER;  
  l_data       VARCHAR2(2000);  
  l_loop_count NUMBER;  
  l_debug_file VARCHAR2(200);  
BEGIN  
  -- INITIALIZATION REQUIRED FOR R12  
  mo_global.set_policy_context ('S', l_org);  
  mo_global.init('ONT');  
  -- INITIALIZE DEBUG INFO  
  IF (l_debug_level > 0) THEN  
    l_debug_file   := OE_DEBUG_PUB.Set_Debug_Mode('FILE');  
    oe_debug_pub.initialize;  
    oe_debug_pub.setdebuglevel(l_debug_level);  
    Oe_Msg_Pub.initialize;  
  END IF;  
  -- INITIALIZE ENVIRONMENT  
  fnd_global.apps_initialize (user_id => 2106, resp_id => 50663, resp_appl_id => 660);  
  -- INITIALIZE HEADER RECORD  
  l_header_rec := OE_ORDER_PUB.G_MISS_HEADER_REC;  
  -- POPULATE REQUIRED ATTRIBUTES  
  l_header_rec.operation               := OE_GLOBALS.G_OPR_UPDATE;
 l_header_rec.header_id     := 71477;
   
    -- Indexation Applicability  
  -- INITIALIZE ACTION REQUEST RECORD  
  l_action_request_tbl(1)     := OE_ORDER_PUB.G_MISS_REQUEST_REC;
  l_action_request_tbl(1).request_type := oe_globals.g_book_order;
  l_action_request_tbl(1).entity_code  := oe_globals.g_entity_header;
  -- INITIALIZE LINE RECORD  
  l_line_tbl(1)                   := OE_ORDER_PUB.G_MISS_LINE_REC;  
  l_line_tbl(1).operation         := OE_GLOBALS.G_OPR_UPDATE; -- Mandatory Operation to Pass 
  l_line_tbl(1).line_id   := 240148;
  -- INITIALIZE PRICE ADJUSTMENT RECORD
  lt_line_adj_tbl(1)                     := OE_ORDER_PUB.G_MISS_LINE_ADJ_REC;
  lt_line_adj_tbl(1).operation           := OE_GLOBALS.G_OPR_CREATE;
  lt_line_adj_tbl(1).applied_flag        := 'Y';  
  lt_line_adj_tbl(1).line_index          := 1;
  lt_line_adj_tbl(1).list_header_id      := 6007;  -- Need To change as per business requirement
  lt_line_adj_tbl(1).list_line_id        := 6007;  -- Need To change as per business requirement  
  lt_line_adj_tbl(1).header_id       := 71477;
  lt_line_adj_tbl(1).line_id           := 240148;
  lt_line_adj_tbl(1).updated_flag        := 'Y';  
  lt_line_adj_tbl(1).automatic_flag      := 'Y'; 
  lt_line_adj_tbl(1).operand             := 20; 
  lt_line_adj_tbl(1).arithmetic_operator  := 'AMT';
    
  FOR i IN 1..l_no_orders  
  LOOP -- BEGIN LOOP  
    -- CALLTO PROCESS ORDER API  
    oe_order_pub.process_order( p_org_id => l_org, 
                                p_operating_unit => NULL, 
                                p_api_version_number => l_api_version_number, 
                                p_header_rec => l_header_rec, 
                                p_line_tbl => l_line_tbl, 
                                p_action_request_tbl => l_action_request_tbl, 
        p_line_adj_tbl => lt_line_adj_tbl,        
        -- OUT variables  
                                x_header_rec => l_header_rec_out, 
                                x_header_val_rec => l_header_val_rec_out, 
                                x_header_adj_tbl => l_header_adj_tbl_out, 
                                x_header_adj_val_tbl => l_header_adj_val_tbl_out, 
                                x_header_price_att_tbl => l_header_price_att_tbl_out, 
                                x_header_adj_att_tbl => l_header_adj_att_tbl_out, 
                                x_header_adj_assoc_tbl => l_header_adj_assoc_tbl_out, 
                                x_header_scredit_tbl => l_header_scredit_tbl_out, 
                                x_header_scredit_val_tbl => l_header_scredit_val_tbl_out, 
                                x_line_tbl => l_line_tbl_out, 
                                x_line_val_tbl => l_line_val_tbl_out, 
                                x_line_adj_tbl => l_line_adj_tbl_out, 
                                x_line_adj_val_tbl => l_line_adj_val_tbl_out, 
                                x_line_price_att_tbl => l_line_price_att_tbl_out, 
                                x_line_adj_att_tbl => l_line_adj_att_tbl_out, 
                                x_line_adj_assoc_tbl => l_line_adj_assoc_tbl_out, 
                                x_line_scredit_tbl => l_line_scredit_tbl_out, 
                                x_line_scredit_val_tbl => l_line_scredit_val_tbl_out, 
                                x_lot_serial_tbl => l_lot_serial_tbl_out, 
                                x_lot_serial_val_tbl => l_lot_serial_val_tbl_out, 
                                x_action_request_tbl => l_action_request_tbl_out, 
                                x_return_status =>  l_return_status, 
                                x_msg_count => l_msg_count, 
                                x_msg_data => l_msg_data);  
    -- CHECK RETURN STATUS  
    IF l_return_status  = FND_API.G_RET_STS_SUCCESS THEN  
      IF (l_debug_level > 0) THEN  
        DBMS_OUTPUT.PUT_LINE('Sales Order Successfully Created');  
      END IF;  
      COMMIT;  
    ELSE  
      IF (l_debug_level > 0) THEN  
        DBMS_OUTPUT.PUT_LINE('Failed to Create Sales Order');  
      END IF;  
      ROLLBACK;  
    END IF;  
  END LOOP;   
  -- DISPLAY ERROR MSGS  
  IF (l_debug_level > 0) THEN  
    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_data ,p_msg_index_out => l_msg_index);  
      DBMS_OUTPUT.PUT_LINE('message is:' ||l_data);  
      DBMS_OUTPUT.PUT_LINE('message index is:' ||l_msg_index);  
    END LOOP;  
  END IF;     
END;