Category Archives: Integration

Maximo MIF – Enterprise Service Rules

Maximo has a powerful integration framework called the MIF. Often when integrating with external systems you need to apply certain rules or transformations to the incoming or outgoing data. Basic transformations can easily be performed without having to resort to writing code.

CHARTOFACCOUNT (COA) is a common integration. Maximo 7.5+ determines whether a given COA record is able to be used on records based on its ACTIVEDATE/EXPIRYDATE fields. In Maximo the Active flag is readonly and updated based on the Active and Expiry dates.

1

The incoming integration needs to replicate the rules in the GUI which means they will provide ACTIVE/EXPIRY dates.

If COA is ACTIVE:

  • ACTIVEDATE=Now

  • EXPIRYDATE=(Null)

If COA is INACTIVE:

  • ACTIVEDATE=Now

  • EXPIRYDATE=Now

If the external system Maximo is integrating with only has boolean ACTIVE/INACTIVE we can replicate the above logic with integration rules in the Enterprise Services application.

2

Create 2 new integration rules:

On Activate:

  1. RULE = SETACTIVE

  2. ACTION = SET

  3. [Add/Modify Conditions]

    1. FIELD = ACTIVE

    2. EVALUATION TYPE = EQUALS

    3. EVALUATE WHEN = ALWAYS

    4. VALUE = 1

  4. [Sub-Record Fields] – Create all 3

    1. FIELD = ACTIVEDATE

    2. REPLACEWHENNULL = [Checked]

    3. VALUE = &SYSDATE&

    1. FIELD = EXPIREDATE

    2. REPLACEWHENNULL = [Checked]

    3. VALUE = [Null]

    1. FIELD = ACTIVE

    2. REPLACEWHENNULL = [Checked]

    3. VALUE = [Null]

3 4

On Deactivate:

  1. RULE = SETINACTIVE

  2. ACTION = SET

  3. [Add/Modify Conditions]

    1. FIELD = ACTIVE

    2. EVALUATION TYPE = EQUALS

    3. EVALUATE WHEN = ALWAYS

    4. VALUE = 0

  4. [Sub-Record Fields] – Create all 3

    1. FIELD = ACTIVEDATE

    2. REPLACEWHENNULL = [Checked]

    3. VALUE = &SYSDATE&

    1. FIELD = EXPIREDATE

    2. REPLACEWHENNULL = [Checked]

    3. VALUE = &SYSDATE&

    1. FIELD = ACTIVE

    2. REPLACEWHENNULL = [Checked]

    3. VALUE = [Null]

Now the external system can update the Maximo COA by simply setting the ACTIVE=1/0 and not have to worry about the activate and expiry dates. A basic web service can be tested with the following:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:max="http://www.ibm.com/maximo">
<soapenv:Header/>
<soapenv:Body>
<max:SyncMXCOAInterface>
<max:MXCOASet>

<max:CHARTOFACCOUNTS>

<max:ACCOUNTNAME>Test Account</max:ACCOUNTNAME>
<max:ACTIVE>0</max:ACTIVE>

<max:GLACCOUNT>
<max:VALUE>A.B.C</max:VALUE>
</max:GLACCOUNT>

<max:GLCOMP01>A</max:GLCOMP01>
<max:GLCOMP02>B</max:GLCOMP02>
<max:GLCOMP03>C</max:GLCOMP03>

<max:ORGID>ATH_THRM</max:ORGID>

</max:CHARTOFACCOUNTS>
</max:MXCOASet>
</max:SyncMXCOAInterface>
<!--<span class="hiddenSpellError" pre=""-->soapenv:Body>