Skip to content
Maximo Integration Framework

Maximo MIF: Object Structures, Enterprise Services and File Import

Updated on · VAGANET EAM

In short. The MIF (Maximo Integration Framework) loads data through three layers: the object structure (which objects and attributes), the enterprise service (how the inbound message is processed) and the external system (who sends, under which rules). For a repeatable data init, use the AddChange action and check your files before import.

The Maximo Integration Framework is the foundation of all integrations in IBM Maximo Manage, including in MAS 9. Even when you load through the REST API or MxLoader, it is the MIF object structures that define what can be written. Understanding its building blocks avoids most rejections.

The MIF building blocks

ComponentRoleExample
Object structureDefines the main object, its children and the exposed attributesMXASSET: ASSET + ASSETSPEC + ASSETMETER
Enterprise serviceProcesses an inbound message for an object structure (rules, transformations)MXASSETInterface
External systemGroups the services allowed for a sender, with its queues and rulesEXTSYS1
Publish channelSends outbound data (outside the scope of loading)Outbound MXASSETInterface
EndpointTechnical destination of an exchange (HTTP, file, JMS)HTTP endpoint

Object structures useful for a data init

The object structures delivered as standard cover most loading needs:

  • MXDOMAIN (value lists), MXCLASSIFICATION (classifications);
  • MXVENDOR (companies), MXPERSON (people), MXCRAFT, MXLABOR;
  • MXOPERLOC or MXLOCATION (locations), MXASSET (assets), MXMETER (meters);
  • MXITEM (items), MXINVENTORY (inventory);
  • MXJOBPLAN (job plans), MXPM (preventive maintenance), MXWO (work orders).

Before loading, check in the Object Structures application that the attributes in your file are actually included: a column missing from the object structure is ignored or rejected depending on the channel. Attributes added by the project must be added there too. To avoid altering a standard object structure, duplicate it (for example ZZ_MXASSET) and work on the copy.

Processing actions

Each inbound record carries an action that dictates Maximo's behavior:

ActionIf the record does not existIf it existsUse
AddCreatedErrorStrict first load
AddChangeCreatedUpdated (absent children kept)Repeatable data init
ChangeErrorUpdatedBulk correction
ReplaceCreatedReplaced, children includedFull alignment
SyncCreatedUpdated and children alignedSynchronization from a master system
DeleteErrorDeletedHandle with care

AddChange is the reference action for a data migration: a file that is interrupted and then restarted creates no duplicates, and a correction can be replayed without preparation.

Importing a CSV or XML file

The MIF data import application accepts flat files (CSV, with configurable delimiter and text qualifier) or XML. For a flat file:

  1. declare the object structure as a flat structure (attributes without name conflicts, aliases if needed);
  2. associate the enterprise service with the external system and enable it;
  3. prepare the file: technical header (service name and action), then one row per record;
  4. import in immediate mode for a small volume, or through the inbound queue for a large volume.

With queue processing, messages in error are reviewed and replayed in the Message Reprocessing application. On hundreds of thousands of rows, this follow-up quickly becomes heavy: you then need a tool that groups errors by cause and replays only the corrected rows.

Sending over HTTP

Enterprise services can also be reached over HTTP at /meaweb/es/<external system>/<enterprise service>, and object structures at /meaweb/os/<object structure>, with an XML message. This is useful to reuse exactly the processing rules configured on the service. For JSON and bulk calls, the REST API is simpler: see the REST API guide.

The most common MIF errors

  • Record already exists: Add action on an existing key; switch to AddChange.
  • Value outside the list: status, type or unit missing from the target environment's domain.
  • Non-existent reference: location, parent asset or item not yet loaded; review the load order.
  • Missing required attribute or length exceeded.
  • Shifted columns: delimiter, qualifier or decimal separator declared incorrectly.
  • Insufficient permissions: the integration user has no access to the application or the site.

The quality control guide explains how to detect these errors before sending rather than after.

Frequently asked questions

What is an object structure in Maximo?

An object structure is the definition of an integration message: a main object (for example ASSET) and its child objects (specifications, meters), with the list of included attributes. It serves as the contract for inbound and outbound MIF exchanges and for the REST API. Standard object structures start with MX (MXASSET, MXITEM, MXPERSON); those designed for the REST API start with MXAPI.

What is the difference between Add, AddChange and Sync?

Add creates the record and fails if it already exists. AddChange creates the record if it does not exist and updates it otherwise, without touching children absent from the message. Sync creates or updates the record and also aligns its children with the content of the message. For a repeatable load, AddChange is the safest choice.

How do you import a CSV file into Maximo?

Through the MIF data import application: you choose an external system and an enterprise service whose object structure is declared as a flat structure, then import the file. Processing can be immediate or go through the inbound queue, where errors can be reviewed and replayed in the Message Reprocessing application.

Do the delimiter and text qualifier matter?

Yes for flat file import: they must match the file. An undeclared semicolon delimiter or an unclosed quote in a description shifts the columns. Check the file before sending.

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