July 26, 2017

Reusing Shipped LPNs in Oracle WMS

bishnupc / /
Yes LPNs can be reused in either same inventory organization or a different organization.
This can be achieved using container public API

Provided the current context of the LPN is issued out of store and there is no pending transaction on that LPN and LPN name is a valid LPN name.

Prior to R12.1.1, oracle was not allowing to re use the LPN once shipped out.

But in certain business case this is necessary to reuse.
Like logistic business they have they container returned to dock or warehouse after delivering to customer and which can be resused, so why not the LPN tagged to that.

As of now there is no functionality in oracle forms using which this can be achieved.
In those cases, this can be achieved by using the below API

It will Validate the LPN on below points
  • It should be issued out of stores. 
  • It should have a valid LPN name. 
  • There should not be any pending transactions for this LPN.
It derives the contents from WMS_LPN_CONTENTS & WMS_LICENSE_PLATE_NUMBERS. This will update the WMS_LPN_HISTORIES table as well
  • It marks the LPN as ‘Defined but not used’ with no Subinventory/Locator. 
  • LPN is ready for reuse in the organization provided. 
prompt Enter License Plate Number which has to be reused accept lpn;
l_Return_Status Varchar2(1);
l_Msg_Count Number;
l_Msg_Data Varchar2(100);
l_Lpn_Id Number;
l_Clear_Attributes Varchar2(10) := 'Y';
l_Unpack_Inner_Lpns Varchar2(10) := 'N';
l_Clear_Containter_Item_Id Varchar2(10) := 'N';
l_Organization_Id Number := Null;
-- l_License_Plate_Number Varchar2(100) := 'JR1';
l_License_Plate_Number VARCHAR2(100):= '&lpn';
Select Lpn_Id
Into l_Lpn_Id
From Wms_License_Plate_Numbers
Where License_Plate_Number = l_License_Plate_Number;
p_Api_Version => 1,
x_Return_Status => l_Return_Status,
x_Msg_Count => l_Msg_Count,
x_Msg_Data => l_Msg_Data,
p_Lpn_Id => l_Lpn_Id,
p_Clear_Attributes => l_Clear_Attributes,
p_New_Org_Id => l_Organization_Id,
p_Unpack_Inner_Lpns => l_Unpack_Inner_Lpns,
p_Clear_Containter_Item_Id => l_Clear_Containter_Item_Id
When Others Then
Dbms_Output.Put_Line('SQLEERM ' || Sqlerrm);
Copyright © . Oracle Apps (SCM) . All Rights Reserved
Oracle Apps (SCM) is an online knowledge sharing blog which index online free tutorials, blogs and other sources, to get easier and accessible manner. The blog has been created keeping only one intention of sharing knowledge and for learning purpose. All trademarks, trade names, service marks, copyrighted work, logos referenced herein belong to their respective owners/companies. If any of the posting is violating copyright and you want us to remove that content. Please contact Here