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
wodetailsthroughapp.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
wodetailsor 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
wodetails→woDetaildsorUpdate 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')orUpdate 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.activeChildDatasourceis set to the correct value for that datasource.Confirm
woDetaildsloads 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.
Was this topic helpful?
Document Information
Modified date:
03 April 2026
UID
ibm17266831