The autoscript-dbc project provides DBC support for deploying automation scripts that contain the configScript
metadata used by the VSCode Maximo Script Deploy extension, which is found here.
To use the autoscript-dbc extension, copy the compiled classes to the [SMP_HOME]/maximo/tools/maximo/classes
directory, for example /opt/IBM/SMP/maximo/tools/maximo/classes
(unix) or C:\IBM\SMP\maximo\tools\maximo\classes
(windows).
The classes can be found in the build/classes/java/main
folder of this project after calling the gradle assemble task or can be obtained in the zip and tar files provided under this project's GitHub Releases.
Copy the script.dtd from the project to the [SMP_HOME]/maximo/tools/maximo directory, for example /opt/IBM/SMP/maximo/tools/maximo
(unix) or C:\IBM\SMP\maximo\tools\maximo
(windows).
The autoscript-dbc relies on injecting new DBC statements into the statement processor. To enable these new statements, add <calloutclass>io.sharptree.maximo.dbmanage.AutoScriptExtCallout</calloutclass>
to your project's product XML as shown in the example below.
<?xml version="1.0" encoding="UTF-8"?>
<product>
<name>Example Autoscript</name>
<version>
<major>1</major>
<minor>0</minor>
<modlevel>0</modlevel>
<patch>1</patch>
<build>20220314</build>
</version>
<dbmaxvarname>AUTOSCRIPTINST</dbmaxvarname>
<dbscripts>example</dbscripts>
<dbversion>V1000-1</dbversion>
<lastdbversion>V1000-00</lastdbversion>
<calloutclass>io.sharptree.maximo.dbmanage.AutoScriptExtCallout</calloutclass>
</product>
With the product XML file updated the add_update_autoscript
and remove_autoscript
statements are now available.
The add_update_autoscript
requires a path
and a language
attribute. The path
attribute is either a relative path from the DBC script file location or an absolute file path. The language
attribute is either the literal value, javascript
or python
.
Below is an example DBC script using both a relative and absolute path.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE script SYSTEM "script.dtd">
<!--suppress CheckValidXmlInScriptTagBody -->
<script author="Jason VenHuizen" scriptname="V1000_01">
<description>Example</description>
<statements>
<!-- Relative path to python script -->
<add_update_autoscript path="example.py" language="python"/>
<!-- Absolute path to python script -->
<!-- /opt/src/scripts/example.js (unxi) or C:\opt\src\scripts\example.js (windows) -->
<add_update_autoscript path="/opt/src/scripts/example.js" language="javascript"/>
</statements>
</script>
Note that it is required that the automation script source files contain the
scriptConfig
variable that is used by the VSCode Maximo Script Deploy extension. If this is not present the script will be unable to deploy.
The remove_autoscript
requires the name
attribute. This is the name of the automation script to remove from the target system.
Below is an example DBC script that removes an automation script named EXAMPLESCRIPT
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE script SYSTEM "script.dtd">
<!--suppress CheckValidXmlInScriptTagBody -->
<script author="Jason VenHuizen" scriptname="V1000_01">
<description>Example</description>
<statements>
<remove_autoscript name="EXAMPLESCRIPT"/>
</statements>
</script>
To build the autoscript-dbc project, you will need the Maximo businessobjects.jar
and the Maximo tools classes. The businessobjects.jar
file can be obtained by unzipping the maximo.ear
file and copying the file.
The Maximo tools classes are not provided as a jar file and therefore must be created. Open a terminal (unix) or command (windows) window and navigate to the [SMP_HOME]/maximo/tools/maximo/classes folder. Run the following command.
jar cf maximo-tools.jar *
Copy the businessobjects.jar
and maximo-tools.jar
to the project's libs
directory.
To build the project run the gradle assembleDist
task.