A script manager for IBM Maximo / Maximo Application Suite. This allows management (upload / download / comparison) of automation scripts, application XML and condition expressions from within VS Code
- Can upload / download / compare / delete scripts , application xmls and condition expressions with the currently selected environment
- Multiple Environment Support
- Add / edit / delete environments using UI
- Can switch between environment using UI
- Provides a treeview for environments
- Ability to fetch logs from currently selected or any other Maximo Manage environment
- Can compare with currently selected or any other Maximo environment
- Adds buttons in status bar for quick switch, upload, download, compare and fetching logs
- MAS Supported
- Can refresh / reload Maximo caches
- MAS Tools API (maxinst) Supported
- Download from Maximo (picker)
- Download Script(s) from Server
- Download Application(s) xml from Server
- Download Conditions(s) from Server
- Download (Update) from Server
- Upload to Server (Not for application xml)
- Compare with Server
- Execute Script using Script Handler (Only scripts)
- Delete from Server (Not for application xml)
- Compare with Another Environment
- Fetch Logs from Server (only for Manage)
- Manage Environments (Add / Edit / Delete / Set Active / Import / Export)
- Cache Refresh / reload
- MAS Tools
Use the command pallete to select this option
This will show a list of available options to download. This is a high level menu and will present with all the other bulk download options
Use the command pallete to select this option
This will show a select value of the following
-
All
-
Multiple
In multiple it will show a multi select menu to download scripts
Use the command pallete to select this option
This will show a select value of the following
-
All
-
Multiple
In multiple it will show a multi select menu to download app xmls
Use the command pallete to select this option
This will show a select value of the following
-
All
-
Multiple
In multiple it will show a multi select menu to download SQL based conditions
Use the command palette and select this option or use the status basr button for it
You must have a saved file open for this to work. This downloads the updated automation script or application XML from the server for the opened tab, depending on the file type.
Use the command palette and select this option or use the status basr button for it
You must have a saved file open for this to work. This uploads the automation script or condition expression from the opened tab to the server
Use the command palette and select this option
-
Compare with current Environment
-
Compare with other Environment
You must have a saved file open for this to work.
Compares the opened automation script, application XML or condition with the current environment
Compares the opened automation script, application XML or condition with the selected environment
Use the command palette and select this option.
This deletes the automation script or condition on the server
Use the command palette, click the "execute" (play) status bar button next to the active environment, or use the command "Execute script using Script Handler".
Uploads the currently opened automation script (.py, .js, or .jy) to the active environment, immediately executes it, and deletes it from the server to keep your environment clean. The body returned from the script execution is then displayed in a new split VS Code virtual document adjacent to the active file. The body is usually stored in responseBody implicit variable in Maximo automation scripts.
You can read more about it below
https://ibm-maximo-dev.github.io/maximo-restapi-documentation/autoscript/autoscript
https://ibm-maximo-dev.github.io/maximo-autoscript-documentation/rest/scripthandler/
Use the command palette or click the "Fetch Logs" status bar button next to the active environment name or click on "Fetch logs"" button in the maximo environments tree view
Fetches Manage logs via the Maximo stream log end point. When complete, a dedicated editor tab opens (and is reused per environment) titled with the environment name so you can inspect the log output immediately
You can add multiple environments and switch between them. Under the explorer webview there is a section for Maximo Environments:
Using the buttons displayed over these environments you can activate, edit, delete, export and import them as well.
While adding / editing environment you can click on the Verify Settings button to check the authentication with the server.
There are two types of environments,
-
global (Global are always available in vscode)
-
workspace workspace level are only available to the workspace it was created in)
They have their own icons.
-
Active Environment: Uses the $(radio-tower) icon.
-
Global Environment: Uses the $(globe) icon.
-
Workspace Environment: Uses the $(symbol-folder) icon
It can also refresh / reload the cache present in IBM Maximo. Sometimes needed after adding certain items in maximo. Maximo wont refresh the changes unless those caches are refreshed. e.g. INTOBJECT, MAXPROP etc
Upong triggering this option. You will be presented with a list of cache (might differ for 7.6 or MAS) to be refreshed. You can selected them all, multiple or single.
When an active environment is set the status bar shows quick-action icons:
- Active Environment— It shows the maximo active environment you have selected
- Fetch Log — runs
mxscript.fetchLogs(fetches logs for active environment) — NOTE: Fetch Logs currently works only against Manage (Maximo Application Suite). It is not supported for classic Maximo 7.6 REST endpoints - Select and download items from server — Shows the same download high level menu as Download from Server (opens a quick-pick to choose: scripts, application XML, or conditions)
- Upload — Uploads the currently opened file to current environment
- Download— Updates the currently open file from current environment
- Compare— Compares the currently open file with version at current environment
- Upload and Execute — Uploads, executes and deletes the currently open file at the current environment
- Deletes — Deletes the currently open file at the current environment
- MAS Tools Menu — Opens the MAS Tools (MAS only) - Access Logs, Database tools, Pod Manager, Customizations etc. See API for administrative utilities
New in version 1.5+, MxScript includes a comprehensive suite of management tools specifically for Maximo Application Suite (MAS) environments. This is the MAS tools API (which usually operates on the maxinst pod).
To use these features, you must configure the Tools Hostname in your environment settings. This is typically the maxinst pod route (e.g., https://maxinst.manage.mas-instance.com).
It will add a tools icon in the status bar
You can click this icon to show the Tools menu or use the command
- View Tools Logs: Browse and view logs from the
maxinsttools pod. - Upload Logs to S3: Trigger a log upload to the configured S3 bucket.
- Add Trusted Certificate from Host: Download and add a trusted SSL certificate from a remote host (useful for fixing connectivity issues).
- Add Trusted Certificate from File: Add a trusted certificate from a local
.pemor.crtfile.
- Validate Database: Run the validation utility to check readiness for MAS upgrades.
- Configure Database: Run
configdb(requires Manage to be stopped). - Reset Crypto: Reset
CRYPTOandCRYPTOXcolumns if they become corrupted or out of sync.
- Generate ERD: Generate an Entity Relationship Diagram (ERD) for your Maximo database. You can download the result as a ZIP file.
- Integrity Checker:
- Generate Report: Run the integrity checker in report-only mode.
- Run Repair: Run the integrity checker in repair mode (Use with caution!).
- Start All Pods: Start the Maximo Manage application server pods.
- Stop All Pods: Stop the Maximo Manage application server pods.
- Check Status: View the current build and deployment status of the Maximo image.
- Run DBC Script: Execute a specific database configuration (DBC) script by name.
Each environment in the "Maximo Environments" tree has inline buttons
The buttons call the following commands:
- Activate (set as active) → Selects the environment as active
- Edit→ Edits the environment
- Delete→ Deletes that environment
- Compare→ Compares the currently opened file with this environment
- Fetch Logs→ Fetches the log from this environment
You can add / refresh an environment or use the tree toolbar:
- Add → Adds a new environment
- Refresh → Refreshes an environment
- Export → Exports all configured environments to a JSON file
- Import → Imports environments from a previously exported JSON file
-
Global environments are stored in the extension
globalStateand are available across workspaces. -
Workspace environments are stored in
workspaceStateand visible only in that workspace. -
The "active environment" ID is saved in
globalStateundermxscript.activeEnvironment.
You should have access to an instance of IBM Maximo which supports the Nextgen rest api
You must have rights to use an object structure having AUTOSCRIPT as its base object.
There is an object structure
MXAPIAUTOSCRIPTcreated by default. You can use it
If your installation does not have this OS, follow these steps to create an object structure:
- Go to Object Structures
- Click on
New Object Structure - Give it any name (e.g.
MXSCRIPT). In Consumed by field enterINTEGRATION - In the source object table click on New Row. Then in that new row select
AUTOSCRIPTin object field. - Save
- Grant your user appropriate rights for this object structure
It should look like this:
You must have rights to use an object structure having MAXPRESENTATION as its base object.
There is no built in object structure for it. You need to create it
If your installation does not have this OS, follow these steps to create an object structure:
- Go to Object Structures
- Click on
New Object Structure - Give it any name (e.g.
MXAPPXML). In Consumed by field enterINTEGRATION - In the source object table click on New Row. Then in that new row select
MAXPRESENTATIONin object field. - Save
- Grant your user appropriate rights for this object structure
It should look like this:
Object Strcuture for condition Expression should be like below
If you get this error:
Error 400: BMXAA9301E - The user of the transaction is not authorized for Object Structure {1}. Configure authorization in the object structure application and grant necessary access to the user
You can either turn off authentication for OS Turn Off OS Authorization or grant authorization for that specific OS Grant OS Authorization
Before using this extension you need to add a few settings
It's also possible to edit these settings in Setting UI. This only supports a single environment.
You can also edit them in settings.json of your project.
This extension contributes the following settings:
| Property Name | Type | Default | Description |
|---|---|---|---|
mxscript.serverSettings.hostname |
string | Hostname / IP of Maximo server (e.g. 10.10.12.12 or www.xyz.com) | |
mxscript.serverSettings.toolsHostname |
string | Hostname for Tools API (maxinst). Only for MAS environments. | |
mxscript.serverSettings.port |
number | Maximo port | |
mxscript.authentication.username |
string | maxadmin | Username for Maximo Authentication |
mxscript.authentication.password |
string | maxadmin | Password for Maximo Authentication |
mxscript.authentication.apikey |
string | API key Maximo Authentication | |
mxscript.authentication.authenticationType |
string | internal | Type of Authentication (internal, ldap, apikey) |
mxscript.serverSettings.objectStructure |
string | MXSCRIPT | Object Structure to be used for scripts uploading / downloading / deletion |
mxscript.appxml.objectStructure |
string | MXL_APPS | Object Structure to be used for App XML uploading / downloading |
mxscript.serverSettings.httpProtocol |
string | http | Http protocol (http or https) |
mxscript.scriptSettings.createPythonFileForJythonScripts |
boolean | true | Create Jython script in Maximo even if the file in editor is .py |
mxscript.scriptSettings.logLevel |
string | The log level to set with scripts when creating / updating them (DEBUG, INFO, WARN, ERROR, FATAL) | |
mxscript.scriptSettings.ignoresslerrors |
boolean | false | Ignore SSL errors |
mxscript.scriptSettings.sslcertificate |
string | a custom certifcate | |
mxscript.appxml.formatOnDownloadAndCompare |
boolean | true | Whether to format XML on download and compare |
mxscript.statusBar.showFetchLogs |
boolean | true | Show the Fetch Logs icon in the status bar |
mxscript.statusBar.showDownloadFromMaximo |
boolean | true | Show the Download from Maximo icon in the status bar |
mxscript.statusBar.showUpload |
boolean | true | Show the Upload icon in the status bar |
mxscript.statusBar.showDownload |
boolean | true | Show the Download icon in the status bar |
mxscript.statusBar.showCompare |
boolean | true | Show the Compare icon in the status bar |
mxscript.statusBar.showUploadAndExecute |
boolean | true | Show the Upload and Execute icon in the status bar |
mxscript.statusBar.showDelete |
boolean | false | Show the Delete icon in the status bar |
mxscript.statusBar.showToolsMenu |
boolean | false | Show the Tools Menu icon in the status bar |
mxscript.statusBar.showManageEnvironments |
boolean | true | Show the Manage Environments icon in the status bar |
-
If your workspace lacks explicit
mxscript.serverSettings.hostname, but a global active environment exists, the extension will silently apply the active environment settings to the workspace (this is the "silent apply" behavior). If hostname mismatches are detected the user is warned and asked to manage environments. -
"No active Maximo environment" — Set an active environment in the Maximo Environments view or add one via the command palette.
-
Hostname mismatch warning — Either update your workspace
mxscript.serverSettings.hostnameor set the correct active environment. -
SSL errors — Toggle
mxscript.scriptSettings.ignoresslerrorsto ignore SSL validation (not recommended for production). It is better to add the SSL certificate in environment settings. -
Fetch Logs not working — Fetch Logs uses Manage APIs and is not available for classic Maximo 7.6 endpoints. Make sure you're pointing to a Manage instance if you need log fetching
-
In previous version the OS for apps was a simple one which had only one object in it i.e. MAXPRESENTATION. Now it requires an OS with at least objects in it. MAXAPPS and MAXPRESENTATION. You might need to re create that
-
Double check the authentication type, user/pass or the api key provided
-
If you encounter any bug then please open an issue at github repository
- Added execute script functionality
- Added option to show / hide buttons in status bar using extension settings
- Added option to import and export Maximo environments
- Added MAXINST pod Tools API support
- Added option to refresh Maximo cache
- Added option to download / upload / compare the condition expressions (sql based only)
- Added compare with environment feature - click the compare button next to any environment in the tree view to compare your local script/XML with that environment
- Added a Fetch Logs command with a status bar shortcut that opens an environment-specific log viewer tab.
Added option to add a custom ssl certificate
Fixed a bug where updating an XML wont be reflected in Maximo UI
Added logging output channel
Fixed script creation error for non english languages
Fixed ssl ignore settings
Fixed app xml OS not being saved
Added support for managing application xml
Fixed OS not being read correctly
Added option to add multiple environments using UI
Added option to ignore SSL based errors
Added support for API key
Initial release added upload, download, download all and compare with server functions.
Contact
Feel free to reach me at linkedin or Maximomize or wordpress. I would love to meet fellow maximo consultants
Note: This is work of third party and not an IBM official



















