Share

Tandem to Maximo - Create Assets

The solution reads the assets from Tandem and bulk creates them in Maximo with the same name. This solution is for users who have their Tandem Facility all configured, up and running and want to initialise the Maximo with all assets from Tandem.

Pre-Requisites

Tandem:

A Tandem facility has to already be setup before starting this solution. For more information on setting up Tandem Facility please see the Tandem Help Docs here. The User-defined parameters section lists all properties that should exist in the Tandem facility's facility template or should be created and added there. Each asset in Tandem that needs to be mapped to an asset in Maximo must should have the Maximo Asset Num set in a user defined property. This is a manual one time configuration.

IBM Maximo:

An API user created and configured in IBM Maximo with appropriate permissions to read and write asset data. For information on how to create the API key, please refer to the help docs here.

Security

This assumes that access credentials with the appropriate permissions are available to read and write data to Tandem and to access the IBM Maximo API.

For Autodesk Tandem, an application with access to the Tandem Data API should be created in Autodesk Platform Services. The client ID from this application should be added as a user in the Tandem facility with Edit/Manage permission.

On the other hand, for IBM Maximo API, the logged in user must have the correct permissions set for API access. Follow the documentation here.

User-defined parameters

The Tandem facility for this solution will need to have a template with the following user-defined parameters setup in Tandem. These should all be created under the category Maximo.

Property Name Description Data Type
OrgId Organization id which is the account represented on IBM Maximo. This is usually 'Autodesk', unless the client wants to rename this otherwise. String
SiteId The building id which represents a facility in Tandem. String
AssetId The unique id of an Asset coming from IBM Maximo. Number
AssetNum The asset name or num from IBM Maximo which is the same as element name in Tandem. String

Solution Features

Feature Description
Read Assets from Tandem The solution starts off by reading all assets from Tandem. This is achieved by using the Attribute Filter and the Asset Filter features of the plugin.
Create Assets in Maximo The solution uses the bulk create option provided by the Maximo APIs to create 50 Assets in one API call. This allows the solution to be within the rate limiting threshold.

Basic Setup

This section provides the bare minimum configuration required for the solution to be up and running. Each plugin listed below will provide the necessary parameters to be filled in and also their values if needed.

Scheduled Data Stream:

The scheduled data stream is the starting point in the integration which allows users to configure the user-defined property mapping between Tandem and Maximo applications. A pre-defined JSON is provided (in Appendix below) which can be copied and edited as per requirement. The mandatory parameters are under the defaults section which are siteId and orgId. Rest of all can be used as is.

Autodesk Tandem Service Plugin:

The Tandem service plugin needs the below parameters configured.

Parameter Name Description
Client ID The client id that was created while setting up the APS account.
Client Secret The client secret that was created while setting up the APS account.
Facility URN The facility urn for the tandem facility where the properties are updated.
Asset Filter Please copy the JSON into the Asset Filter Parameter from the Appendix.

HTTP Service - ReadMaximo

Parameter Name Description
Authentication Method The authentication method to be used for Maximo APIs.
Authentication Value The authentication value for the method selected above.

Apart from the above properties, the HTTP Service plugins each has a different base URL and only the part that represents the base url must be changed. Below section explains in detail.

HTTP Service - ReadMaximo

BaseURL - https:///maximo/api/os/mxapiasset?lean=1&oslc.select=assetid,assetnum,status,siteid&oslc.where={data.tcMetadata.maximo.filter}&oslc.pageSize=1000

HTTP Service - CreateAssets

BaseURL - https:///maximo/api/os/mxapiasset?lean=1

DO NOT CHANGE ANY OTHER PART OF THE URL, EXCEPT FOR THE .

Advanced Setup

This section provides details about all the components involved in the solution including the configuration needed and their purpose on the pipeline.

Solution Overview

Pipeline

The solution reads the assets from a Tandem instance, and for each asset the solution checks if the asset exists in Maximo. If does not, then it creates the asset into Maximo. Then, the flow prepares the user defined properties that needs to be updated in Tandem.

Plugins

Scheduled Data Stream

The scheduled data stream is the start of the pipeline where we can configure a schedule to determine how frequently it should run and update the properties. The plugin provides a way to mention the client specific properties from Maximo as a JSON object. The JSON object provided in the Appendix can be copied and edited as per the client configuration.

Autodesk Tandem Service

The Tandem service is configured to read assets which are not levels or rooms and bundle them into a batch of 50 assets. This is achieved by the Asset Filter attribute which is as shown below, where it uses the Tandem Element's Common.Flags attribute set to be not equal to '5' for rooms and '16777217' for levels.

[
  {
    "attribute": "Common.Flags",
    "operator": "!=",
    "value": 5
  }, 
  {
    "attribute": "Common.Flags",
    "operator": "!=",
    "value": 16777217
  }
]

The Attribute Filter is taken as an override from the Scheduled Data Stream as below, where the field that contains the AssetNum in Tandem is appened at the end in this case Maximo.AssetNum. This allows the plugin to read only those assets which has this attribute.

Throughput Controller

This plugin enables solution to send a limited number of API calls to the Maximo service, ensuring we do not overload or exceed Maximo's rate limits. By default, the plugin is configured to send only 50 requests every 15 seconds. If this configuration needs to be adjusted, consider the number of requests sent is within the Maximo's rate limits. It is crucial to avoid generating an overwhelming number of API calls within a short period as the process may fail.

Convertor

Prep Tandem

The javascript code that prepares the AssetsFilter and AttributeFilter for the Tandem Service Plugin based on the configuration in the scheduled data stream.

Prep Maximo

This is a pure nodejs / javascript code which transforms the Tandem Asset information into a JSON object which is compatible with the Maximo APIs. The code utilizes the Bulk Create capability of the Maximo REST APIs as mentioned in the documentation. This plugin prepares the received 50 assets from the Autodesk Tandem Service and sends them all as an array to the Maximo service plugin.

Find Missing Assets

The convertor code takes a list of assets from Tandem and the corresponding assets from Maximo to do a difference based on the AssetNum field on both systems and find the missing assets to be created in Maximo. This is then bundled by the plugin and send to the HTTP Service plugin for a bulk create operation on Maximo.

HTTP Service

There are 2 instances of HTTP Service plugins in this integration both connecting to the configured Maximo instance to read and write asset data.

ReadMaximo

The generic HTTP service plugin that will connect to the maximo service and reads all assets for the given site id and the asset numbers received from Tandem.

CreateAssets

The generic HTTP service plugin that will connect to the maximo service and creates all the assets sent using the Maximo REST API's bulk create feature.

Troubleshooting

  • If the data is not being read from Tandem facility, then the below might be the places to look for issues.
    • Asset Filter: The attribute which is mentioned in the Asset Filter must match the user defined property that holds the Maximo Asset num in Tandem.
    • The attribute is used in the facility template for Tandem Facility.
    • The asset uses the Classification where the attribute is applied.
  • For all other exceptions and errors, the user must look at the Exception tab for each plugin.

Appendix

  • Scheduled Data Stream

    {
      "maximo": {
        "tandemCategory": "Maximo",
        "properties": {
          "AssetNum": "assetnum",
          "AssetTag": "assettag",
          "Moved": "moved",
          "OrgId": "orgid",
          "SiteId": "siteid",
          "Common.Level": "location",
          "Common.Name": "description"
        },
        "defaults": {
          "orgid": "",
          "siteid": "VF",
          "moved": false,
          "changeby": "Tandem Connect"
        },
        "options": {
          "defaultAssetStatus": "NOT READY",
          "matchAssetTagAndAssetNum": false
        }
      }
    }
  • Autodesk Tandem Service (Asset Filter)

    [
      {
        "attribute": "Common.Flags",
        "operator": "!=",
        "value": 5
      }, 
      {
        "attribute": "Common.Flags",
        "operator": "!=",
        "value": 16777217
      }
    ]
  • HTTP Service - CreateAssets (Headers)

    {
      "x-method-override": "BULK"
    }

Was this information helpful?