Share

Tandem to Maximo - Add Asset URL

Description

The solution reads the assets from Tandem, generates an Asset URL for each asset in Tandem and adds it as attachment to the appropriate Maximo Asset.

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.
Generate a WebSafe URL for each asset in Tandem The solution generates an encrypted web safe url for the assets that are mapped to Maximo which are like a direct link to the asset from Maximo to Tandem.

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

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.

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

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 - Trigger

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 that need to be configured in the scheduled data stream are:

Parameter Name Description
maximoPropertiesCategory The category name in Tandem where the properties are defined.
maximoAssetNumPropertyInTandem The user defined property in Tandem which stores the Maximo AssetNum.

Autodesk Tandem Service Plugin - Read Assets

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 - Read Attachments

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.

HTTP Service — Add Attachment

Parameter Name Description
Authentication Method The authentication method to be used for Maximo APIs.
Authentication Value The authentication value for the method selected above.
Headers The value for this headers is a JSON object which is provided in the Appendix Section.
Base URL The base URL for the Maximo API's asset to which the url will be attached. Please note, the url format contains assetid which is retrieved from the incoming data of the previous plugin. So, do not change anything in the url except for the part which says <BASE_URL>

URL Format: https://<BASE_URL>/maximo/api/os/mxapiasset/{data.assetid}/doclinks?lean=1

Detailed Solution Overview

This section details all components involved in the solution pipeline, including their configuration and purpose.

Pipeline

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 from the Tandem Facility. The asset filter and the attribute filter are sent as overrides from the convertor prior to this plugin. The plugin reads all assets under the Category configured in the scheduled data stream and applies the filters to read only those assets that match the criteria. The tandem service itself prepares the Asset URL for each asset in the Tandem facility.

IBM Maximo Service

The maximo service plugin takes the data received from the previous convertor plugin which contains the oslc.where filter along with the oslc.select attributes to read the assets matching the filter and also load the attachments for the assets.

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: Based on the data received from Tandem, this convertor prepares the oslc.where asset filter for the Maximo APIs. The key is the oslc.select which contains the "assetid, assetnum, doclinks{*}", and the oslc.where which is a dynamic value that is set using the list of asset numbers received from the Tandem service plugin. This filter is then sent to the Maximo service plugin to read the assets.

Check URI Exists

The convertor checks if the Asset URL generated by the Tandem service plugin already exists in the attachments that are loaded for the asset in Maximo. If it does not exist. If the incoming Asset URL does not exist in the attachments, the convertor creates HTTP POST body to add the attachment to the Maximo asset. The HTTP POST body is then sent to the HTTP service plugin to add the attachment to the Maximo asset. Along with this the convertor also sends the assetid for the HTTP service plugin to consume and prepare the URL.

HTTP Service

The generic HTTP service plugin that will connect to the Maximo service and sends the url generated as an attachment to the asset id. The asset id is passed in from the previous plugin, which is the one received from the Maximo service plugin.

Troubleshooting

If you encounter issues, check the following:

  1. Data Not Reading from Tandem
  • Verify the attribute in Asset Filter matches 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
  1. Other Issues
  • Check the Exception tab in each plugin for detailed error messages
  • Verify all required parameters are properly configured
  • Ensure API credentials have appropriate permissions

Appendix

  • Scheduled Data Stream

    {
      "maximoPropertiesCategory": "Maximo",
      "maximoAssetNumPropertyInTandem": "AssetNum"
    }
  • HTTP Service - Add Attachment (Headers)

    {
      "Accept": "application/json",
      "content-type": "application/json",
      "slug": "data.assetid",
      "content-location": "data.url",
      "x-document-meta": "URL/Attachments",
      "x-document-description": "Tandem hosted"
    }

Was this information helpful?