MIF – Object Structures
January 12, 2010 in Maximo, Maximo 7, Maximo: MIF by Michael Chrisman 4 Comments
In Maximo 7, the Object Structures has changed a little from the Maximo 6’s version. An MIF Object Structure is made up of one or more Maximo Business Objects (MBOs). The basic functionality is the same as is in 6, but the screens have changed a bit. Before we look at the screen, we need to talk about names. In Maximo 6, this was call and Integration Object. In Maximo 7, these are called Integration Object Structures (from the menu structure to access the screen) or you will also see in the help them being referred to as MOS or MIF Object Structure (MOS).
Let’s have a look at the main screen.
This screen is accessed from the Go To->Integration menu option.
FIELD DESCRIPTION Object Structure This is a unique name for the object. This is a required field. Description (untitled) This is a field where you can give a description of the Object Structure. Consumed By This indicates what service will “consume” this Integration structure. Options are INTEGRATION, REPORTING and MIGRATIONMGR Outbound Definition Class Java class for filtering and processing for outbound records. This can be used to filter records that Maximo generates. This is used only by Publishing Channels or for filtering query responses. Inbound Processing Class Java class for processing inbound data. This class can be used to customize the processing of the MBO data (create/update/delete). It contains no logic for query responses. Query Only This check box indicates if the MOS is for querying data only. If checks, it will not allow records to be create or modified using the object structure. Self Reference This check box indicates if the MOS is self referencing. Support Flat structure This check box indicates if the MOS will support a flat structure. Although this only makes sense if you have more than one MBO in the MOS it is still required to check this if 1) you want to use flat files or Integration tables and/or 2) you want to assign Aliases to fields in the MOS.
The bottom section of the screen is where you add the MBOs to you Object Structure.
This is pretty much unchanged from the Maximo 6 screen.
FIELD DESCRIPTION Object This is the name of the MBO. Parent Object This is the name of the MBO that is the parent object. Object Location Path This is auto filled in by Maximo. Reporting Description This is used when the Consumed By is ‘REPORTING’ Relationship This is the name of the relationship used for join child to the parent object. Object Order This determines the order of the object in the structure.
Next we will look at the options under the Select Action menu.
The first option is the Exclude/Include Fields option. This screen allows you to mark fields to be either included or excluded from the Object structure.
On this screen you can place checks by the persistent fields you want to exclude, and checks by the non-persistent fields you want to include. By default, all persistent fields are included. This means any new persistent fields added to one of them MBOs the MOS includes will automatically be added to the MOS.
Next option is the Generate XML option. This screen displays what the XML structure of the Object Structure will be. When you select this option you will see:
Once you click OK, you will see:
This is the XML structure of the object, not the whole integration message. This XML will be part of the integration message.
The last option is the Add/Modify Alias option. If, when you select this option you see this message:
Then you have to check the “Support Flat Structure” check box. This is the Add/Modify Alias Screen:
This screen allows you to create ‘alias’ column names. This is useful if the message coming in has different column names than what Maximo is expecting.
There are two very noticeable omissions from the Maximo 6 screens.
- Merge Object. Merge Objects are no longer supported in Maximo 7
- User Fields. Although this option has been removed, the functionality has not. If you need to add a ‘user field’ to an integration object, then you have to create a non-persistent field on the base MBO, then mark it for inclusion in the Integration Object. You can then access the field in you User exit or Processing Rule. Although this is a little more more (you have to do a Database Configuration) it does give you more functionality as where User Fields were VARCHAR(50), this option allows you to define the field the way the data really is (any supported Maximo data type).
There is one more option that directly affects integration object structures but is not part of this screen. This is Restricted fields. A restricted field, as far as integration is concerned, means that any ‘auto’ functionality will not be applied to inbound messages. This includes the ID fields. You can access this option by Go To->System Configuration->Platform Configuration->Database Configuration. Then select your MBO and edit it.
From the Select Action menu, select Restrict Attributes.
Now you can check/uncheck any attribute you want to restrict.
I’m wondering about the “Self Reference” option (there’s not much documentation about that).
I tried to create an Object Structure with MBO LABORCRAFTRATE, self referencing with relationship “laborcode=:laborcode and orgid=:orgid”. The idea was to get an outbound XML when I add/remove a craft to/from a labor, with the XML then listing all associated crafts of that labor. But this causes a “major exception” error when I try to make that labor/craft transaction.
Are you aware of any limitations regarding self reference ?