IBM Support

How to manually export data for non-persistent tables using Maximo Integration Framework

How To


Summary

In the Maximo Integration Framework, users have the option to manually export data using the Data Export button in the External Systems application to an external system if data needs to be resent for any reason, this functionality has a limitation for Object Structure that uses non-persistent tables. One way is to update data within the User Interface (UI), such as changing the description slightly, on those records that need to be resent. This action will trigger the event listener to fire and send the updated records to the external system.  However, this functionality has a limitation.  For object structures that contain non-persistent objects, this function is not available.  The object structure MXGLTXN is an example of object structure containing non-persistent objects.

In this case, a workaround is needed to resend MXGLTXN data to an external system.  Since these records cannot be updated directly using the UI, another method must be used such as Escalations, Automation Scripts, or a custom Java Class that will update an attribute on the records that you need to send to cause the event listener to fire and send the data outbound to the external system. Below you will find a simple way to accomplish this task using an Escalation.

Steps

Navigate to the Escalations application and create a new Escalation:

In this example, we are using the INVOICETRANS table.  Note that this logic will be the same for other transaction objects. Check which attribute of the desired table you will update which will not affect your business logic. In this example, we are using the externalrefid attribute, this attribute is null for all records in this scenario.


The first step is to update all records that you want to export, filling in externalrefid with a value such as “TOEXPORT” as shown below:

Ensure you commit the changes to the table.
The next screenshot shows how to create the escalation.
Navigate to the Escalations application and create a new escalation.

image-20240401112050-2

In the Applies To field, set the value to the destination table, in this case, it is INVOICETRANS.

Next, set your Condition:

Since we updated externalreid values in the table directly, we want this escalation to find all records containing this value.  In the Condition field, enter:

externalrefid ='TOEXPORT'

Next, set the Schedule.  This escalation will only affect records on the first run of the cron task because all records will be updated by it to have a new value which will no longer match the criteria for this escalation to find any records on the second or subsequent runs.

Click the New Row button in the Escalation Points table window. You do not need to fill in any values.

Click on the Action tab and create a New Row. Go to Actions application and create a new Action as below:

image-20240401112050-3

In the above example of the action for this escalation to take when it finds matching records, we are changing the externalrefid value from TOEXPORT to EXPORTED.

Click Return with value and Save. Your Escalation will look similar to the screenshot below:

image-20240401112050-4

Click on Select Action => Validate. If everything is OK click on Select Action => Activate/Deactivate Escalation.
Once the escalation cron runs, the desired records will be updated causing the event listener to fire, and the records to be sent to their external system.

image-20240401112050-5

After the records are updated successfully, you can disable the escalation.

Using the Oracle Adapter:

The Oracle Adapter uses a non-persistent attribute called SOURCEMBO to validate some business rules. This attribute will not be automatically populated by the Escalation.  For that reason, we will need to create an additional action to populate the expected information.

In our example, we are using the INVOICETRANS table.  Create a second action as shown below:

image-20240401112050-6

Set the Parameter/Attribute value to SOURCEMBO and the value to ‘INVOICETRANS’.

This action must be executed before the EXTERNALREFID action. Check the value of the sequence and ensure that you set the sequence value for this action to a value lower than the sequence value of the action that populates the EXTERNALREFID attribute.
image-20240401112050-7

Next, navigate to Object Structure application and search for MXGLTXN. That object structure has an Outbound Definition Class. (psdi.iface.app.gl.MoutGLProcess). This class is responsible for skipping updates to GL transactions and has no other purpose. For that reason, this class will always evaluate these records has having been updated rather than created/inserted resulting in updated records being skipped from going outbound.  Remove this class file and save the object structure.

Next, you will activate the escalation.

Once all records have been sent to the external system, deactivate the escalation and restore the outbound class file on the object structure.


We strongly recommend that this process be performed when no other transactions are flowing to your external system since removing the class file can cause unintended results for transactions that originate inside Maximo.

Document Location

Worldwide


[{"Type":"MASTER","Line of Business":{"code":"LOB59","label":"Sustainability Software"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSLKT6","label":"IBM Maximo Asset Management"},"ARM Category":[{"code":"a8m50000000CbFGAA0","label":"Integration"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"}]

Document Information

More support for:
IBM Maximo Asset Management

Component:
Integration

Software version:
All Versions

Document number:
7145589

Modified date:
01 April 2024

UID

ibm17145589

Manage My Notification Subscriptions