A friend of mine who has experience with SAP asked whether Maximo can handle a “Blanket PO” process similar to SAP. I sent him my answer based on the scenario and requirement he provided and think it is probably worth posting here as some other people may find it interesting:

In the Purchase Contracts application, we can create a new Purchase Contract of type “Blanket”  and give it a Maximum Amount say $1.5M. Some companies call it “Budget” because this is the limit a user can use to release Purchase Orders (PO). This is called “Release PO” in Maximo, but I saw many of my clients in the energy sector refer to it as “Call-Out” or “Work order”. Blanket Contract is also sometimes referred to using different terms such as Frame Contract, Framework Contract, or Price Contract. I mention this because the “Work Order” PO can easily be confused with normal maintenance Work Order, and “Price contract” in this case can easily be confused with the “Price Contract” type in Maximo which works a bit differently.

To create a Release PO, on the Contract app, we use the “Select Action >> Create Release PO”, and then select the contract items we want to procure. We can choose not to select any existing contract item, generate an empty PO, and add service/material items to the PO lines later. The total amount of the PO will still be counted against this Contract.

GL Account is specified in PO, not in Contract because the contract is an agreement between the operating company and a 3rd party vendor; it is generally to define terms and conditions and set a fixed price for certain goods or services. When the good or service is actually ordered (by issuing a Release PO), we will have a better idea of where and how it is used (on what project/work order or on what location/asset/cost centre?).

In the Purchase Order application, we can distribute the cost of each line item to charge against different cost centres or GL accounts for more detailed financial reporting. To do this, we can select a line and click on the “Distribute Cost” button and specify the cost and GL account that we want to charge against. This information will also be copied to the Invoice when creating an Invoice record so that accountants can determine what expenses will be recorded against what accounts.

The rest of the steps are similar to the standard procurement process: we can receive material/service using the Receiving application, and we can create an Invoice against the receipts. (In the Receiving application, even with the latest version, Maximo still treats each line item received as a separate transaction, I prefer IBM to introduce an app that groups all items received each time into one Receipt header record which can be used to enter details like the receiver, inspector, and actual receipt date).

If Maximo is integrated with the Finance system, generally, items in an approved PO are posted as a “commitment” transaction, items received into inventory are posted as “accrual”, and items/services purchased against an Asset/Location, Work order, or simply a GL, which are referred to as “Direct Issue” item in Maximo, are posted as “expense”, and Invoice is posted as “payable”, “tax”, and “expense” transactions.

In the Contract application, we can open a Blanket Contract, and click on “Select Action >> View Release Cost” to see with the original “budget”, how many Release POs have been issued, the total committed amount, the total received, and the remaining of the “budgeted” amount we have left to spend on future release.