API-MoveOrder-How To Create Move Order Lines Using INV_MOVE_ORDER_PUB.Create_Move_Order_Lines API ?

How To Create Move Order Lines Using INV_MOVE_ORDER_PUB.Create_Move_Order_Lines API ? (Doc ID 729263.1)

In this Document

APPLIES TO:

Oracle Inventory Management - Version 12.1.3 and later
Information in this document applies to any platform.

GOAL

The purpose of this document is to provide a demonstration showing how Move Order Lines can be created using Standard Inventory API.

The attached viewlet will walk the user through creating the PL/SQL Procedure for creating Move Order Lines. There is also a document which has sample code for test purposes.

SOLUTION

1. Code Snippet

INV_MOVE_ORDER_PUB.Create_Move_Order_Lines
(   p_api_version_number   => '1.0'
,   p_init_msg_list        => FND_API.G_FALSE
,   p_return_values        => FND_API.G_FALSE
,   p_commit               => FND_API.G_FALSE
,   x_return_status        => x_return_status
,   x_msg_count            => x_msg_count
,   x_msg_data             => x_msg_data
,   p_trolin_tbl           => L_trolin_tbl
,   p_trolin_val_tbl       => L_trolin_val_tbl
,   x_trolin_tbl           => x_trolin_tbl
,   x_trolin_val_tbl       => x_trolin_val_tbl
,   p_validation_flag       => FND_API.G_TRUE
);

2. Sample code

Download Create Move Order Lines Sample API for the sample API Code (no custom tables used)

Also review Note 729261.1 - How To Create A Move Order Header Using INV_MOVE_ORDER_PUB.Create_Move_Order_Header API [Video] ?

Attachments
 
Sample code: ProcessMoveOrderLines

CREATE OR REPLACE
PROCEDURE CreateMoveOrderLines AS 
        -- Common Declarations
        l_api_version       NUMBER := 1.0; 
        l_init_msg_list       VARCHAR2(2) := FND_API.G_TRUE; 
        l_return_values    VARCHAR2(2) := FND_API.G_FALSE; 
        l_commit       VARCHAR2(2) := FND_API.G_FALSE; 
        x_return_status    VARCHAR2(2);
        x_msg_count       NUMBER := 0;
        x_msg_data         VARCHAR2(255);
    
        -- WHO columns
        l_user_id              NUMBER := -1;
        l_resp_id            NUMBER := -1;
        l_application_id    NUMBER := -1;
        l_row_cnt               NUMBER := 1;
        l_user_name            VARCHAR2(30) := 'MFG';
        l_resp_name            VARCHAR2(50) := 'Manufacturing and Distribution Manager';   
        
        -- API specific declarations
        l_trolin_tbl             INV_MOVE_ORDER_PUB.TROLIN_TBL_TYPE;
        l_trolin_val_tbl         INV_MOVE_ORDER_PUB.TROLIN_VAL_TBL_TYPE;
        x_trolin_tbl             INV_MOVE_ORDER_PUB.TROLIN_TBL_TYPE;
        x_trolin_val_tbl         INV_MOVE_ORDER_PUB.TROLIN_VAL_TBL_TYPE;
        l_validation_flag        VARCHAR2(2) := INV_MOVE_ORDER_PUB.G_VALIDATION_YES; 
  
BEGIN
 
        -- Get the user_id
        SELECT user_id
        INTO l_user_id
        FROM fnd_user
        WHERE user_name = l_user_name;
      
        -- Get the application_id and responsibility_id
        SELECT application_id, responsibility_id
        INTO l_application_id, l_resp_id
        FROM fnd_responsibility_vl
        WHERE responsibility_name = l_resp_name;
      
        FND_GLOBAL.APPS_INITIALIZE(l_user_id, l_resp_id, l_application_id);  
        dbms_output.put_line('Initialized applications context: '|| l_user_id || ' '|| l_resp_id ||' '|| l_application_id );
        
        -- creates lines for every header created before, and provides the line_id        
        -- Initialize the variables
        l_trolin_tbl(l_row_cnt).header_id              :=  4073038;                       
        l_trolin_tbl(l_row_cnt).date_required          :=  sysdate;                                     
        l_trolin_tbl(l_row_cnt).organization_id       :=  207;        
        l_trolin_tbl(l_row_cnt).inventory_item_id      :=  513963;       
        l_trolin_tbl(l_row_cnt).from_subinventory_code    :=  'Stores';                                        
        l_trolin_tbl(l_row_cnt).to_subinventory_code      :=  'FGI';    
        l_trolin_tbl(l_row_cnt).quantity          :=  2;                                          
        l_trolin_tbl(l_row_cnt).status_date          :=  sysdate;                                      
        l_trolin_tbl(l_row_cnt).uom_code              :=  'Ea';   
        l_trolin_tbl(l_row_cnt).line_number              := l_row_cnt;                                   
        l_trolin_tbl(l_row_cnt).line_status          := INV_Globals.G_TO_STATUS_PREAPPROVED;          
        l_trolin_tbl(l_row_cnt).db_flag                  := FND_API.G_TRUE;                               
        l_trolin_tbl(l_row_cnt).operation          := INV_GLOBALS.G_OPR_CREATE;                     

        -- Who columns
        l_trolin_tbl(l_row_cnt).created_by        := l_user_id;                           
        l_trolin_tbl(l_row_cnt).creation_date          := sysdate;                                      
        l_trolin_tbl(l_row_cnt).last_updated_by        := l_user_id;                           
        l_trolin_tbl(l_row_cnt).last_update_date    := sysdate;                                      
        l_trolin_tbl(l_row_cnt).last_update_login    := FND_GLOBAL.login_id;                       
           
       -- call API to create move order lines
       DBMS_OUTPUT.PUT_LINE('==========================================================');
       DBMS_OUTPUT.PUT_LINE('Calling INV_MOVE_ORDER_PUB.Create_Move_Order_Lines API');        

       INV_MOVE_ORDER_PUB.Create_Move_Order_Lines( 
                 P_API_VERSION_NUMBER   => l_api_version
              ,  P_INIT_MSG_LIST        => l_init_msg_list
              ,  P_RETURN_VALUES        => l_return_values
              ,  P_COMMIT               => l_commit
              ,  X_RETURN_STATUS        => x_return_status
              ,  X_MSG_COUNT            => x_msg_count
              ,  X_MSG_DATA             => x_msg_data
              ,  P_TROLIN_TBL           => l_trolin_tbl
              ,  P_TROLIN_VAL_TBL       => l_trolin_val_tbl
              ,  X_TROLIN_TBL           => x_trolin_tbl
              ,  X_TROLIN_VAL_TBL    => x_trolin_val_tbl
              ,  P_VALIDATION_FLAG    => l_validation_flag
      ); 
         
     DBMS_OUTPUT.PUT_LINE('==========================================================');
     DBMS_OUTPUT.PUT_LINE('Return Status: '||x_return_status);

     IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
        DBMS_OUTPUT.PUT_LINE('Error Message :'||x_msg_data);
     END IF;
     
     IF (x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
        DBMS_OUTPUT.PUT_LINE('Move Order Lines Created Successfully for '||x_trolin_tbl(l_row_cnt).header_id);
     END IF;                 

     DBMS_OUTPUT.PUT_LINE('==========================================================');

EXCEPTION
        WHEN OTHERS THEN
          DBMS_OUTPUT.PUT_LINE('Exception Occured :');
          DBMS_OUTPUT.PUT_LINE(SQLCODE ||':'||SQLERRM);
          DBMS_OUTPUT.PUT_LINE('=======================================================');
END CreateMoveOrderLines;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值