Migrate Maximo configurations with MxLoader

Have you ever struggled migrating configurations from Development to Test environment and then to Production?
If the answer is yes, you are not alone. I think this is the one of the most common issues when managing multiple environments in medium-large Maximo projects.

Keeping several Maximo environments in synch while ensuring a fast release cycle required in today’s projects is challenging and typically involves two flows.

  • The first flow of configuration changes is the classical release flow. You have to release configurations from Development to Production through all the intermediate environments and entails the build of some sort of ‘configuration package’ that is deployed on each environment.
  • However, in the real world, all those environment will loose sync after some time so we need to realign back through the chain using a database cloning procedure (backup and restore). This is a well known practice to rebuild a development environment ensuring all

In my experience I have seen a lot of different approaches to build ‘configuration packages’.

  1. The simplest form of package is brain memory. This is the simplest form of package. It is applicable only when there is only one Maximo administrator/developer but is very unreliable and there is no change log of what has been released.
  2. The second type of package is a text file with precise instructions of what configuration must be applied. This is the minimum level that I personally adopt on small projects involving up to 2-3 environments and 1-3 administrators/developers. The file can be prepared by the developer and passed to the system administrator (together with automation scripts, application XMLs and other configuration files) to be deployed. Such packages can be stored on a shared folder for tracking purposes or versioned on a CVS/SVN repo.
  3. Instead of having unstructured text files, some teams tries to define a standard template for documenting configurations. These are typically Excel spreadsheets. I do not personally use this approach because it is quite compelling to find a set of templates to cover all possible kind of configurations and there is no great advantage over the text-file approach.
  4. The official approach is to use the IBM Migration Manager. I have seldom used this approach and is perfect for large environments and big teams. The biggest problem of this tool is that it is not really easy to understand what configurations are stored in the package since it actually is a zip file containing large XML files.

I have recently developed my own approach based on MxLoader to overcome limitations of the approach 4 thus providing a more reliable process than approach 2.

In MxLoader 6.1 I have released a set of Object Structures and templates specifically developed for migrating configurations: Conditional Expressions, Reports, Object Data Restriction, Attribute Data Restriction, Domains, Database Objects/Attributes/Relationships/Indexes, Automation Scripts, Application Signature Options, Security Group Authorizations, Actions, Roles, Escalations, Workflows, Communication Templates,etc.
 
I typically use the templates with the ‘Query’ action to extract the configuration from the development environment. I incrementally build the appropriate where clause in cell D1 to extract the minimum set of records. When I have finished building the package, I switch to the integration environment in the Config sheet and use the ‘Sync-AddChange’ action to apply the configurations.
 
The main advantage of this approach is that it is really easy to see what configurations are in the package and what changes are actually applied to the production environment.
 
I encourage you to download MxLoader and give it a try. I will do my best to publish some tutorials in the next future about migrating configurations using such great tool.
 

Migrate Maximo configurations with MxLoader

17 thoughts on “Migrate Maximo configurations with MxLoader

    1. You are right. I didn’t include the workflow template because it may be too complex to use it.
      I will add it in the next release.

  1. Thank you Bruno, I appreciate the dedication. I use MXLoader regularly for a wide range of tasks and I have to say it’s saved me much time.

  2. I’m unable to connect to my server using mxloader. The same mxloader file works on another machine but for some strange reasons it doesnt seem to be working on the new pc’s that have just been changed for us.

    what am i missing? this has never happened before and i’m thinking its to do with some setting in the new pc’s that we got?

    Suggestions?

  3. Hi I am getting the following Error when trying to TEST connection. Not sure what went wrong with my env it was good until three days back. This happens only with my TEST Env. not able to figure out. I have tried with New version of the MXloader and its the same. Your help is much appreciated Bruno. Thanks..

    Cause – Object service security is enabled. Enable authentication in Config sheet

    Error – Internal Server Error
    Error 500: nested exception is: psdi.util.MXApplicationException: BMXAA1268E – No user credentials.

    1. I think you have to specify username and password in cells B6/B7 of Config sheet.
      You also have to select Native or LDAP authentication in cell B5.

      1. Yes I did choose the LDAP and it has the Credentials, the Same works for”maxdev” or “maxprod” but not for the following and not for “http://maxtest/meaweb/os/”. Also i google for error and i see that the sys props across all the env is same – “mxe.int.enableosauth”

  4. Are you going to provide components to migrate configuration changes related integrations itself e.g. Object Structures , PS , ES etc ?

  5. Bruno, Do you have a template for ctrlgroup/ctrlcondition/ctrlcondprop? I created an object structure and MXSheet that reads the information for the combination but only updates the ctrlgroup. I must be missing something.

  6. I noticed when using the Report Design template, Mxloader doesnt extract the whole of the xml so the report doesnt migrate correctly, is there something I am missing?

  7. You can use the FileTxt:/[FILENAME] syntax to pass the rptdesign file.
    Here is an example
    MXL_REPORTDESIGN REPORTDESIGN Sync-AddChange
    REPORTNAME REPORTFILENAME ISLIBRARY IMPORTEDBY IMPORTEDDATE DESIGN
    dlvtests.rptdesign dlvtests.rptdesign 0 MAXADMIN 26/07/2019 FileTxt:/./BirtReports/dlvtests.rptdesign

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to top