Package psdi.app.po

The PO package includes MBOs related to Purchase Orders (POs).

See: Description

Package psdi.app.po Description

The PO package includes MBOs related to Purchase Orders (POs). Items that need to be ordered from a vendor or a storeroom are entered on a purchase order. Services can also be entered on a purchase order. Purchase orders may be associated with work orders, locations, equipment or GL Accounts.
Approval of purchase orders can lead to the creation of InvReserves if the items were ordered for a storeroom. After a puchase order is approved, it is sent to the vendor.

Package Specification

The main application using the objects in the PO package is the Purchase Order Application. This application is one of the components of the Purchasing Application.

The MBOs included in the PO package are:
  • PO - MBO to represent a purchase order in a Maximo System. Items and services that need to be purchased from either a vendor (External PO) or from the storeroom (Internal PO) are requested on a purchase order. The items and services to be purchased are specified on the purchase order lines (which is another object). The PO header (which this object represents) contains details like total cost, total tax that this purchase order has incurred. The purchase order is verified by a superior authority who decides whether it can be approved or not.


  • POLine - MBO to represent one line of a purchase order in the Maximo System. Either items or services that are to be purchased are entered here. Each Item or service is unique and is identified by its description. The number of lines per purchase order is determined by the number of items or the number of services or both. Each line has its own line cost, tax codes and taxes. The sum of the line cost of the lines is reflected on a field called "pretax total" on the PO header. One purchase order can have any number of lines.


  • POStatus - MBO to represent the status of a purchase order. A new POStatus object is created every time a new purchase order is created and also every time an existing purchase order changes from one status to another permissible status. The object contains information like the po number, its current status, the date the status was changed and also the description (memo) that the user provided at the time of status change. This object is used to keep a log of the status changes.


  • POCost -- Contains the cost information associated with each POLine. The cost on a POLine can be distributed across any number of general ledger accounts. Each POCost MBO contains information about which GLAccount carries the cost and how much percentage of the total cost it carries. Each POLine will have at least one POCost MBO. If there is only one, 100 percent of the cost will be assigned to one GLAccount.

  • Shipment - MBO to represent the header of an advanced shipping notice. An advanced shipping notice is sent by the vendor before actually shipping items. Services cannot be part of a shipment because services are not usually shipped. This object contains information like the vendor, drop point, expected receipt date, ship date , bill to etc.

  • ShipmentLine - This MBO contains the exact details of an item that will be sent in the shipment. It contains the purchase order number and the line number for which this shipment is being sent. It also contains the quantity, price , order unit etc.

  • ApprovalLimit - MBO to represent the purchasing limits for PO, PR and Invoice. These limits are checked while approving these purchasing documents. If the total cost of the PO, PR or Invoice being approved is more than the approval limit, it cannot be approved and the user is warned that the approval limit is being exceeded.

Other classes included in the PO package are:

  • POStatusHandler - Helper class for maintaining POStatus MBOs. All status changes go through this class. This class contains methods that enforce rules for status changes. If these rules are not followed, the status changes are not allowed. Informative messages are given to the user as to why the status changes failed.


  • POService - This is also a helper class. It contains some utility methods that any object can access. These utility methods perform actions that are related to purchase orders. This class is useful because anybody who uses this class need not have an instance of a PO or POLine object ready at hand.

Related Documentation

Last updated: 03/13/2002

Updated By : Ganesh Murthy