A lot item is one that has a shelf life, paints and chemicals often fall into this category. From an inventory point of view, you would want to track lotted items to ensure that the lots with the closest expiration date are issued before those that have just been purchased and have a much longer shelf life. Some items will be tracked with lot numbers in case there is a recall by the manufacturer.
Lot items also apply to tool items, but not service items. Our focus will be for items created in the Item Master application which is where we will start first.
On the Item Master application there is a Lot Type field, with options for NOLOT or LOT. The default is NOLOT. The functionality to handle lotted items in Maximo has been around for at least 25 years, a long time before we had a check box. We will be using item 11453 from the MAXDEMO database, the only one that is marked with a Lot Type of LOT.
An item marked with a Lot Type of LOT cannot be condition enabled or be a kit item. Those two fields will become read-only if you change the Lot Type. Conversely, the Lot Type field will be read-only if the item is either condition enabled or a kit item.
A lotted item cannot be part of a kit, you will receive the error message “BMXAA2089E – Rotating, lotted, and condition-enabled items cannot be added to a kit structure.”
A lot item cannot be marked as rotating, when you use the “Rotating?” check box the item will be changed to a Lot Type of NOLOT. A lot item that is saved with a Lot Type of LOT will have a read-only “Rotating?” field.
An item can change between NOLOT and LOT if there is no inventory balance record. If a balance record exists with a zero balance, then the Lot Type field remains read-only.
Purchase Orders and Receiving
To understand lotted items we’ll start with a Purchase Order. We are buying a quantity of 5 of the lotted item 11453 from vendor ATI. We have entered the Manufacturer and Model; the manufacturer is particularly important because the manufacturer will provide their lot number in case of a recall. It may be a good idea to record the manufacturer’s model number and/or vendor’s catalog number for tracing purposes. The destination is the CENTRAL storeroom and I have set the Inspection Required field.
PO 1226 has now been approved.
In the Receiving application, PO 1226 was queried, and the Selected Ordered Items button used in the Material Receipts tab. Item 11453 was selected, 5 seals were received, and we have used the OK button to close the dialog.
Now there are some important fields to enter for lotted items, and I wanted to show you what happens if you immediately save the Material Receipts line, which is a very natural thing to do. The Manufacturer Lot, Shelf Life (Days) and Expiration Date are all read-only. Maximo has created an internal Lot Number using the autokey, 1006 in this case, this would normally be different from the Manufacturer’s Lot. Ideally you would capture this data before you hit the save button. The autokey will continue to increase over time and hence will provide an indication of which lot is the oldest when comparing two lots for the same item.
The three fields are Manufacturer Lot (MFGLOTNUM), Shelf Life (Days) (SHELFLIFE), and Expiration Date (USEBY) and they exist in the INVLOT table as persistent fields. They also exist in MATRECTRANS but as non-persistent fields and as you can see, they are read-only.
The records in the INVLOT table are created by Maximo automatically. The primary key used by Maximo is ITEMNUM, LOTNUM, LOCATION (storeroom) and SITEID. It is a SITE based object with an Organization level autokey for the LOTNUM attribute. It is best to use the autokey for the Lot field (LOTNUM) as it gives an indication of relative age of two lots for the same item and there are some circumstances when it will be created automatically, if you leave it empty.
When you use the action Change Inspection Status there is no access to these three fields, although this table is also based on the MATRECTRANS object, it is likely the INVLOT fields will still be read-only.
When the receipt is completed after the inspection, the three fields remain read-only.
In Maximo, there is no dialog over the INVLOT object, and the only place that I can find where you enter the Manufacturer’s Lot is when you perform a receipt against a Purchase Order, and you need to do this before making a save to the database.
Inventory – Balances
With the item fully received there is a change to the Inventory Balances in the Inventory application, a new row has been added for the quantity of 5 of item 11453 just received against internal lot 1006, it is the top row displayed. The Shelf Life and Expiration Date are available to be entered, they are not read-only, they are non-persistent fields, but save their values to the INVLOT table. There is no Manufacturer’s Lot Number in the INVBALANCES object. Later I’ll show you how to configure the Manufacturer’s Lot to the Inventory Balances table window, so that it can be modified.
If you enter the Shelf Life, then Maximo calculates the expiration date. If you enter an expiration date, there is no calculation of a shelf life. The only time you will see the Shelf Life and Expiration Date fields with data is when the item is marked with a Lot Type of LOT, if NOLOT these two fields are empty and read-only.
If you use the New Row button to create an Inventory Balance record on an item with Lot Type of LOT you can leave the Lot field empty, but when you save Maximo will fill it with the next autokey value and it will be read-only. For a NOLOT item the Lot field is empty and read-only.
View Item Availability
Throughout Maximo in the Details menu of an item field there is an option “View Item Availability”, this has a tab “All Lots” which shows you the lotted balances in a storeroom, including their expiration dates. The 5 items received today is the second row down with the new expiration date.
The really observant of you will have noticed that there are more lines in this screenshot than was seen in the previous one. This is simply because the first record is in the CENTRAL storeroom in DENVER site, and the last record has the item in the CENTRAL storeroom in NASHUA site. I am logged in with access to all storerooms across all sites. If the storeroom name does not imply the site, then the View Item Availability dialog might need to be configured to show the Site field.
We will now see what happens when you perform an issue and transfer.
Inventory – Issue/Transfer Current Item
From the CENTRAL-BEDFORD record of item 11453, when you use the action Issue Current Item the lot which is selected to be issued is the one with the earliest expiry date. Lot AAJ1 has no expiry date, hence it is selected before any of the other lots with an expiration date.
I have cancelled the issue and changed the Expiration Date of the Inventory Balances record with lot number AAJ1 to an expiry of tomorrow, 11-Aug-20.
Now I have transferred the balance using the action Transfer Current Item, from the From Bin A-4-9 and From Lot AAJ1 to the To Bin A-4-10 keeping the To Lot the same as the From Lot, AAJ1. While the bin may change, you probably do not want to change the internal lot used by Maximo, although it is possible to do so, by changing the To Lot field in a transfer operation.
Bin A-4-9 is the default bin for this item, and I wanted to prove that Maximo was going to issue from the inventory balance record with the earliest expiration date, rather than from the default bin, it has, the item is coming from bin A-4-10, its Lot number AAJ1 has the earliest expiration date (11/08/20).
Bin A-4-10 only has a balance of 1, what would happen if you wanted to issue more than the balance, in this case 3? The following error is received “BMXAA3496E – Trouble processing item 11453. Cause: The balance in the bin will become negative as a result of this transaction..”. What Maximo does not do is split the transfer so that the quantity is made up from different lots, whether the same bin or not.
The Inventory Usage application has a split usage function, will that allow for a split across lots? I’ll just create a reservation for a new work order, quantity 3.
Inventory Usage – Split Usage Quantity
In the Inventory Usage application, the Add/Modify Reservations action will find the reservation for quantity 3 of item 11453 against new work order 1394.
Creating a new Inventory Usage record (1175) against the CENTRAL storeroom and with a Usage Type of ISSUE. When using the button “Select Reserved Items” we can find the reservation with a quantity of 3, the From Bin is set to A-4-10 and the From Lot to AAJ1, this is the lot with the earliest expiration date, and the bin where the lot resides.
When using the action “Change Status to Complete” the Split Usage Quantity dialog opens because a quantity of 3 cannot be satisfied from the bin/lot.
The Auto-Split button will find the quantity of one from bin A-4-10. You cannot change it to a quantity 3 or leave the dialog as you will receive the error message “BMXAA7767E – The split line quantity is not equal to the original requested quantity for one or more lines. Either change the original requested quantity or change the split line quantity.”.
Using the create New Row button you can see that the dialog is only allowing you to select from Lot AAJ1. In the Inventory Usage application while a split across bins is allowed Maximo is not allowing you to split across lots.
With the Inventory Usage application, you can create multiple lines to satisfy the reservation. We will stick with a quantity of 1 coming from bin A-4-10 as that has the earliest expiry date (top line).
We will create a second line and select From Lot A-431 and From Bin G-5-3 and add a quantity of 2. This will require a split, which we can this time achieve because there is another bin with lot A-431.
Again, when we use the Change Status to Complete action the Split Usage Quantity dialog opens. I’ve used the Auto-Split button; it has ignored my request to use the From Bin G-5-3, because Maximo can satisfy the whole requirement from From Bin A-4-9 which has equal expiration date.
We can use the New Row button and choose to override the Maximo recommendation by taking from the same lot (A-431) but the two bins, one each from A-4-9 and G-5-3.
The end result is that the quantity of 3 is actually satisfied from two lots (AAJ1 and A-431) across 3 bins (A-4-10, A-4-9 and G-5-3). Notice the second line has the “Split?” attribute checked. You can use the action View Transactions to see the three MATUSETRANS records created, and the three bins that were the source of the item, but not the lot number, which will need to be configured into the dialog, Issues/Returns tab. The Transfers tab could also do with displaying the From Lot and To Lot attributes.
I hope I haven’t lost you along the way, but the important points here are as follows:
- The Inventory Usage application gives you the flexibility to split the reservation across lots and bins
- Maximo will still try to use the lot with the earliest expiration date first.
- Maximo will not naturally split a reservation across lots, it assumes you want the required quantity to come from the same lot.
- The Split Usage Quantity splits across bins, but not lots. So, if one lot will not satisfy the reservation you need to create a second usage line.
- Maximo does give you the flexibility to satisfy the reservation in the way you want.
Inventory Usage – Select Items For Return
The next test is a return of an item we had just issued. We would like to return the quantity of 1 that came from lot AAJ1.
We will use another Inventory Usage document to perform the return, 1176 with Usage Type of ISSUE against the From Storeroom of CENTRAL in BEDFORD site. We are using the button “Select Items For Return” and filtering by item=11453. The three records previously issued to work order 1394, are the bottom three records. This is a view onto the MATUSETRANS object/table, if you are going to use lotted items, then you need to consider adding the Lot Number to this table window through configuration.
I guessed correctly and found the issue of lot AAJ1; I used the actual date as a guide. The Usage Type is Return and the From Lot is AAJ1 and From Bin A-4-10, how they were originally as part of the issue transaction.
At the bottom of the details area, in the Charge Information section, you can see that the “Returned Against Issue?” field is set. This is the advantage of the “Select Items for Return” button in Inventory Usage application, it is selecting existing issued records from the MATUSETRANS table and simply copying them for the Return, in which case the items will be returned to the same bin and lot that they originated from.
Inventory – Balances – Expiration Date and Expired Quantity in Stock
Item 11453 now shows a Current Balance of 1.00 in Bin A-4-10 for Lot AAJ1. Notice the Expiration Date is 11-Aug-20, which is today.
Yesterday AAJ1 was the default lot used when we issued, now when I use the action Issue Current Item, it is Lot A-431 from Bin A-4-9 that the quantity defaults from. It still looks as if you could issue Lot AAJ1, you can, I checked this later.
I’ve changed the Expiration Date of Lot AAJ1 to 10-AUG-20 to make sure the date is in the past and when we use the OK button from the action Issue Current Item, we get the error “BMXAA1831E – The lot has expired.” You do not get this error message if the expiration date is today, the issue went through.
Incidentally, if you change the Expiration Date in the Inventory Balances table window then it will change for other inventory balances that share the same Lot number, but the change only occurs in the same storeroom, and not across storerooms, not even if they are in the same site.
Once a quantity of an item has now exceeded its expiration date, the balance will be added to the field “Expired Quantity in Stock” in the Available Balance Summary section, it now shows 1, the quantity in expired lot AAJ1. There is no corresponding reduction in the Current Balance, but there is in the Quantity Available, which has been reduced to 8.00. The Expired Quantity in Stock is a column that is displayed in the View Item Availability dialog, shown from the Details menu of item fields throughout Maximo.
Inventory – Transfer Across Sites
The next test involves transferring to another site. I’ll start with a transfer from the Inventory application and then show a similar transfer from the Inventory Usage application.
I will transfer a quantity of 2 to the CENTRAL storeroom in NASHUA site. The Default From Bin is A-4-9 and From Lot is A-431, this is the lot which now has the earliest expiration date, and the bin where that lot exists. At the point in time when this screenshot was taken the balance in bin A-4-10 and lot AAJ1 was 0.00 as I had just proved that you could issue from a lot if it expires today.
The To Lot is chosen by Maximo because lot 1002 exists in Inventory Balances in the CENTRAL storeroom at NASHUA site, its balance is zero in the To Bin of N-3-8. The To Bin is the Default Bin for the CENTRAL storeroom in NASHUA site. The point here is that Maximo is going to use an existing lot number, if no lot number existed at the destination storeroom, then the lookup will be empty and the natural thing would be to enter the same lot number as the From Lot, A-431 in this case.
When implementing inventory lots, you need to consider what you do when you perform a transfer, what is the purpose of the internal lot number? If it is a key for tracking issues and returns only, then the way Maximo works will probably be OK. If you want to track transfers of lotted items, then I think you will get a better result if you set the To Lot to be the same as the From Lot. That will provide traceability across the sites of an organization, because the autokey is at the organization level.
If you allowed the lot number to be defaulted, then what would happen if you transferred back a quantity of a lot? It might end up in the same bin with the same lot number, but it may not have been from the same manufacturer’s lot. From a traceability point I think it is better if you maintain the same Maximo lot number across sites, at least in the same organization.
To illustrate this, I am going to use lot 1006 which we purchased at the start of this article.
I have selected 1006 in the From Lot, it is not the default, but it does show you can override the From Lot which Maximo suggests. I have entered 1006 in the To Lot field. The transfer can complete.
In the Inventory application on item 11453 we now have a Current Balance of 2 of lot 1006 and the original lot 1002 with the zero balance I had highlighted earlier. Notice that the Shelf Life and Expiration Date have not been copied. I performed another test transferring from the CENTRAL storeroom to the GARAGE storeroom, both in the BEDFORD site, and the Shelf Life and Expiration Date were copied this time, but unfortunately the Manufacturer’s Lot number is not copied. You have to provide a To Bin and To Lot otherwise you will receive the error message “BMXAA1931E – Please specify a To Lot and Bin.”.
If we need to transfer back to the CENTRAL-BEDFORD storeroom the items from Lot 1006 then we know that they ought to go to Lot 1006. If any other Lot had been chosen, then the Expiration Date is less likely to align.
Inventory Usage – Transfer Across Sites
In this test we will use the Inventory Usage application to transfer lotted items across site, to DENVER. The Default From Lot, A-431, is the one with the earliest expiration date, Maximo is using the From Bin A-4-9.
Further down the page, in the Transfer Details section, we have selected the CENTRAL storeroom in DENVER site. The To-Bin has been selected as A-4-9, because the item already exists in CENTRAL-DENVER storeroom and this is the default bin. But Maximo has not selected the To Lot, although lot 1003 exists with a balance of 21. You cannot leave the To Lot field empty because you will receive error message “BMXAA1931E – Please specify a To Lot and Bin.”
We will enter A-431, the same lot number as from From Lot, as we do so we receive the warning “BMXAA7862W – The lot number and expiration date of the destination storeroom do not match the lot number and expiration date of the supplying storeroom.” we will continue through to saving the record. You also get the same warning if there is a match between bin and lot numbers, but the expiration date is empty at the destination storeroom.
Notice that the Manufacturer’s lot is displayed in the Transfer Details section, it comes from the INVLOT relationship. Will it get copied?
I have used the action “Changed Status to Shipped” and Maximo created shipment 1045.
In the Shipment Receiving application I have picked up shipment 1045 and used the button “Select Shipped Items”. You can see that the Shelf Life and Expiration Date have been picked up, these are MATRECTRANS non-persistent attributes.
In the Inventory application, for item 11453 in the CENTRAL-DENVER storeroom, the current balance has increased by one, but the Quantity Available is still 21, as there is a quantity of 1 in the “Expired Quantity in Stock” field.
In the Inventory Balances table window, you can see the A-431 lot just transferred with a current balance of 1.00, the Shelf Life and Expiration Date have been copied, but not the Manufacturer’s Lot. The Expiration Date of 31/12/20 is in the future, I presume that in Maximo 126.96.36.199 where the test was performed, there is an issue.
In other tests I performed I found that a transfer going straight to COMPLETE status, not via shipment or staging, the Shelf Life and Expiration Date fields were not copied.
In my opinion the Shelf Life, Expiration Date and Manufacturer’s Lot should be copied in all Transfers no matter from which application the transfer takes place in Maximo.
Inventory – Balances – Adding the Manufacturer Lot
We started out this article by saying that you needed to record the Manufacturer’s Lot before saving the record in the Receiving application. Well, the good news is that you can add it to the Details area of the Inventory Balances table window with a bit of configuration, the attribute should be INVLOT.MFGLOTNUM, it is an enterable field. It could be similarly added to the View Inventory Transactions dialog, particularly the Issues & Returns tab.
The other place I would look to add the Manufacturer’s Lot attribute through configuration is in Work Order Tracking application and Actuals – Materials tab, below the expiration date, this attribute should be made read-only in the application.
Basically, I think it a good idea to show the Manufacturer’s Lot field wherever the Shelf Life and Expiration Date fields are shown. If I was using chemicals or paints, I would want to make sure that the manufacturer’s lot is from the same batch.
My old Maximo 3.0 user manual gives an example of a serialized lot. If you receive 10 gas bottles with the manufacturer’s lot number and you want to track each individually, then it suggests creating 10 inventory balance records, with quantity 1 each, and use a suffix added to the manufacturer’s lot number for the internal lot, ABC-01, ABC-02, etc, if ABC was the manufacturer’s lot number. You would more than likely need to increase the width of the LOTNUM field from UPPER 8, which you would do on the INVLOT object.
- Lotted items allow you to track items by an internal batch number (lot number) and expiration date.
- This internal lot number is used in issues, returns and transfers.
- The Manufacturer’s lot number is only enterable in the Receiving application, and before you save the receipt, i.e. before you save the MATRECTRANS record. But it can be added to the Inventory Balances table window in the Inventory application, so that it can be modified, along with the Shelf Life and Expiration Date.
- During an inventory issue Maximo will pick the lot with the earliest expiration date, if there is no expiration date, then this lot will be used first.
- If the expiration date is now in the past you cannot issue the stock, you can if it expires today.
- The Inventory Usage button “Select Items for Return” is particularly useful in that it returns what was issued and will return the item to the same bin and lot from which it originated.
- When transferring across site the internal lot number might default if a bin/lot in the destination storeroom already exists. That may not be the desired outcome, you may want the To Lot to be set the same as the From Lot when transferring, at least within the same organization.
- The lot number is shown in the Inventory Adjustments for Current Balance and Physical Count.
- The lot number is shown in View Inventory Transactions – Issues & Returns tab. On the Receipts & Transfers tab, the From Lot and To Lot are shown. The lot number is also shown on the Adjustments tab, you could be adjusting the current balance, performing physical count, or reconciling the balances.
- The View Inventory Transactions dialog is the best one for tracing a lot item, however, it does not allow filtering except in the table window filter. Ideally there would be a separate action called View Lot Transactions which would show the important fields for tracing a lot.
- You can use an Escalation on object INVBALANCES with an escalation point on the USEBY attribute to notify stores personnel when lots are nearing their expiration date.
- A tool item can also be set-up with a lot type of LOT.
As you implement Maximo you should consider what happens to the internal lot number when I perform a transfer. Do I want it to be the same in both storerooms, or not?
I did find on Maximo 188.8.131.52 some inconsistency between applications on whether the Shelf Life, Expiration Date and Manufacturers Lot were copied or not. Perhaps, there is some logic I have missed, perhaps there are issues. This is an area that requires more testing.
In an implementation of lotted items I would look to ensure that wherever the Lot Number is displayed then the Shelf Life, Expiration Date and Manufacturer’s Lot Number are also displayed, may be not as columns in the table window, but at least in the details area.
If tracking the Manufacturer’s Lot is important, then this requires a bespoke report. I couldn’t find a report or an application screen that mimicked what used to be in the Maximo application (a long time ago) as the View All Lots dialog (Page 463, Maximo 3 User Manual Volume 2).