Share

Maximo to Tandem - Update Asset Properties

Description

This solution synchronizes asset data from Maximo to Tandem by updating user-defined parameters, providing actionable insights such as open work order and service request counts, dynamic URLs for each asset, and other key operational details. It also enriches Tandem assets with Maximo properties like installation date, description, and manufacturer, leveraging Tandem’s visualization capabilities for enhanced asset management.

Solution Features

Feature Description
Synchronize Maximo Assets to Tandem The solution reads assets from IBM Maximo and updates the Tandem facility with the asset properties.
Asset Properties The solution updates the Tandem asset properties with the Maximo asset properties.
Work Orders and Service Requests Counts The solution reads the work orders and service requests for each asset and updates the Tandem asset with the counts for each status.
Dynamic URLs The solution generates dynamic URLs for work orders and service requests in Maximo for each asset.

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, please 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 Maximo asset properties in Tandem.

Note:

The optional fields are marked as (Optional) in the table below. If these fields are not configured, the solution will still work, but the corresponding data will not be updated in Tandem.

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
NewAssetNum The new asset number or name changed. String
Description Asset Description String
Location Asset Location which is mapped to Element Level. String
StatusDescription A string representation of the Asset Status coming from Maximo. String
SerialNum Asset Serial Number String
Manufacturer Asset Manufacturer String
Vendor Vendor supplying the asset. String
GLAccount GLAccount number that is associated with the Asset. String
HealthScore The health score represented in a numeric format. Number
AccuracyEU The value summed with the Span, URV, and Reading EU fields to obtain the total accuracy of the asset. String
Priority Number
WorkOrdersUrl (Optional) The unique url in Maximo to all the work orders for the asset. Hyperlink
ServiceRequestUrl (Optional) The unique url in Maximo to all the service requests for the asset. Hyperlink
WOCount (Optional) The total work orders on this asset. Count(Integer)
SRCount (Optional) The total service requests on this asset. Count(Integer)
WOInProgress (Optional) The total work orders in the 'In Progress' status. Count(Integer)
WOWaitingMaterial (Optional) The total work orders waiting for Material. Count(Integer)
WOWaitingApproval (Optional) The total work orders on this asset that are approved and ready to be actioned. Count(Integer)
WOWaitingPlanning (Optional) The total work orders on this asset that are waiting for the planning to be complete. Count(Integer)
WOWaitingScheduling (Optional) The total work orders on this asset that are awaiting schedule to start action. Count(Integer)
SRNew (Optional) The total number of new Service Requests on this asset. Count(Integer)
SRQueued (Optional) The total number of Service requests that are queued for action. Count(Integer)
SRPending (Optional) The total number of Service Requests that are in 'Pending' status. Count(Integer)
SRInProgress (Optional) The total number of Service Requests that are in 'In Progress' status. Count(Integer)
FlexField (Optional) A Flex field with constant value which can be used for asset filter in Tandem. This field is optional. For example, this can be a parameter in the ‘Maximo’ Category called “Tandem Connect Pipeline” with a static value of “Maximo > Tandem Pipeline” for all assets to assist with troubleshooting down the road. 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.

IBM Maximo Stream Plugin

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
Entity The entity that must be read from Maximo. Yes, make sure its configured as Assets with WO&SR
Entity Parameter List The JSON object that configures mapping, filters and columns for the Assets, Work Orders and Service Requests No, if not specified, the default values would be used. See the plugin HELP for more information.
Static Data The JSON object which has the static data to be passed on to the next plugins in the solution. Yes, for the solution please copy the Static Data provided in the Appendix-2 below.

The Maximo Base URL can be determined by referencing the URL used to access Maximo in a web browser. For example, if accessing Maximo at https://maximo.example.com/maximo, the Maximo Base URL would be https://maximo.example.com. The base URL may also be found in the Maximo API documentation. In some installations, a specific API endpoint such as https://maximo.example.com/api may be configured in System Configuration > Platform Configuration > System Properties, filtered by the property `mxe.oslc.restwebappurl`.

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 APS account setup Yes
Client Secret The client secret from APS account setup Yes
Facility URN The URN of the Tandem facility Yes
Data Processing The type of data processing to perform Yes, For the scan its Retrieve Generic Assets and for update tandem must be Update Asset Properties

Detailed Solution Overview

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

UpdateAssetProperties

IBM Maximo Stream

The IBM Maximo Stream plugin reads the assets along with their WorkOrders and ServiceRequests from IBM Maximo and passes them to the next plugin in the solution. The below parameters are used to configure the plugin and its behavior:

  • Entity: The stream plugin reads the Assets with WO&SR entity from IBM Maximo. This entity is configured to read the assets along with their work orders and service requests. The fields to read for the assets, work orders, and service requests are defined in the Entity Parameter List parameter of the plugin.

  • Entity Parameter List: The Entity Parameter List parameter is a JSON object that defines the fields to read for the assets, work orders, and service requests. The default values are provided in the Appendix section of this document. Below is the default configuration for the Entity Parameter List, where each entity has configuration like selectwhich says which columns / properties for the entity to be read, filter which will filter out entities based on the condition provided,mapping which transforms the columns from Maximo into something that is specific to the destination in this case Tandem.

  • Static Data: The Static Data parameter is a JSON object that contains the configuration for the solution. This is provided in the Appendix section of this document along with a guide on how to configure it.

Converters

There are two instances of this plugin used in the solution.

  • Transform: This plugin contains the transformation logic of converting the Maximo properties to the Tandem user defined properties. This converter reads the data from Maximo and the configuration from the Scheduled data stream for the user defined properties. Then applies the transformation logic for the properties and the fixedProperties. The plugin calculates the values for all dynamicProperties and sends them as a batch to Tandem to be updated for the asset. If the user defined properties in Tandem are configured differently to the out-of-the-box properties provides, then the user has to update them accordingly as mentioned above in the Scheduled Data Stream plugin.

  • PrepTandem: The converter plugin which will prepare the incoming object to be of the format accepted by the Tandem Service. This creates a tcMetadata object that contains the facilityId, modelId and the assetId with the data object containing the properties and its values.

Throughput Controller

This plugin enables solutions to send a limited number of API calls to the Tandem service, ensuring we do not overload or exceed Tandem’s rate limits. By default, the plugin is configured to send only 50 requests every 15 seconds. If this configuration needs to be adjusted, it is crucial to avoid generating an overwhelming number of API calls within a short period.

Autodesk Tandem Service

The Autodesk Tandem Service plugin is responsible for scan and updating the assets with properties from Maximo in Tandem. There are two instances of this plugin used in the solution:

  • Retrieve Generic Assets: This instance is used to retrieve the assets from Tandem and update them with the properties from Maximo. It uses the tcMetadata object created by the PrepTandem converter plugin to update the properties for each asset.
  • Update Asset Properties: This instance is used to update the properties for the assets in Tandem. It uses the tcMetadata object created by the PrepTandem converter plugin to update the properties for each asset.

Troubleshooting

  1. Properties not being updated in Tandem
  • the possible issue will be with the User defined properties and the category they are created.
    • The attribute is used in the facility template for Tandem Facility.
    • The asset uses the Classification where the attribute is applied.
  • The asset in Tandem must exactly match the attribute value in the AssetFilter parameter of the Autodesk Tandem Service plugin at the end of the solution.
  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

Below are the configurations that can be copied into the plugin IBM Maximo Stream.

IBM Maximo Stream - Entity Parameter List

Section Field Description
Assets select Comma-separated list of asset fields to retrieve from Maximo.
filter Filter condition to select specific assets (e.g., by site or status).
mapping Maps Maximo field names to Tandem property names.
orderBy Field to order the asset results by (e.g., +assetnum).
Work Orders select Comma-separated list of work order fields to retrieve from Maximo.
groupByCountField Field used to group and count work orders (e.g., by status). This is required to be set to status, if status counts are to be displayed in Tandem.
ServiceRequests select Comma-separated list of service request fields to retrieve from Maximo.
groupByCountField Field used to group and count service requests (e.g., by status). This is required to be set to status, if status counts are to be displayed in Tandem.
  • The select and filter fields control which data is retrieved from Maximo.
  • The mapping object ensures Maximo fields are correctly mapped to Tandem properties.
  • groupByCountField is used to aggregate counts by status for work orders and service requests.
  {
  "Assets": {
    "select": "assetid,assetnum,newassetnum,description,location,status_description,moved,serialnum,manufacturer,vendor,location,glaccount,priority",
    "filter": "<UPDATE FILTER HERE>",
    "mapping": {
      "orgid": "OrgId",
      "siteid": "SiteId",
      "assetid": "AssetId",
      "assetnum": "AssetNum",
      "newassetnum": "NewAssetNum",
      "description": "Description",
      "location": "Location",
      "status": "StatusDescription",
      "serialnum": "SerialNum",
      "manufacturer": "Manufacturer",
      "vendor": "Vendor",
      "glaccount": "GLAccount",
      "healthscore": "HealthScore",
      "accuracyEU": "AccuracyEU",
      "priority": "Priority"
    },
    "orderBy": "+assetnum"
  },
  "Work Orders": {
    "select": "wonum,status,assetnum",
    "groupByCountField": "status"
  },
  "ServiceRequests": {
    "select": "ticketid,status,assetnum",
    "groupByCountField": "status"
    }
  }

IBM Maximo Stream - Static Data

The static data JSON object is used to provide configuration and additional parameters that are passed through the solution pipeline. This object controls how Maximo and Tandem interact, which properties are synchronized, and how work order and service request information is handled.

How to Configure

The static data object consists of two main sections:

  • Maximo Configuration: Contains connection details for IBM Maximo, such as the base URL, site ID, and the property name used for asset numbers.

  • Tandem Configuration: Defines how asset data is mapped and updated in Autodesk Tandem. This includes:

    • Classification: The category in Tandem where properties are stored (e.g., Maximo).
    • Maximo Asset Number Property: The property in Tandem that holds the Maximo asset number.
    • Work Order Configuration (Optional):
      • Add Status Counts: Set to true to enable status count synchronization.
      • Status to Lookup: List of work order statuses to track (e.g., In Progress, Waiting for Approval).
      • Properties For Status Counts: Maps each status to a property name in Tandem.
      • Add Work Order URL: Set to true to include a direct URL to work orders for each asset.
    • Service Request Configuration (Optional):
      • Add Status Counts: Set to true to enable service request status counts.
      • Status to Lookup: List of service request statuses to track.
      • Properties For Status Counts: Maps each status to a property name in Tandem.
      • Add Service Request URL: Set to true to include a direct URL to service requests for each asset.
    • Fixed Properties (Optional):
      • Key-value pairs for static properties to be set on all assets (e.g., a FlexField for filtering or troubleshooting).

How to Use

  1. Copy the static data JSON object from the Appendix.
  2. Update the values for your environment (e.g., set the correct baseurl, siteId, and any custom property names).
  3. Paste the updated JSON into the Static Data parameter field when configuring the Maximo Stream plugin in the solution walkthrough.
  4. Ensure that the properties and classifications referenced in the JSON exist in your Tandem facility template.
Note:
  • The Work Order Configuration and Service Request Configuration sections are optional. If omitted, status counts and URLs will not be updated in Tandem.
  • The Fixed Properties section is also optional and can be used for any static values you want to apply to all assets.

This configuration ensures that your solution will correctly synchronize asset data, work order and service request counts, and any static properties between Maximo and Tandem.

Static Data

{
  "Maximo Configuration": {
    "baseurl": "",
    "siteId": "",
    "Asset Number Property": "AssetNum"
  },
  "Tandem Configuration": {
    "Classification": "Maximo",
    "Maximo Asset Number Property": "Maximo.AssetNum",
    "Work Order Configuration": {
      "Add Status Counts": true,
      "Status to Lookup": [
        "In Progress",
        "Waiting for Approval",
        "Waiting for Material",
        "Waiting for Planning",
        "Waiting for Scheduling"
      ],
      "Properties For Status Counts": {
        "In Progress": "WOInProgress",
        "Waiting for Approval": "WOWaitingApproval",
        "Waiting for Material": "WOWaitingMaterial",
        "Waiting for Planning": "WOWaitingPlanning",
        "Waiting for Scheduling": "WOWaitingScheduling"
      },
      "Add Work Order URL": true
    },
    "Service Request Configuration": {
      "Add Status Counts": true,
      "Status to Lookup": [
        "New",
        "Queued",
        "Pending",
        "In Progress"
      ],
      "Properties For Status Counts": {
        "New": "SRNew",
        "Queued": "SRQueued",
        "Pending": "SRPending",
        "In Progress": "SRInProgress"
      },
      "Add Service Request URL": true
    },
    "Fixed Properties": {
      "FlexField": "ABC123"
    }
  }
}

Was this information helpful?