IBM Maximo Data Init (MAS 9): Method and Data Load Order
Updated on · VAGANET EAM
In short. A successful Maximo data init rests on three rules: load in dependency order (an object can only reference an object that is already there), validate every file against the actual configuration of the target environment before loading, and make every load repeatable in the same way on DEV, UAT and production. Everything else (tool, format) follows from that.
Data init is the moment an empty IBM Maximo Manage environment becomes a usable tool: without locations, assets, items or job plans, no work order can be created. This guide describes the method proven on MAS 9 projects and the load order that avoids cascading rejections.
Data init, data migration, upgrade: what are we talking about?
The three terms often overlap in project plans, but they do not describe the same work:
- Data init: initial load of base and reference data into a new Maximo (new implementation, new site, new organization).
- Data migration: transfer of data from an existing system (legacy CMMS, spreadsheets, ERP, another Maximo instance), with extraction, transformation and cleansing. See the guide running a Maximo data migration project.
- Version upgrade: moving from Maximo 7.6 to MAS 9, which generally keeps the existing database. See upgrading from Maximo 7.6 to MAS 9.
In all three cases, the load itself obeys the same constraints: dependency order, the business rules Maximo applies to every record, and volume.
Define the scope before the first file
Most data init delays do not come from the load, but from a fuzzy scope. Before producing any file, freeze:
- The list of objects to load and their volumes (10,000 locations are not handled like 2 million inventory balances).
- The target model: organizations, sites, location hierarchy (systems), classification structure, value lists (ALN and synonym domains), added attributes.
- The business owner of each data set: they validate the files and settle duplicates.
- The environments and the number of rehearsals (mock loads) before production.
- The success criterion: how many rows expected, how many loaded, what rejection rate is acceptable (ideally zero, with a signed list of exceptions).
The Maximo data load order
Maximo validates each record on insert: an asset that references a missing location, an unknown item or a value outside the list is rejected. The order below, from most referenced to most dependent, applies to most Manage implementations. The names in parentheses are the standard object structures used by the MIF and the REST API.
| Step | Objects | Notes |
|---|---|---|
| 1. Foundation | Organizations, sites, currencies, organization options | Often configured by hand or through Migration Manager; few records. |
| 2. Reference data | Value lists (MXDOMAIN), calendars and crews, classifications (MXCLASSIFICATION), units of measure | Any value cited later must exist here. |
| 3. Companies and people | Companies (MXVENDOR), people (MXPERSON), crafts (MXCRAFT), labor (MXLABOR), person groups | MAS users are managed separately (see below). |
| 4. Locations | Locations (MXOPERLOC or MXLOCATION), hierarchies and systems | Parents before children; storerooms (type STOREROOM) included. |
| 5. Assets | Assets (MXASSET), specifications, meters (MXMETER, then asset meters) | Parent asset before child asset; location already present. |
| 6. Items and inventory | Items (MXITEM), organization items, inventory (MXINVENTORY), balances | The item must exist before its inventory in a storeroom. |
| 7. Maintenance | Job plans (MXJOBPLAN), routes, preventive maintenance plans (MXPM) | Reference assets, locations, crafts and items. |
| 8. History (optional) | Closed work orders (MXWO), meter readings | Keep to a minimum: costly, rarely used. |
Hierarchies are loaded in several passes: first all nodes without a parent, then level by level, or in a single file sorted by depth. An unsorted file produces "parent does not exist" rejections that disappear when you replay it, which hides the real errors.
The special case of users in MAS 9
In IBM Maximo Application Suite, user identity is managed by the suite (MAS Core) and synchronized to Manage. Loading user records directly into Manage tables is therefore not enough: the user must exist on the suite side (administration console, administration API or LDAP / SAML directory), then receive their Manage attributes (security groups, default site, associated person). Plan this batch separately, with the security team.
Which tool to load with?
Four families of tools coexist on MAS 9:
- The MIF (Maximo Integration Framework): object structures and enterprise services, import of flat or XML files through the data import application. See the MIF guide.
- The REST API (
/maximo/api/os/…): JSON calls authenticated by API key, suited to large volumes and automation. See the REST API guide. - MxLoader: a community Excel workbook that calls the API; convenient for modest volumes. See MxLoader and its alternatives.
- An industrialized load tool such as MAS9, which adds pre-load validation, resume after interruption without duplicates, per-environment tracking and proof of arrival.
The choice depends less on the technology than on volume, the number of environments and the need for traceability. On a project with several hundred thousand rows and three environments, the ability to replay and prove becomes decisive.
Validate before loading
A rejection during the load costs ten times more than an error caught in the file. Check each file against the configuration of the target environment, not of a reference environment, because value lists and attributes often differ between DEV and PROD:
- columns known to the object structure and required attributes filled in;
- maximum lengths and types (dates, numbers, decimal separator);
- values belonging to the lists (statuses, types, priorities, units);
- references to parents and linked objects present in the target or in a file already loaded;
- duplicates within the file itself (same key twice).
Then run a test batch of a few dozen real rows to measure throughput and detect the business rules that only Maximo applies (automation scripts, conditions).
Mock loads and cutover
Each rehearsal must follow the production runbook exactly: same files, same order, same checks.
Measure the duration of each step: it determines the cutover window. Plan for resume: a network outage
or a restart in the middle of a 500,000-row load must neither lose rows nor create duplicates. The
AddChange action (create or update depending on the key) makes a file safely repeatable.
After each load, reconcile: expected, loaded and rejected row counts, and read-back of a sample in Maximo. The guide data migration quality control details the method.
Data init checklist
- Scope, volumes and business owners frozen.
- Target model configured and identical on all environments (or differences listed).
- Files produced in dependency order, hierarchies sorted.
- Each file checked against the target environment.
- Test batch, then full load tracked row by row.
- Rejections fixed and replayed, with no duplicates.
- Numeric reconciliation and signed business validation.
- Runbook and durations measured for the production cutover.
Frequently asked questions
What is data init in a Maximo project?
Data init (data initialization) is the load of reference and base data into a new IBM Maximo Manage environment: organizations and sites, value lists, classifications, people, locations, assets, items, inventory, job plans and preventive maintenance (PM) plans. It comes before go-live and must be repeatable on every environment (DEV, UAT, PROD).
In what order should data be loaded into Maximo?
Always from the referenced objects to the objects that reference them: first the organization, sites and settings (currencies, calendars, value lists, classifications), then companies, people, crafts and labor, then locations (parents before children) and assets, then items, storerooms and inventory, and finally job plans, preventive maintenance plans and any history.
How many mock loads should you plan?
At least two full rehearsals on a representative environment before production: the first exposes mapping and configuration errors, the second measures durations and validates the cutover runbook. Large projects often plan three.
Should reference data be loaded from files or through configuration?
Structural settings (organization, sites, currencies, organization options) are usually configured by hand or through configuration migration (Migration Manager), because there are few of them and they are tied to options. Large volumes (locations, assets, items, inventory) are loaded from files through the MIF or the REST API.
Load your Maximo data without silent errors
MAS9 checks your files against each environment's configuration, resumes an interrupted load without duplicates, then reads Maximo back to prove every row arrived.
Discover MAS9