Tandem to Maximo - Create Assets
Description
This solution enables bulk creation of assets in Maximo using asset data sourced from Tandem, ensuring asset names remain consistent across both systems. It is intended for users with an already configured and operational Tandem Facility who wish to initialize Maximo with all assets from Tandem. If an asset already exists in Maximo, the solution will automatically update it to reflect the latest information from Tandem.
Solution Features
| Feature | Description |
|---|---|
| Read Assets from Tandem | Uses the Attribute Filter and Asset Filter features to read all assets from Tandem. |
| Create Assets in Maximo | Uses Maximo's bulk create API to create up to 50 assets per API call, staying within rate limit thresholds. |
| Update Existing Assets | Performs a MERGE action to update assets in Maximo if an asset with the same AssetNum already exists in the specified site. |
Pre-Requisites
This solution assumes that access credentials with the appropriate permissions are available to read and write data in Tandem and to access the IBM Maximo API.
Autodesk Tandem
Before starting this solution, ensure that a Tandem facility is fully set up. For detailed instructions, refer to the Tandem Help. All required properties must be present in the Tandem facility’s template, as listed in the User-defined parameters section.
Register in Autodesk Platform Services (APS)
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.
To obtain a client id and client secret for authentication, you can follow the tutorial found here.
To add the client id and secret to the Tandem facility, please follow the tutorial found here.
User-defined parameters - Tandem
The Tandem facility for this solution will need to have a category with the following minimum set of user-defined parameters configured in Tandem. These parameters will be used to map Tandem asset properties to Maximo.
The below configuration is a default one provided in the Appendix section. The parameters below are assumed to be in a
category named Maximo. If you wish to use a different configuration, you can create a new category and configure them
accordingly.
| Parameter Name | Description |
|---|---|
| AssetNum | The unique asset number used to identify the asset in Maximo. This is the primary key for asset identification. |
| AssetTag | The asset tag used in Maximo, which can be different from the asset number. |
| Moved | Indicates whether the asset has been moved. This is a boolean value. |
| OrgId | The organization ID in Maximo where the asset belongs. This is a mandatory field. |
| SiteId | The site ID in Maximo where the asset is located. This is a mandatory field. |
IBM Maximo
For IBM Maximo API, the logged-in user must have the correct permissions set for API access. Follow the documentation here.
An API user must be 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 IBM Maximo Help.
Basic Setup - Minimum Configuration
This section covers the minimum configuration required to get the solution running. The necessary parameters and their values for each plugin are detailed below. Please follow the instructions on the solution walkthrough to set up the solution.
Scheduled Data Stream
All necessary configuration for the solution is done through the Tandem Connect's Scheduled Data Stream plugin at the beginning of the pipeline. This plugin allows users to set up property mapping between Tandem and Maximo applications, enabling the transfer of asset data.
The scheduled data stream is the integration's starting point, allowing users to configure property mapping between Tandem and Maximo applications. A pre-defined JSON template is provided in the Appendix section, which can be copied and customized as needed.
The mandatory parameters under the Maximo Defaults section are:
siteIdorgId
The mandatory parameters under the Tandem Configuration section are:
Tandem Asset Number Property(e.g.,Maximo.AssetNum)Tandem to Maximo Mapping(a JSON object mapping Tandem properties to Maximo properties). If unchanged, the default mapping will be used as shown in the Appendix section.
The all tandem properties follow the naming convention of <Category Name>.<PropertyName>. This allows for
easy identification and mapping of properties in the Tandem facility. For example, if the category is Maximo, the
property AssetNum would be referenced as Maximo.AssetNum and also gives users the flexibility to create multiple
categories for different applications or purposes.
Autodesk Tandem Service Plugin
For the Autodesk Tandem service plugin, enter the credentials created while setting up the application in Autodesk Platform Service (APS) and the tandem facility details.
| Parameter Name | Description | Required |
|---|---|---|
| Client ID | The client ID from your APS account setup | Yes |
| Client Secret | The client secret from your APS account setup | Yes |
| Facility URN | The URN of your Tandem facility | Yes |
| Data Processing | The type of data processing to perform | Yes, make sure its set to Retrieve Generic Assets |
IBM Maximo Service
| Parameter Name | Description | Required |
|---|---|---|
| Authentication Method | The authentication method for Maximo APIs | Yes |
| Authentication Value | The corresponding authentication value | Yes |
| Maximo Base URL | The Maximo application base URL (must use HTTPS) | Yes |
To identify the Maximo Base URL, you can use the URL you use to access Maximo in your browser. For example, if you access https://maximo.example.com/maximo, then the Maximo Base URL would be https://maximo.example.com. Or you can find the base URL in the Maximo API documentation. Alternatively, some Maximo installations may have a specific API endpoint, such as https://maximo.example.com/api which will be configured in the System Configuration > Platform Configuration > System Properties and filter for
mxe.oslc.restwebappurl.
Detailed Solution Overview
This section details all components involved in the solution pipeline, including their configuration and purpose.

Autodesk Tandem Service
The service reads assets that are not levels or rooms and bundles them in batches of 50. Configuration includes:
Data Processingset toRetrieve Generic AssetsAsset FilterandAttribute Filteroverride from Scheduled Data Stream- The Attribute Filter includes Tandem's unique asset number property (e.g.,
Maximo.AssetNum).
IBM Maximo Service
Configured with the UPSERT action for the Assets entity, the service:
- Expects an array of assets with a unique
keyField - Creates new assets that don't exist
- Updates existing assets based on the keyField
- Processes all actions in one bulk operation
Converters
Prep Tandem: A JavaScript script/module that prepares
AssetsFilterandAttributeFilterbased on the scheduled data stream configuration.Prep Maximo: A Node.js script/module that:
- Transforms Tandem asset information into Maximo-compatible JSON
- Processes batches of 50 assets from the Tandem Service
- Prepares the array for the Maximo service plugin
Troubleshooting
If you encounter issues, check the following:
Data Not Reading from Tandem
- Verify the attribute in
Asset Filtermatches the Maximo Asset number property in Tandem - Confirm the attribute exists in the facility template
- Check if assets use the correct Classification with the attribute
- Verify the attribute in
Other Issues
- Check the
Exceptiontab in each plugin for detailed error messages - Verify all required parameters are properly configured
- Ensure API credentials have appropriate permissions
- Check the
Appendix
Scheduled Data Stream Configuration
{
"Tandem Configuration": {
"Tandem Asset Number Property": "Maximo.AssetNum",
"Tandem to Maximo Mapping": {
"Maximo.AssetNum": "assetnum",
"Maximo.AssetTag": "assettag",
"Maximo.Moved": "moved",
"Maximo.OrgId": "orgid",
"Maximo.SiteId": "siteid",
"Common.Level": "location",
"Common.Name": "description"
}
},
"Maximo Defaults": {
"orgid": "",
"siteid": "BEDFORD",
"moved": false,
"changeby": "Tandem Connect",
"defaultAssetStatus": "NOT READY"
}
}
