Master Data Management (MDM)

Adding CBA to MDM Operational Server BLA using scripts to facilitate CI/CD

By CHITRA ANANTHANARAYANAN posted Tue June 02, 2020 12:19 PM

With the Headless Build available for MDM Workbench the scripts in this post will enable customers to use CI/CD for adding custom CBAs to the MDM operational server EBA.

Automated Builds of Physical MDM Customisations

Automated Builds of Physical MDM Customisations enable creation of CBAs, sqls and wsdls through execution of a script.  Details on setting up the headless build are elaborated in the highlighted link.  The script reads properties from a file.


A sample invocation of the script can be noticed in the below image:

Here the CBAExport folder contains the CBAs.  The file contains the wsdls and sqls in compressed format.   The folder that holds the CBAExport and are used as input for the script demonstrated in further steps.  

Assets generated for a custom component bundle

They are the CBA and the SQL files are key assets to get the custom component bundles working.  The CBA has a name and version.  As part of SQL files, delete TAIL, rollback and insert SQLs are generated which have to be executed in the same order.  The CBAs have to be added as an Extension to the MDM operational server Enterprise Bundle Archive.
In certain cases, there is a necessity to remove the previous version on the CBA that is already added as an extension to the MDM operational server EBA.

Script to add custom CBAs to the MDM Operational Server EBA as an Extension

To enable addition of CBAs as an extension to the MDM operational server Enterprise Business Archive, we have and an scripts.  We also have the script which reads property values from file and the file to reduce the number of inputs obtained from the user.  

Please find the inputs obtained through below.

The script reads values from the, then obtains values such as Instance Id, WAS Profile Home and WAS Admin User from the  It places and in the <WAS_PROFILE_DIR>/bin folder and invokes the script.  This script in turn invokes the using the tool from WAS and passes in parameters CBA location, Instance Id, Bundle Name and Bundle Version.  The file adds the local repository bundle, adds it as an extension to the Enterprise Business Archive in MDM operational server Business Level Application, edits the composition unit and saves it.

Alternatively you can directly invoke after placing it in the <WAS_PROFILE_DIR>/bin folder by passing the below parameters

./ -conntype SOAP -host <HOST> -port <SOAP_PORT> -lang jython -username <WAS_ADMIN_USER> -password <WAS_ADMIN_PASSWORD> -f <CBA_PATH> <MDM_INSTANCE_ID> <BUNDLE_NAME> <BUNDLE_VERSION>

Below is a sample invocation:

./ -conntype SOAP -host -port 8879 -lang jython -username wasadmin -password wasadmin -f /opt/IBM/ E001 1.0.1

Script to add custom CBAs to the MDM Operational Server EBA as an Extension and invoke SQLs

The performs the step mentioned above after executing the Delete, Rollback and Insert SQLs.  It expects the assets to be present in the format generated by the headless build, ie., the folders CBAExport and have to be present in the directory cba.assets.dir present in the file.

Please observe a sample output in the below screen shots.


Notice that the Rollback sqls and Setup sqls are executed followed by invocation of through

CBA in the WAS Admin Console 

Please find the CBA available as an extension to the EBA in the WAS Admin Console.


IVT response

Please find the response from an IVT execution where a sample request generated by the Workbench was used.


Removed attached CBAs

Scripts and are also available.  These scripts have to be placed in <WAS_PROFILE_DIR>/bin and invoked.

To invoke pass the below parameters:


Alternatively you can directly invoke by using and passing in the below parameters:

./ -conntype SOAP -host <HOST> -port <PORT> -lang jython -username <WAS_ADMIN_USER> -password <WAS_ADMIN_PASSWORD> -f <MDM_INSTANCE_ID> <BUNDLE_NAME> <BUNDLE_VERSION>

A screenshot of the invocation is attached here.

* Please find the sample scripts used -
* Fill in the
was.profile.dir - WAS Profile Directory - this property will be used to place the shell and python scripts and execute them
mdm.install.dir - MDM Installation Directory - this property will be used to find out other MDM related properties. It will also be used to execute SQLs using the madsql utility
cba.assets.dir - The directory in which CBAs are placed, the CBAExport and generated by the Headless build have to be placed in this directory.
mdm.admin.password - MDM Administrator Password - used for authentication with WAS Server

* To execute the rollback and insert SQLs and add the CBA to the MDM EBA execute

* To add the CBA to the MDM EBA execute

* To remove CBAs from the MDM EBA place and in <WAS_PROFILE_HOME>/bin and invoke with the below parameters

* You can also directly invoke the jython scripts, to invoke, pass in
./ -conntype SOAP -host <HOST> -port <PORT> -lang jython -username <WAS_ADMIN_USER> -password <WAS_ADMIN_PASSWORD> -f <CBA_PATH> <MDM_INSTANCE_ID> <BUNDLE_NAME> <BUNDLE_VERSION>

* To invoke the, pass in
./ -conntype SOAP -host <HOST> -port <PORT> -lang jython -username <WAS_ADMIN_USER> -password <WAS_ADMIN_PASSWORD> -f <MDM_INSTANCE_ID> <BUNDLE_NAME> <BUNDLE_VERSION>