IBM Support

Datasource consolidation of wodetails with woDetailds in Technician Application

Release Notes


Abstract

As part of the IBM Maximo Application Suite 9.2 release, the Technician mobile application introduces an important architectural improvement. Two datasources with nearly identical names (wodetails and woDetailds) existed to serve the same purpose. This created confusion for developers, consultants, customers, and partners in customizing the Technician mobile application.

This technical note describes the changes introduced, the rationale behind them, their potential impact on your environment, and the steps required for a smooth upgrade to Maximo Application Suite 9.2.

Content

Change details
In Maximo Application Suite 9.2, the wodetails datasource has been removed from the Technician mobile application. This datasource was redundant because it duplicated the purpose of the existing woDetailds datasource.

Type of change: Removal of redundant datasource (breaking change for customizations that reference wodetails).

Technical details:

Removed: wodetails datasource (page-level datasource)
Retained: woDetailds (app-level datasource)
Object Structure: mxapiwodetail
Load Control: can-load="{app.state.canLoadWoDetailDS}"

Child datasource realignment:
Several child datasources that were previously aligned to wodetails have been realigned to woDetailds. The following table shows which child datasources were affected:

Child datasource  

Purpose  

Load trigger (app.state.activeChildDatasource) 

assignmentDetailDS  

Work order assignments  

assignmentDetailDS  

woMaterialsDS  

Planned materials  

materialTools  

woToolsDS  

Planned tools  

materialTools  

woHazardMaterialsDS  

Hazardous materials  

hazards  

woHazardsDS  

Work order hazards  

hazards  

signatureAttachmentDS  

Signature attachments  

signatureAttachmentDS  

woWorklogDS  

Work logs  

woWorklogDS  

woLaborDetailsDS  

Labor transactions  

woLaborDetailsDS 

 

 

Purpose of change
In earlier versions of the Technician mobile application, the wodetails and woDetailds datasources existed in parallel and were used for the same purpose. Maintaining two similar datasources introduced ambiguity and unnecessary complexity.
For developers, partners, and customers, it was not always clear which datasource should be referenced when creating or maintaining customizations. This led to inconsistent implementations and made troubleshooting and upgrades more difficult.
For IBM, the redundant datasources increased maintenance effort and added complexity when introducing new capabilities, such as Approvals. Removing the redundant datasource reduces ambiguity and simplifies long‑term maintenance. 

 

Impact areas

This change affects the following functional areas in the Technician mobile application

List page area 

Reason for impact 

Materials / Tools 

Child datasources now load only from woDetailds 

Hazards / Safety 

Hazard-related datasources depend on woDetailds 

Work Logs 

woWorklogDS loads through the unified datasource 

Work Order Assignments 

assignmentDetailDS now depends on woDetailds 

Status Change 

Status actions rely on work order details loaded from woDetailds 

Start / Stop Timers 

Timer operations use WO details provided by the consolidated datasource 

Work Log Entry 

List page actions require woDetailds to supply WO details 

Assignment Actions  

Assignment operations read WO data from the updated datasource 

 


Impact on customized environments

Action is required ONLY if you have customizations that reference the removed wodetails datasource.
Review and update customizations in the following areas:

  • Application XML or UI components that reference wodetails 
     
    //Before (OLD)
    <button kind="secondary" icon="carbon:location-hazard" on-click="openHazardDrawer" on-click-arg="{{'item': item, 'datasource': wodetails}}" hidden="{!item.wohazardcount}" tag-value="{item.wohazardcount}" tag-type="dark-gray" id="bnprm">
    
    // AFTER (NEW)
    <button kind="secondary" icon="carbon:location-hazard" on-click="openHazardDrawer" on-click-arg="{{'item': item, 'datasource': woDetailds}}" hidden="{!item.wohazardcount}" tag-value="{item.wohazardcount}" tag-type="dark-gray" id="bnprm">
  • Custom JavaScript logic that accesses wodetails through app.findDatasource('wodetails') 

    // Before (OLD)
    const woDS = page.findDatasource('wodetails');
    
    // After (NEW)
    const woDS = app.findDatasource('woDetailds');
  • Custom datasources with depends-on="wodetails"

    <!-- Before (OLD) -->
    <datasource id="myCustomDS" depends-on="wodetails">
    
    <!-- After (NEW) -->
    <datasource id="myCustomDS" depends-on="woDetailds">
  • Custom attributes added to wodetails or its child datasources

    // Before (OLD)
    <maximo-datasource id="wodetails" object structure="mxapiwodetail">
      <schema id="nd6v9">
        <!-- CUSTOM ATTRIBUTES -->
        <attribute name="customfield1" id="custom_field_1"/>
      </schema>
    </maximo-datasource>
    
    // After (NEW)
    <maximo-datasource id="woDetailds" object structure="mxapiwodetail">
      <schema id="nd6v9">
        <!-- CUSTOM ATTRIBUTES -->
        <attribute name="customfield1" id="custom_field_1"/>
      </schema>
    </maximo-datasource>
  • Dialogs that reference child datasources of wodetails

    // Before (OLD)
    <panel id="pnbm3">
    	<data-list datasource="wotoolsds" hidden="{!wotoolsds.state.itemCount}" show-search="false" title="Tools" id="m34mv">
    		<box padding-top=".5" id="dkzd8”/>
    		..
    		</box>
    	</data-list>
    </panel>
    
    //After (NEW)
    <panel id="pnbm3">
    	<data-list datasource="woToolsDS" hidden="{!woToolsDS.state.itemCount}" show-search="false" title="Tools" id="m34mv">
    		<box padding-top=".5" id="dkzd8”/>
    		..
    		</box>
    	</data-list>
    </panel>

 

 

Possible upgrade errors
During migration, you may encounter errors caused by remaining references to the removed wodetails datasource. The most common issues and their resolutions are described as follows:

MAF Tool:

Warning

Cannot ADD control (myCustomControl). Container (wodetails) does not exist 

Cause

Your XML customization still references wodetails as a container, datasource, or parent datasource.

Resolution

  • Update all XML references from wodetailswoDetailds or

  • Update custom child datasource definitions. 

     

Runtime JavaScript error: 

TypeError

Cannot read property 'item' of undefined at findDatasource('wodetails') 

Cause

Your JavaScript code is still calling app.findDatasource('wodetails')

Resolution

  • Replace all findDatasource('wodetails')findDatasource('woDetailds') or

  • Update related controller logic 

     

Child datasource load failure

Symptom

List page shows partial or missing work order data. 

Cause

Child datasources still depend on wodetails, or the WO detail datasource is not loaded before the child datasource tries to load.

Resolution

  • Verify child XML uses depends-on="woDetailds" .

  • Ensure app.state.activeChildDatasource is set to the correct value for that datasource. 

  • Confirm woDetailds loads before any child datasource.  

 

Challenges before the consolidation 

Using two datasources — wodetails and woDetailds — created the following challenges in earlier versions of the Technician mobile application.

  • Unclear customization path 

    It was not obvious which datasource to use when building or extending features, leading to inconsistent implementations. 

  • Extra effort and duplicate work 

    Changes often needed to be made in two different places, increasing maintenance time and the chance of mistakes.

  • Inconsistencies across the application 

    Duplicate logic across the codebase led to uneven behavior and made troubleshooting and upgrades more difficult. 

 

Benefits after the consolidation 

Moving to a single datasource (woDetailds) brings three clear improvements that make the Technician mobile application easier to work with:

  • Simpler customizations 

    With only one datasource to extend, it is much easier to build and manage custom features. There is no confusion about which datasource to use.

  • Lower maintenance effort 

    Eliminating duplicate logic reduces the risk of errors and makes long‑term maintenance significantly easier for customers and partners.  

  • Stronger foundation for enhancements 

    A clean, simplified architecture sets the stage for new capabilities—such as Approvals—and future improvements without adding complexity.  

 

Getting help
If you need assistance:

  • Review this technical note - Ensure that you have followed all recommended solutions.
  • Test in a non-production environment - Validate your changes before upgrading to a production environment.
  • Contact IBM Support - If you encounter issues not covered in this technical note, open a support case with details about your customizations and the specific errors you are experiencing.

[{"Type":"MASTER","Line of Business":{"code":"LOB77","label":"Automation Platform"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSRHPA","label":"IBM Maximo Application Suite"},"ARM Category":[{"code":"a8m3p000000Go1VAAS","label":"Mobility-\u003EApplication"},{"code":"a8m50000000CbFCAA0","label":"Mobility-\u003EUpgrade"}],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.2.0"}]

Document Information

Modified date:
03 April 2026

UID

ibm17266831