Demographics And Five years of Spanish Class

Direct Org Transfer of LPNs between WMS Enabled Organizations in Oracle apps R12.1.3

 Below is the script for Direct Org Transfer of LPNs between 2 WMS enabled Organizations.

DECLARE

      p_lot_number   VARCHAR2(15):= '1F01220012';   --1F01220007

      ln_lpn_id                     NUMBER;

      l_item_id                     NUMBER;

   --   p_subinv                      VARCHAR2(50) := 'FGI'

     -- l_uom                         VARCHAR2(50);

   --   l_subinv_code                 VARCHAR2(50);

   --   l_locator_id                  NUMBER;

   --   l_lpn_qty                     NUMBER;

      ln_transaction_interface_id   NUMBER;

      lv_return_value               VARCHAR2 (50);

      lv_pt_return_status           VARCHAR2 (10);

      ln_msg_idx_cnt                NUMBER;

      lv_pt_msg_data                VARCHAR2 (4000);

      ln_trans_count                NUMBER;

      

      ln_item_id             NUMBER;

      ln_qty                 NUMBER;

      ln_source_locator_id   NUMBER;

      lv_uom_code            VARCHAR2(20);

      lv_lot_number  VARCHAR2(15);

      ln_status_id   NUMBER := 20;

      p_new_organization_id  NUMBER;

      p_new_subinv           VARCHAR2(20);

      p_new_locator_id       NUMBER;

      ln_trnasaction_type_id        NUMBER;  --2   Subinventory Transfer

      l_reason_id  NUMBER;

      re_exception                  EXCEPTION;

BEGIN

 --Subinventory Transfer starts here. From and To Inv orgs same.

         DBMS_OUTPUT.PUT_LINE('Starting Subinv Transfer Process');


      ln_transaction_interface_id := mtl_material_transactions_s.NEXTVAL;


--------------------Store transaction type id in Any lookup, so that it can be used in future customizations---------

                                     

       SELECT TRANSACTION_TYPE_ID 

         INTO ln_trnasaction_type_id

         FROM MTL_TRANSACTION_TYPES 

        WHERE TRANSACTION_TYPE_NAME='Direct Org Transfer';    --Subinventory Transfer

        

              SELECT REASON_ID

              INTO l_reason_id

              FROM MTL_TRANSACTION_REASONS 

             WHERE REASON_NAME='LPN Attribute Updated';  

        

           /*  SELECT inventory_item_id

                 --  ,segment1

                   ,primary_uom_code

               INTO l_item_id

                   ,lv_uom_code 

              FROM mtl_system_items_b

             WHERE 1=1

              -- AND SEGMENT1 = 'CF055032102250022ATL111'

               AND inventory_item_id = p_item_id

               AND ORGANIZATION_ID = 125;   */

               

                 SELECT INVENTORY_ITEM_ID

                       ,PRIMARY_TRANSACTION_QUANTITY

                       ,LOCATOR_ID

                       ,TRANSACTION_UOM_CODE

                       ,LOT_NUMBER

                       ,LPN_ID

                   INTO ln_item_id

                       ,ln_qty

                       ,ln_source_locator_id

                       ,lv_uom_code

                       ,lv_lot_number

                       ,ln_lpn_id

                   FROM MTL_ONHAND_QUANTITIES_DETAIL 

                  WHERE LOT_NUMBER= p_lot_number;    

                                     

      DBMS_OUTPUT.PUT_LINE('Stage 2 Inserting Subinventory - transactions Interface');

      

      BEGIN

         INSERT INTO MTL_TRANSACTIONS_INTERFACE (transaction_interface_id,

                                                 transaction_header_id,

                                                 distribution_account_id,

                                                 inventory_item_id,

                                                 source_code,

                                                 source_header_id,

                                                 source_line_id,

                                              --   transaction_source_name,

                                              --   transaction_source_id,

                                                 process_flag,

                                                 transaction_mode,

                                                 transaction_quantity,

                                                 organization_id,

                                                 subinventory_code,

                                                 locator_id,

                                                 transfer_organization,

                                                 transfer_subinventory,

                                                 transfer_locator,

                                                 transaction_type_id,

                                                 transaction_date,

                                                 transaction_uom,

                                                 reason_id,

                                                 created_by,

                                                 creation_date,

                                                 last_updated_by,

                                    CONTENT_LPN_ID,   -- LPN_ID & TRANSFER_LPN_ID should not be used.

                                                 last_update_date)

                 VALUES (

                           ln_transaction_interface_id,

                           ln_transaction_interface_id,

                           66097,

                           ln_item_id,

                           'inv', --lv_source_code,

                           ln_transaction_interface_id,

                           ln_transaction_interface_id,

                       --    '',

                       --    '',

                           1,

                           3,

                           ln_qty,

                           125,

                           'FGI',              --'FGI',

                           ln_source_locator_id,  --4826,  -- find_location (ln_organization_id,gv_reservation_subinv),

                           405,           --125,

                           'FGI',          --'STAGE', --p_new_subinv,

                           10918,    --p_new_locator_id,      -- 4498,    -- 207find_location (ln_organization_id, p_subinv),

                           ln_trnasaction_type_id,

                           SYSDATE,

                           lv_uom_code,

                           l_reason_id,   -- REASON_ID

                           -1,

                           SYSDATE,

                           -1,

                           ln_lpn_id,

                           SYSDATE);  

      EXCEPTION

         WHEN OTHERS

         THEN

            DBMS_OUTPUT.PUT_LINE('Error in Interface  ' || SQLERRM);

      END;


         DBMS_OUTPUT.PUT_LINE('Stage3 - Inserting data in LoT interface Table');


      BEGIN

         INSERT

           INTO MTL_TRANSACTION_LOTS_INTERFACE (transaction_interface_id,

                                                last_update_date,

                                                last_updated_by,

                                                creation_date,

                                                created_by,

                                                lot_number,

                                                transaction_quantity,

                                                status_id)

         VALUES (ln_transaction_interface_id,

                 SYSDATE,

                 -1,

                 SYSDATE,

                 -1,

                 lv_lot_number,

                 ln_qty,

                 ln_status_id);

      EXCEPTION

         WHEN OTHERS

         THEN

            DBMS_OUTPUT.PUT_LINE('Error in Lot Interface  ' || SQLERRM);

      END;


    COMMIT;


      -- Call the Inventory Transaction Manager for the specific transaction

      lv_return_value :=

         inv_txn_manager_pub.process_transactions (

            p_api_version     => 1.0,

            x_return_status   => lv_pt_return_status,

            x_msg_count       => ln_msg_idx_cnt,

            x_msg_data        => lv_pt_msg_data,

            x_trans_count     => ln_trans_count,

            p_table           => 1,

            p_header_id       => ln_transaction_interface_id);  

            

      DBMS_OUTPUT.PUT_LINE(' Standard API Starts lv_pt_return_status: ' || lv_pt_return_status);


      IF NVL (lv_pt_return_status, 'E') = 'E'

      THEN

         BEGIN

            SELECT error_explanation

              INTO lv_pt_msg_data

              FROM mtl_transactions_interface

             WHERE transaction_interface_id = ln_transaction_interface_id;


            DBMS_OUTPUT.PUT_LINE(

                  ' Error in call_subinv_transfer For Lot :   '

               || lv_lot_number

               || ' -  '

               || lv_pt_msg_data);

         END;


  --       x_errbuf :=       'Error Occurred in inv_txn_manager_pub.process_transactions.. Error Details -'       || lv_pt_msg_data; 

            

           DBMS_OUTPUT.PUT_LINE('Error in Material Transaction Processor: ');

        RAISE re_exception;

      END IF;


      IF lv_pt_return_status = 'S'

      THEN

       

         DBMS_OUTPUT.PUT_LINE(

               'Direct Org Transfer is done Successfully');

      END IF;  

      

EXCEPTION

  WHEN re_exception

   THEN 

     DBMS_OUTPUT.PUT_LINE('Custom exception: ' || SUBSTR(SQLERRM,1,150));

  WHEN OTHERS THEN

     DBMS_OUTPUT.PUT_LINE('Others Error: ' || SUBSTR(SQLERRM,1,150));    

END;

            

Comments