close

由於我方料號編碼整個調整,所以直接複製舊料號的給新料號使用

mtl_system_items.attribute29  存的是舊料號ID ,讓新料號直接對串資料~

 

declare
        l_api_version         NUMBER := 1.0;
        l_init_msg_list         VARCHAR2(2) := FND_API.G_TRUE;
        l_commit         VARCHAR2(2) := FND_API.G_TRUE;
        x_message_list         Error_Handler.Error_Tbl_Type;
        x_return_status         VARCHAR2(2);
        x_msg_count         NUMBER := 0;
    
        l_user_id        NUMBER := -1;
        l_resp_id        NUMBER := -1;
        l_application_id    NUMBER := -1;

        l_user_name        VARCHAR2(30) := 'NOLEM';
        l_resp_name        VARCHAR2(30) := 'YENS_INV_ALL_SUPERUSER';    
   cursor cur is select msi.INVENTORY_ITEM_ID ,msi.segment1,msi.attribute28,msi.attribute29,
                      msi_org.INVENTORY_ITEM_ID old_INVENTORY_ITEM_ID,msi_org.ORGANIZATION_ID
                      ,msi_org.PRIMARY_UOM_CODE
               from  (select INVENTORY_ITEM_ID,segment1,attribute28,attribute29  
                        from mtl_system_items  
                       where ORGANIZATION_ID=101 and attribute30='Y'  and attribute29 is not null) msi ,
                      mtl_system_items msi_org
               where msi.attribute29=msi_org.INVENTORY_ITEM_ID
                 and msi_org.ORGANIZATION_ID not in (101,103,104,105,110);     

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
      WHERE responsibility_key = l_resp_name;
    
      FND_GLOBAL.APPS_INITIALIZE(l_user_id, l_resp_id, l_application_id);  -- NOLEM / YENS_INV_ALL_SUPERUSER / INV
       
     -- call API to assign Items
   
    for rec in cur loop
      EGO_ITEM_PUB.ASSIGN_ITEM_TO_ORG(
             P_API_VERSION          => l_api_version
          ,  P_INIT_MSG_LIST        => l_init_msg_list
          ,  P_COMMIT               => l_commit
          ,  P_INVENTORY_ITEM_ID    => rec.INVENTORY_ITEM_ID   
          ,  P_ITEM_NUMBER          => NULL
          ,  P_ORGANIZATION_ID      => rec.ORGANIZATION_ID
          ,  P_ORGANIZATION_CODE    => NULL
          ,  P_PRIMARY_UOM_CODE     => rec.PRIMARY_UOM_CODE
          ,  X_RETURN_STATUS        => x_return_status
          ,  X_MSG_COUNT            => x_msg_count
        );
      


       IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
          DBMS_OUTPUT.PUT_LINE('Error Messages :');
          Error_Handler.GET_MESSAGE_LIST(x_message_list=>x_message_list);
          FOR i IN 1..x_message_list.COUNT LOOP
             DBMS_OUTPUT.PUT_LINE(x_message_list(i).message_text);
          END LOOP;
       END IF;
  
    end loop;    
EXCEPTION
        WHEN OTHERS THEN
          DBMS_OUTPUT.PUT_LINE('Exception Occured :' ||SQLERRM);
END ;

arrow
arrow
    全站熱搜

    Nolem 發表在 痞客邦 留言(0) 人氣()