This will be the first article in series of articles for tech beginners that would like to learn how to administer, configure and customize IBM Maximo. First if you do not know anything about Maximo I would advise you to read about it on IBM website. Over there you will find that Maximo comes in many variations, like Maximo for oil and gas, Maximo for service providers, etc. But what I am going to talk about in these series of articles will apply to all these versions.
Note that these series of articles will cover Maximo version 7.5. Also there is some required knowledge in order to follow these tutorials, most important two are that you know at least basic Java programming and have knowledge of writing PL/SQL. Having this in mind, let me start with this first part from the series by introducing Maximo applications that are important for configuration/administration/customization.
When you login into Maximo, you get the start center page where you can see different information like notifications, work flow assignments, KPI graphs (statistics) etc. Usually there are links to favorite applications that can be logically grouped. This start center can be tailored for each user group in Maximo, but how to do this we shall talk about in some later article. Below you can see an example of start center.
In top right corner of any screen in Maximo you can find menu bar with drop down menus: Bulletins, Go To, Reports, Start Center, Profile, Sign Out and Help. For this article we shall open up Go To menu that opens up list of modules displayed on the picture below, each application module can contain other sub-modules and applications relevant for that module (description and number of modules may vary based on the Maximo version and security privileges of logged in user, in this case we are logged in as Maximo super administrator so we can see all modules and relevant applications).
Modules that will be covered in these series of articles are: Integration and System Configuration, we might also cover some applications from other modules like administration since it contains some applications that are related to configuration of Maximo. First lets look into the System Configuration module, this module contains two sub-modules: Platform Configuration and Migration, first one contains applications that are used to configure and customize Maximo applications, work flows, cron tasks and other parts of Maximo system, while Migration module contains applications used to migrate configurations from one environment to another (i.e. from development instance to test instance and finally to production – for sure you can have more instances than mentioned here, for example I like to have one instance more that represents daily/weekly copy of production because that way you can reproduce some issue on fresh data faster). Let’s take a look at the list of applications from System Configuration sub-module:
System Properties – application used to manage system properties of Maximo, for example here you can manage mail server configuration so that Maximo is able to sent email notifications to its users, then LDAP settings for integration with LDAP some database parameters and many other. Some of them we shall try to cover in upcoming articles. Just to mention that here you can create your own properties, give them an identification name and value and later use it in the code for some customization/configuration of an application, cron task or any other part of Maximo system.
Logging – application where user can manage loggers and their levels, appenders, properties and activate/deactivate logger for certain modules/applications of Maximo system. Maximo internally uses log4j so it is good to have some knowledge of log4j – how it works and how can be configured. To get more details on log4j you can check this link.
Domains – domains in Maximo represents list of values that can be retrieved from different sources and to be used to assign those domains to certain fields in application (attributes of objects) in order to limit/validate values that user can enter. Also can be used on work flows, cron tasks. In this application you can manage existing domains (modify completely domain, add/remove values from domains, etc. )It is important here to mention that there are several types of domains:
- ALN domain- represents list of constant string values
- NUMERIC Domain- represents a list of constant numeric values
- NUMERIC RANGE domain – same as NUMERIC, only difference is that you can define segments and their range of values
- TABLE domain – you can define that values are dynamically fetched as values from some table in Maximo system
- CROSSOVER domain – you define those domains when you want that system copies value(s) from another field to a specified record. Example is when you create some record from another or related them somehow you can choose some values to be copied from first record to newly created one. Later we shall see real usage of this domain type in a proper example
- SYNONYM domain – specific type of domain, you can say system type of domain. It represents list of records where each record has it’s own internal and external value, this way all external values are mapped to internal values. For example you can have a list of statuses represented as internal values draft, pending for approval, approved and closed and each of these statuses can have one or more external values, like waiting for approval can have external values: pending verification, waiting for vendor to confirm, pending final approval. This way you can group these statuses logically so later you can define rules for those groups in applications
Database Configuration – application used to manage (create, delete and modify) Maximo objects that are used across applications. With this application you are able to define how objects are defined in database, their behavior, validations, assign domains to attributes of objects, table indexes, relationships between objects and many other things. Since this application is very important for configuration/customization of Maximo system, we shall deep dive into this application later in one of the upcoming articles
Application Designer – application used to modify the screens of all Maximo applications, here you can change layout of each application, add/remove fields, define user interface behavior on user actions/roles/conditions/security settings, etc. This application, due to it’s importance and frequency of usage, will be closely examined and described in upcoming separate posts.
Communication Templates – in this application user is able to specify templates for emails/messages that system is able to send to the users on certain events/actions. These templates are often used but not limited for workflows to notify users on certain actions and/or assignments that are pending his action. In these communication templates you can use substitution variables so that system automatically populates message with information from related record.
Actions – In this application you can manage actions and actions group. In general each action can perform certain operation on the records or can call custom class to perform some calculations or some other job. These actions can be used together with wok flows, escalations, SLA.
Roles – this application is used to create/modify/delete role records. As an example role can be a group of person that has a same job function, so with this application you can define roles as groups of persons/users so that you can use them as such for notifications in work flow, escalations, communication templates, etc.
Escalations – very useful application in a case when you have a situation that you need some actions and notification to be executed under certain conditions. For example to trigger notification to certain roles when status of the purchase order gets closed, in addition to this you can specify some action to be executed first by creating an action in Actions application and associating this action to the escalation.
Workflow Designer – this is application that enables creation of new workflow definitions and modification of existing ones. Since it is very important application for configuring your processes in core business applications of Maximo there will be a separate article(s) dedicated to this application that will explain all details of workflow configuration and this application itself.
Workflow Administration – this is supplemental application for administering the workflow, actually this application allows you to to stop instances of workflows or do reassignment of current assignments for workflow instances.
Cron Task Setup – application that you are able to modify, create and delete cron tasks (cron tasks in general can be described as time scheduled group of tasks) also you can see history of cron task execution and basic information on the errors in case there is some problem in the execution. This application contains some of the cron tasks that come as part of standard Maximo like cron tasks used for integration, synchronization of users in case you have integration with LDAP, etc
E-mail Listeners – Maximo provides possibility to listen to certain email account(s) and read emails that arrive to the inbox of that account. These emails can contain structured subject and body so that Maximo based on some templates can extract information ad process it. Use case for this functionality can be that user sends an email to email address(i.e. firstname.lastname@example.org) specifying some details in subject and body. Maximo that is listening to inbox can pickup same email, parse it and create for example service request and initialize workflow for the service request. This can be a handy feature for certain use cases where you can easy up life for Maximo end users.
Web Services Library – Application that is part of MIF (Maximo Integration Framework) used to manage Web Services in Maximo. Since this application is also part of the Integration module in Maximo it will be handled separately when we describe MIF framework and Integration module applications in Maximo.
Launch in context – application also part of MIF, used in a way that you can define launch in context entry that can be called from hyperlink, button on any other event generated action. This “execution” of the launch in context action can redirect user fro one to another application in Maximo or some external application. It is good to mention that when you define URL for the launch in context entry you can use substitution variables so that you are able to send some values as parameters in these URLs. I believe that things regarding this launch in context functionality will be much clearer later when we discuss integration framework possibilities.
Automation Scripts – this is new application that has been introduced in Maximo version 7.5. In general this application allows you to write Python like scripts that allows you to create validation and modify logic on an application instead of coding Java classes. This can help you out to speed up your configuration/customization time and also you do not have to bother with redeploying Maximo on application server each time you have a change in the code like in case with Java classes, only thing is that you have to learn how to develop these automation scripts.
Now let’s take a look at another sub-module of System Configuration module named Migration. This sub-module as mentioned previously, contains applications that are used for migrating configurations (work flows, applications, domains, objects, actions, etc.) from one environment to another. For example you should have development and test environment beside production. So every time you do some changes in development these application can help you out to smoothly migrate these changes to test instance and from test finally to production. So let’s see what are applications that belong to this sub-module.
As you can see there are 4 applications in this sub-module
Object Structures – application that is used in MIF, but also used for migration purposes. This application allows you to group Maximo object structures (those defined and created in the Database Configuration application). Also all information about the objects and attributes of those objects (meta data) is kept in several configuration tables in the database (maxobjects, maxattribute, maxtable are a sample of these tables). Now in this application you have a structure of tables that represent source that needs to be migrated. In general Maximo comes with all required object structures in order for you to do migration of any configuration.
Migration Groups – this application allows you to group object structures together so this way you get related configuration content. You can look at this way, for migrating applications there are several object structures – object structure that keeps information about application presentation – UI, than there is object structure that contains definition of menus and toolbar options in the application, etc. Now by grouping all these object structures you get a complete group of object structures that are required for migrating application. Also migration groups can be linked together forming dependency structure and this ensures that all relevant information can be migrated together. Maximo comes already with predefined groups for migrating all configuration components.
Migration Manager – migration application that is used to actually execute migration process. Over here user defines and creates packages that contains information about configuration that is required to be migrated. Also user is able to do actual deployment from this application and check results of migration. You can definitely say that this application is mostly used application from this module.
Migration Collections – This application is introduced in Maximo version 7.5 as additional application that is supposed to easy up migration process. Advantage is that allows you to easily select configuration changes that needs to be migrated by selecting appropriate application that changes are introduced to and from there selecting certain definitions in configuration that only needs to be migrated (so that you do not move all meta data about application) and finally create a package that will be pushed to migration manager to execute migration.
Just to mention that in case some descriptions of application I have made previously is not very clear to you, do not worry since in later articles of this boot camp series I shall explain more and provide you with step by step examples how something is done so that you have clear picture what and how each application is used for.
With this explanation of Migration sub-module I am finishing first part of boot camp series. I wish you a nice day …