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://
HTTP Service - CreateAssets
BaseURL - https://
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

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.
- Asset Filter: The attribute which is mentioned in the
- 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" }