Contents
If you have Maximo Transportation installed, then the Maintenance Codes module will be found in the Administration module. It consists of two applications, Component Codes (Tr) and Position Codes (Tr). We’ll have a look at these two applications and then identify where they are used.
Component Codes (Tr)
Component Codes typically identify the system, assembly and part/component of a complex asset. For example, Vehicle Maintenance Reporting Standards (VMRS) codes used by the American Trucking Association have three groups of three-digit codes, with hyphens between creating an 11-character code, for example 015-003-084 Housing-Valve, Steering Gear.
To represent this in Maximo Transportation you would enter three records:
015 Steering
015-003 Steering Gear Belongs to 015
015-003-084 Housing-Valve, Steering Gear Belongs to 015-003
In the VMRS codes the first two digits of the system is a grouping code, 01 represents the Chassis Group.
One of the main reasons for using Component Codes is to be able to evaluate maintenance costs.

The Component Codes (Tr) application is a simple one. Component Codes can be added into a hierarchy and there is a simple status of DRAFT, ACTIVE or INACTIVE, where DRAFT is the default.

After entering the top-level component code, it is easy to create its children in the table window. In the table details the menu to the Component allows you to move to that record, which in this case would allow me to create the component code for 015-003-084 – Housing-Valve, Steering Gear.

Component 015-003 is now the active record, and this has allowed me to create the part/component 015-003-084. Notice that the Children table window has a button on the right to Change Status.

I used the Change Status action on the active record 015-003 and this was allowed, notice both the parent and one child are still at DRAFT state. There is no status history, hence no memo field. You can make a component code INACTIVE and then make it ACTIVE again.
The Change Status dialog on the Children table is identical to that on the main record, however, the Change Status dialog on the List tab only shows the New Status field and prior to this you will receive a warning as to how many records will be updated.
When changing status from the List tab, I can confirm that if there is a component code record that is already at the value you enter in the New Status field, it ignores it, but provides a warning that it did not change the status. You do get a message for each component code record where the status was changed, which might be a bit excessive if you loaded up a set of component codes at DRAFT status and were now going to change status for many records.
The Position Code Required field when set will require you to enter a position code when you enter the component code. For example, the component code for a wheel might require you to identify where on the chassis it exists.

A nice touch is to be able to visualise the set of component codes in a drilldown through the action Open Drilldown.
You can delete a component code if it has not been referenced elsewhere, you do not need to change the status to INACTIVE or DRAFT first.
Component Codes are defined at the System level, the object is PLUSTCOMP with a primary key of COMPONENT defined as UPPER (15).
Position Codes (Tr)
If the same component exists multiple times on the same asset, then a position code can help to identify where on the asset a component asset exists. The obvious example is to think of a car that has four wheels, and you might develop the position codes OF – Offside Front, OR – Offside Rear, NF – Nearside Front, NR – Nearside Rear. On a ship you might have a port engine and a starboard engine, a position code can help to identify this.
The field help for the Position field gives an example of where a hierarchy of position codes might be used. Example: CS = Curb Side. CSA1 = Curb Side, Axle 1. CSA1I = Curb Side, Axle 1, Inner.

The Position Codes (Tr) application looks like the Component Codes (Tr) application. The Status defaults to DRAFT and has options for ACTIVE and INACTIVE, there is no status history and hence no memo field in the Change Status dialog.
Position Codes are defined at the System level, the object is PLUSTPOS with a primary key of POSITION defined as UPPER (15).
Whereas Component Codes may have an established industry set of codes to use, like VMRS, there may not be any standard to use for position codes, and you are likely to need to define your own. One thing to bear in mind is that this is a system level object, the position code can only exist once and have one description, so another part of your organization might find that a position code they want to use, has already been taken. You probably want to plan your position codes, especially with position code structures, like the one suggested in the online help. For example, when considering vehicle axles and tyres try to devise a position code structure that would still work for the most complex vehicle.
Terms like nearside or offside may not be used universally, some may use terms like curb side, passenger side, drivers side, left or right, so devising something common might require a wider review after you have defined your first set of position codes.
As it happens the American Trucking Association did devise a coding structure for Tire Position Codes, it is called Code Key 79. They also have several other Code Keys for Maintenance Status (24), Claim Response Reason (83), Claim Response Status (84), Work Accomplished (15) etc.

I have created a set of position codes for a truck with up to four axles using Curb Side (CS), Drivers Side (DS), for example CSA1O – Curb Side, Axle 1, Outer, a three-level position code hierarchy. Afterwards I made all the position codes ACTIVE by using the Change Status from the List tab.
Maintenance Codes on Assets (Tr) and Locations (Tr)
Component Codes are used widely, as are Position Codes. The obvious first place to look is in the Assets application.

The Component and Component Position fields will both be found on the Assets (Tr) application’s main tab, about halfway down on the left side column. Apart from the Select Value and the Go To there is an Open Drilldown option on both fields.
As soon as I saved the Component Code 015-003 to an asset record, I could no longer delete the component code and received instead the message “BMXAL0101E – This component code cannnot be deleted. It is referenced by an active record.”

I have returned to the Component Codes (Tr) application and have set Position Code Required for Component 015-003-084.

On the asset I changed to Component 015-003-084 where the Position Code Required is set, the Component Position did not become mandatory. When I checked the field help it did say “Check box that specifies whether you must enter a position code when you enter this component code on plans, actuals, tasks, PO lines, PR lines, etc. For example, the component code for a tire might require a position code to indicate the location of the tire on the vehicle.” So, the position code is not meant to become mandatory on the asset record.
The fields Component and Component Position will be found in the Advanced Search dialog.
If you searched elsewhere on the Assets application, you would find the Component Code in the table details of both Subassemblies and Spare Parts. Subassemblies also has the Component Position, but it is not on the Spare Parts table details instead it shows the Position Code Required setting from the Item Master.

On the Locations (Tr) application the Component field exists, but not the Position Code. This did not surprise me as the Position Code is replacing the need for additional locationsA physical place where assets exist and where work can be performed. More. There was no reference to the Component Code or Component Position on the Assets tab table details, but that would be easily remedied with a small amount of configuration.
The Component field had the same menu with the Open Drilldown action.
Maintenance Codes on Item Master (Tr)

On the Item Master (Tr) application there is a Component field with the same three actions in the details menu. Above where the image would be displayed is the Position Code Required field.
I wondered whether this is set when you select a Component Code with the Position Code Required field set, this is not the case. I created three more Component Codes, 017, 017-001, and 017-001-001 Tire, Pneumatic, Radial, Lug Tread and on this component code I had set the field Position Code Required. When I selected 017-001-001 onto Item 11R22.5GT-9 its Position Code Required field did not change.
I have now set Position Code Required for this item. The field help for this field says “Check box that specifies whether you must also enter a position code when you enter this item on plans, actuals, tasks, PO lines, PR lines, etc. For example, a tire might require a position code to indicate the location of the tire on the vehicle.”
Maintenance Codes on Job Plans (Tr) and Work Order Tracking (Tr)
You’ll find both the Component Code and the Component Position fields appearing on the Job Plan header, its tasks, and on the Planned Labor, Planned Material, Planned Services and Planned Tools tabs. A quick scan of the Work Order Tracking (Tr) application and we find the same two fields on the header, tasks and planned labor, materials, services and tool tabs.
The two fields do not exist on the Multiple Assets, Locations and CI table in the Work Order Tracking (Tr) application, and they do not exist in the associated object MULTIASSETLOCCI. The reason for this is because a primary driver of these two codes, especially the component code is to understand maintenance costs and there is no costing in this table.

Halfway down the Job Plans (Tr) main tab are the Component and Component Position fields. When I selected 017-001-001 where the Position Code Required field was set the Component Position field did become mandatory. I selected CSA1 – Curb Side, Axle 1.
I set the same Component Code and Position Code on a task, a planned labor, a planned service and a planned tool, and in all places the Position Code became mandatory.

On the Job Plans Material tab, I was a bit surprised after selecting the Item 11R22.5GT-9 which has a component code that it was not populated in the Component field. The Component Position was set mandatory, and this can only be coming from the Item Master record. It is then possible to add a Component Position without a Component and to save the record as the screenshot shows. This feels like a defect to me, but I have not reported it to IBM, I’ll leave that to those who have more experience in the Transportation Industry Solution.
I have set the Component Code to 017-001-001, saved and made the Job Plan active by changing its status.

On the Work Order Tracking (Tr) application for a new work order I applied my test job plan, and the Component and Component Position fields were filled on the work order header, task and on each of the planned labor, material, service and tool records. I also noted that the Component Position field was marked as mandatory in each place.

When I created a new Work Plan Material record and selected item 11R22.5GT-9 which has a Component Code, the Component Code field was not populated. There is no Component Code field on the INVENTORY object, therefore it is not expecting to derive the code from there.
Both the Component and Component Position fields will be found in the Quick Reporting (Tr) application.
Maintenance Codes on Purchase Requisitions (Tr) and Purchase Orders (Tr)

I’m in the Purchase Requisitions (Tr) application and on the PR lines, the pair of fields Component and Component Position will be found. When I selected the item 11R22.5GT-9 which has a component code the Component field was not defaulted from the item, the same applies in the Purchase Orders (Tr) application. I cannot understand the purpose of the Component field on the Item Master (Tr) application, and I have raised an IBM case to see if we can find out.
When you enter a Work Order which has a Component and Component Position on the work order header these fields are copied to the PR line. If you reference a Work Order and WO Task the Component and Component Position are derived from the task.
Maintenance Codes on Assignment Manager (Tr) and Mechanics Clipboard (Tr)

The Component and Component Position appear in the Work Order Details of the Assignment Manager (Tr) application, but they do not exist in the Assignment tab on Work Order Tracking (Tr), they are populated from the associated Work Plan Labor record. Incidentally, the Assignments Tab does not appear at the top of the Work Order Tracking (Tr) application but as an extra tab between Tools and Repair Orders on the Plans tab.
The Mechanic’s Clipboard is a clone of Assignment Manager, and the two fields will also be found in the Work Order Details.
Where else are Maintenance Codes recorded?
I’ve found these references to Component and Component Position codes:
- On Inventory Usage lines there are both Component and Component Position fields. The Add/Modify Reservations does not show these two fields, but they do exist in the INVRESERVE table.
- The Component is shown in the Inventory (Tr) List tab and at the top of the main record, it is read-only as it is looking at the field from the associated ITEM record.
- Both the Component and Component Position fields are in the MATUSETRANS object. These will be seen in the Work Order Tracking (Tr) and Actual – Materials tab.
- Both the Component and Component Position fields are in the MATRECTRANS object. These will not be seen in the Receiving (Tr) application.
- Both the Component and Component Position fields will be found in the Invoices (Tr) application on the Invoice lines.
- Both the Component and Component Position fields will be found in the Request for Quotations (Tr) application on the RFQ lines.
- Both the Component and Component Position fields will be found in the Asset Templates (Tr) application.
- Both the Component and Component Position fields will be found in the Logs (Tr) application in the Log Problems table.
- The Component field will be found in the Asset Warranty Contracts (Tr) application on the Coverage and Coverage for Asset tables. There is no Component Position field in this application.
- The Component field will be found in the Item Warranty Contracts (Tr) application on the Coverage table. There is no Component Position field in this application.
- Both the Component and Component Position fields will be found in the claim header and claim lines in the Warranty Claims (Tr) application.
- Both the Component and Component Position fields will be found in the Labor Reporting (Tr) application.
The Component and Component Position codes do not exist on a Campaign.
Component Positions will be found in the Axle Positions table of the Axle Configurations (Tr) application.
As I deep dive into other features of Maximo for Transportation I’ll no doubt reference the Component and Component Position codes, and I’ll update this article if I discover other areas where the fields will be found.


