Overview
Welcome to MAF Configuration Practices
IBM’s Maximo Application Framework (MAF) supports the creation of Maximo Mobile and Role-based applications within Manage. This documentation provides practical examples and best practices for configuring and customizing MAF applications.
The MAF Configuration application enables implementers to configure IBM-provided applications (or duplicates of those applications) built with MAF. Other MAS applications, such as Health and Monitor, provide MAF applications that can also be configured using the MAF Configuration application.
What You’ll Find Here
This guide provides practical examples of configurations that can be used, extended, adapted, and combined to achieve your desired customizations. The documentation is organized into two main sections:
Simple Practices - Configuration-focused examples including:
- Adding attributes to cards
- Updating saved queries for lookups
- Modifying UI elements
- Basic field configurations
Complex Practices - Advanced customizations using JavaScript including:
- Lifecycle event handling
- Custom business logic in AppCustomizations.js
- Advanced datasource manipulation
- Complex validation scenarios
Recommended Learning Path
🎯 For Beginners
Start here if you’re new to MAF configuration:
- Overview - Understand MAF basics (you are here)
- Basic Concepts - Learn core MAF concepts
- Datasources Guide - Master data management fundamentals
- Debug UI - Learn how to troubleshoot
- Simple Practices - Start with configuration-only examples:
🚀 For Intermediate Users
Once comfortable with basics, explore:
- FAQ - Common questions and solutions
- More Simple Practices - Build your configuration skills
- Introduction to Complex Practices:
- Replace Existing Method - Advanced techniques
💡 For Advanced Users
Ready for complex customizations:
- Complex Practices - Advanced JavaScript customizations
- Restrict Complete Status - Complex validation example
- Performance Mobile Doclinks - Optimization techniques
- Combine multiple techniques - Build sophisticated solutions
Quick Reference
Essential Resources
- FAQ - Frequently asked questions
- Datasources Guide - Comprehensive datasource documentation
External Resources
- Maximo Mobile: Customization using MAF and Configuration
- Maximo Application Suite learning roadmaps
- Maximo Mobile: Customization Overview
General Tips & Best Practices
XML Tag Order
The order of XML tags is important. Although XML is a markup language, the MAF build process considers the declaration order throughout the file.
Best Practice: Declare datasources before using them in lookups or other components.
Logging
Use consistent logging to track progress during customization. Create a tag prefix to identify all code paths.
AppCustomizations.js:
// Add at the first line of the fileconst TAG = 'CustomFeature';// Use throughout your codethis.app.log.d(TAG, 'Processing started');this.app.log.e(TAG, 'Error occurred', error);
Server Logs:
Access server logs from your Manage (MAS) instance using this URL format:
https://(mas-manage-host)/maximo/oslc/service/logging?action=wsmethod:streamLog
Debug Mode
Enable debug or trace logs in a deployed Role-based Application by adding a query parameter to the URL:
?_graphite_logLevel=[level_option]
Available log levels:
trace- Extremely detailed loggingdebug- Detailed logginginfo- Informational loggingwarn- Only log warningserror- Only log errors
Example:
http://localhost:3000/?quickReport=false&_graphite_logLevel=trace#/createwo
AppCustomizations.js Template
Basic template for AppCustomizations.js:
/*** Custom Application Logic* This file contains customizations for [Application Name]*/const TAG = 'CustomApp';class AppCustomizations {/*** Called when application is initialized
CSS Customization
Starting in Maximo Application Suite 9.0, you can customize the user interface appearance using CSS.
To enable CSS customization:
- Open the Suite administration page
- Navigate to side navigation menu
- Click Configurations → User Interface Customization
- Go to the CSS Customization tab
- Enable CSS customization by toggling the switch
Feature Requests
If a customization isn’t possible due to framework limitations or unexposed processes, submit an idea through the IBM Ideas Portal rather than opening a bug report.
Support
What’s Supported
We support modification of:
- ✅ XML files (app.xml)
- ✅ AppCustomizations.js
What’s Not Supported
- ❌ Modifying out-of-the-box controllers (requires manual merging with each release)
- ❌ Direct framework modifications
- ❌ Unsupported versions (< 8.10)
Getting Help
L3 RBA Configuration Queue
The support queue handles issues with:
- Application behavior during configuration
- Connecting to datasources
- Creating or altering functions
- UI layout modifications
- Page routing
- Maximo business rules adherence
Important Notes:
- Same support policies apply to configuration
- Customers on older/unsupported versions of RBA and Mobile (< 8.10) don’t have access to configuration support
- Issues traced back to unsupported code configuration won’t be supported, though we’ll provide guidance when possible
Opening a Support Case
When opening a case, include:
Files created/updated:
- app.xml
- AppCustomizations.js
- app.delta.xml (automatically generated from app.xml changes)
Clear reproduction steps:
- Step-by-step instructions
- Expected vs actual behavior
- Environment access information (if possible)
The app.delta.xml file is crucial for fast triage as it highlights all configurations applied.