Pages

Thursday, August 22, 2013

Understanding Maximo Inventory Related Terminology


Are there any terms that would help in the understanding of Maximo inventory functionality?

Answer

Yes, understanding inventory terminology is essential for working with Maximo.
Here are a few of the key terms that you need to understand in order to take advantage of the robust inventory related functionality in Maximo:

Safety Stock: This is the minimum stock balance that you want to have on hand at all times. The actual value will be heavily based on how critical the inventory item is to your operation.


Reorder Point (ROP): Reorder point is the balance level at which you want your inventory reorder to take place for the given item. The calculation is a forecast of demand over lead time plus a calculation of safety stock.

The ROP is used to trigger the reorder process for the item based on the following calculation:

Available Balance + Stock on Order =< (Equal to or less than) 

(Available balance is the current balance - reserved quantity (reserved quantity is the quantity on all approved WO's referencing that item in the given storeroom) - expired stock)
(Stock on order is the quantity on all PR's and PO's for that item at that storeroom where PO/PR status is not closed or cancelled)

Note that when the work order has the "Required by Date" populated for the item the reorder process will not reorder if the SYSDATE + LEADTIME < REQUIREDBYDATE.

Setting the ROP to 0 will still reorder the item if the Available Balance + Stock on Order drops to 0.

If you want to prevent the reorder routine from ordering an item you should classify it as a non-stocked item.


Economic Order Quantity (EOQ): From a Maximo reorder point of view, this is the quantity that will be reordered once the reorder process has been triggered for the item.

EOQ refers to the optimum ordering quantity to keep inventory investments to a minimum. In other words, smaller ordering quantities would keep the inventory down, but would generate higher costs alternatively larger ordering quantities keep costs down but increase the cost of keeping the item in stock.


How this all comes together....

Once safety stock levels are set, the ROP should then be considered.

You can use various inventory reports to gain this information.

Lead Time is the time between approval of the PO for a given item and its receipt date.

Lead time demand is usage during lead time.

"A" is the average number of days in a month = 30.44

(1/1.6)th is the 1.6th root. 1.6 Ö(2 * Std Dev of Lead Time * (Lead Time/A))

Once the ROP is set the next value to be considered is the EOQ.

EOQ = sqrt( 2AS / IQ )
sqrt is Square Root of
A = Default Unit Issue Cost picked up from the Inventory Control Main screen as defined from Application Setup-Inventory Options-Defaults Costs-Issue Costs
S= Ordering Cost (This is inputted into the report)
I = Carrying Cost ( A Carrying Cost percent is prompted - Carrying costs are calculated at this percent value * Default Issue Cost )
Q = Total usage for the last 365 days. 


To calculate EOQ for reordering to the maximum. If you wish to
reorder to the maximum level, you can write an EOQ report to set the EOQ
according to the MAXIMUM value as follows:

Quantity to be purchased (EOQ) = (MAXIMUM - ROP + Availability ) / conversion 
rounded EOQ up to the nearest integer
where MAXIMUM = MAXIMUM value to replenish CONSIDERING conversion 
AVAILABILITY = (Current Balance + On Order - Reservations - Expired)
Example: ROP = 5, EOQ = 5, Current Balance = 3, 
Availability = 3, conversion = 1
TO reorder to MAXIMUM of 10...
EOQ = (10 - 5 + 3)/1 rounded up = 8 

If the reorder routine were run, it would take ROP (5) - AVAIL (3) = 2 in
multiples of EOQ (8) according to conversion (1) to replenish above the ROP
(5), which would be 1 multiple of 8.

The final amount in the storeroom would be the MAXIMUM of 10 (2 + 8 = 10)
Some Additional Organization related definitions and options:
Inventory Defaults:

Type A,B,C Breakpoint Table.Column:   MAXVARINPUT.A_BREAKPOINT, MAXVARINPUT.B_BREAKPOINT, MAXVARINPUT.C_BREAKPOINT = Percentage of inventory items associated with ABC Type A, B, or C used in ABC inventory analysis. For example, enter 30 to specify thirty percent for one of the fields.

Update Cost/Currency Variances on Inventory Costs Table.Column:   MAXVARINPUT.UPDATEINVENTORY Specifies whether the system copies the cost and currency differences (INVOICETRANS) to the variance accounts for the storeroom. If the check box is selected, the system copies the cost and currency differences. If the check box is cleared, the system does not copy them.

Negative Current Balance Table.Column:   MAXVARINPUT.NEGATIVECURBAL Specifies whether Maximo will allow users to issue or transfer items with a negative current balance. If Allow Negative Balance is selected, users can issue items with a negative balance. If Disallow Negative Balance is selected (the default), users cannot issue such items. NOTE: Maximo checks balances at the Bin level, not the Storeroom level.

Inventory Reorder:

External Request Creation Table.Column:   MAXVARINPUT.AUTOPOEXT Specifies the type of purchase requisition or purchase order that Maximo creates when a reorder request uses external vendors. Choose one of the four options. The default is an unapproved purchase requisition.

Internal Request Creation Table.Column:   MAXVARINPUT.AUTOPOINT Specifies the type of purchase requisition or purchase order that Maximo creates when a reorder request uses internal vendors. Choose one of the four options. The default is an approved purchase order.

Maximum Number of Reorder Lines per PO/PR Table.Column:   MAXVARINPUT.MAXPRLINES Specifies the maximum number of reorder lines that can appear on a purchase order or purchase requisition. The default is 40.
Inventory Costs:

Issue Cost Table.Column:   MAXVARINPUT.DEFISSUECOST For the selected site, specifies whether Maximo uses standard cost (the default) or average cost when an item is issued.

Non-capitalized Rotating Table.Column:   MAXVARINPUT.COSTFROMASSET For the selected site, specifies whether Maximo uses issue cost (the default) or asset cost when a non-capitalized rotating asset is issued. The setting applies only to the selected site.
Available in version 7.5:
LIFO: (Last in first out) This costing method uses the receipt cost of the items that were most recently purchased and are the newest in the storeroom.
FIFO: (First in first outThis costing method uses the receipt cost of the items that are the oldest in the storeroom.
These costing methods allow for greater flexibility when deciding how to value your inventory.
Understanding these terms and some of the calculations involved should help you to effectively use Maximo inventory functionality.

Loading user data in a to Non-LDAP Maximo environment

Before you can import user data in a non-LDAP environment, you must perform a series of steps to ensure that two password-related attributes are not restricted.

Before you begin
Before you perform this procedure, the SMTP server must be set up. To set up the SMTP server, ensure that a value is set for the mail.smtp.host environment variable.
About this task
If you import user data into an environment that does not use a directory server, without following the procedure described here, you might see an error message like this:
BMXAA5598E - Processing of an inbound transaction failed. The processing exception is identified in document 1.
BMXAA3878E - Password is required.
Procedure

  • Click Go to > System Configuration > Migration > Object Structures to open the Object Structures application.
  • In the Object Structure field, type MXPERUSER and press Enter. Click MXPERUSER to open the MXPERUSER object.
  • Select the Inbound Setting Restrictions action.
  • Highlight MAXUSER.
  • Locate the PASSWORDCHECK and PASSWORDINPUT attributes in the list. For each attribute, check the box in the Override column, then clear the box in the Restricted column.
  • Click OK.

Results
After you have cleared the PASSWORDCHECK and PASSWORDINPUT attributes and clicked OK, you can import the user data.
Note: After you have finished loading user data, return these attributes to their prior settings. If you leave them unchecked, you cannot use Migration Manager to move user data from one environment to another.

Updating the GL accounts in Chart of Accounts

Question

Are there different options available for updating the GL accounts in Chart of Accounts?

Answer

In previous Maximo system administration guides this information was available but in the 71 system administration guide it seems to have been removed.
In the Chart Of Accounts under the Select Action menu there is an Update Database option. This option is meant to be used after a modification has been made to a default GL Account or resource code. As an example say the Control Account of a storeroom was changed since this GL defaults into place as the credit or debit account one would have to use the Update Database options to push the changes through so the new GL can be used.
There are 3 available options to chose from :



Here is an explanation of how the above 3 options work:
Overwrite Blank Accounts only?

Suppose you created an account code for the GL Account field of an existing item type. The GL Account field of the item is overwritten only where it is blank, but not where a GL account was entered.


Overwrite Accounts With Old Defaults?

Overwrites blank fields and GL account fields that have the previous GL account. Suppose an item type had a GL account code associated with it in Chart of Accounts. This code was inserted on item records that used the item type. On some records, the account code was changed.


Overwrite All Accounts:

Overwrites all relevant GL Account fields in Maximo records. Suppose an item type has a GL account code associated with it in Chart of Accounts. All blank GL Account fields for that item type and all existing GL Account fields for items of that type, including ones that were subsequently changed, are overwritten.

Sql statement to select all available Maximo applications grouped by its module

SELECT
  LPAD(' ', 2*(LEVEL-1)) ||
  CASE WHEN ELEMENTTYPE = 'MODULE' THEN (SELECT DESCRIPTION FROM MAXIMO.MAXMODULES WHERE MODULE = KEYVALUE)
       WHEN ELEMENTTYPE = 'APP' THEN (SELECT DESCRIPTION FROM MAXIMO.MAXAPPS WHERE APP = KEYVALUE)
       ELSE HEADERDESCRIPTION END DESCRIPTION,
  DECODE(ELEMENTTYPE,'APP',KEYVALUE,NULL) APP
FROM
  ( SELECT
      MODULEAPP,
      POSITION,
      SUBPOSITION,
      ELEMENTTYPE,
      KEYVALUE,
      HEADERDESCRIPTION,
      LEAD(POSITION) OVER (PARTITION BY MODULEAPP, SUBPOSITION ORDER BY POSITION) NEXT_MENU_POS
    FROM
      MAXIMO.MAXMENU
    WHERE MENUTYPE = 'MODULE'
  )
START WITH ELEMENTTYPE = 'MODULE'
CONNECT BY NOCYCLE 
  (MODULEAPP = PRIOR KEYVALUE AND SUBPOSITION = 0 AND PRIOR ELEMENTTYPE = 'MODULE') OR
  (POSITION >= PRIOR POSITION AND POSITION < PRIOR NEXT_MENU_POS AND SUBPOSITION > 0 AND PRIOR ELEMENTTYPE = 'HEADER')
ORDER BY CONNECT_BY_ROOT(POSITION), POSITION, SUBPOSITION;