Pages

Tuesday, April 24, 2012

Create Maxdemo data post installation

The Maximo product installation contains an option to automatically create a Maximo/Maxdemo database. If you choose to manually create the database and/or would like additional databases you can run the MAXINST program. Additional Maximo and/or Maxdemo databases can be created after the installation using the MAXINST program.
Follow the steps in the Installation Guide to manually create a database. Once the database has been created a Maximo or Maxdemo database can be created in that database instance.
  1. Open a command prompt
  2. Change directory path to: ibm\smp\maximo\tools\maximo
  3. At the prompt, type maxinst -s<tablespacename> -t<tablespacename>
Maximo reads the maximo.properties file (i.e. c:ibm\smp\maximo\applications\maximo\properties) for database connectivity information. It then connects to the database (via the JDBC connection) and
creates a Maxdemo database. If you would like to create the empty Maximo database, use the -imaximo flag. For example, at the command prompt, instead of just maxinst, type: maxinst -imaximo

Tuesday, April 10, 2012

How to retrict an application to show limited data from the object

In some case u may want to create a new application from an existing application and want to restrict the data to be shown based on some condition or you want to do it in an existing application. Following steps will help
  1. From the application designer export the applications that you want to work on.
  2. Save the XML and keep a backup of working XML.
  3. Open the XML in any XML editor like npp 
  4. Add the following text in the table control of List tab apprestrictions="'TYPE='TOOL'" where TYPE='TOOL' is the condition that I have used, this can any complex where clause on the main object on which the application is based on.
  5. Save the XML and import it from the application designer.

Friday, March 30, 2012

Some important to note System Properties

UI Session Limitation
Below 2 properties can used to show Error 503 when maximum number sessions defined by design is exceed.
mxe.webclient.maxuisessions
mxe.webclient.maxuisessionsend503

SCCD Home Button
mxe.webclient.homeButtonHeaders -- Navigator: Moves Goto menu to left of the screen and adds Start Center button to the header

Email Listener
mxe.lsnr.validateperson -- Flag to indicate person need to be validated in Email Listener or not

Fetch Limit Properties
mxe.db.fetchResultStopLimit-- Default fetch stop limit for the objects.
mxe.db.fetchStopExclusion -- A comma seperated list of objects that are excluded from fetch stop check.
mxe.db.fetchStopLimitEnabled -- Enable the fetch limit hard stop when the fetch count is over the limit

Integration Properties
mxe.int.webappurl -- Integration Web Application URL
mxe.int.verifywebappurl -- verify web app url
mxe.int.globaldir -- Integration Global Directory

Doclinks Properties
mxe.doclink.doctypes.defpath -- Default path for doclinks
mxe.doclink.doctypes.topLevelPaths -- Valid top level paths for doclinks
mxe.doclink.doctypes.allowedFileExtensions -- Allowd file extensions
mxe.doclink.path01 -- Path 01 for doclinks -- /DOCLINKS/ProductionDocs=http://localhost/



Tuesday, March 27, 2012

How to show custom dialog in workflow process

There are cases while working with workflows we need to show some custom dialogs box which will have some dynamic values based on some conditions.

To achieve this following steps needs to be followed.

  1. If the dialog box that you want does not exist out of box then create a new dialog box with a unique dialog id having attributes retrieving values the way you want. 
  2. Create sigoption and maxmenu entry with the same name as the unique id that you used for dialog box.
  3. Now use this maxmenu id in the action attribute of the interaction node for the workflow when you want to the dialog box.

Thursday, March 15, 2012

Maximo Variable and Constants

Below are list of few variables and constants that can be used in building expression for ur where clause.

:&date& -- Current date
:&datetime& -- Current date/time
:&username& -- Logged in user ( eg :ownerid=:&user&)
:&personid& -- Person ID of the logged in user ( eg :supervisor!=:&personid&)
:&appname& -- Application name 
:&mboname& -- Name of the current MBO
:&ownername& -- Name of the owner MBO ( eg :&owner&.po.$old_description like '%Turbin%')
&SYSDATE& -- For current time stamp
!NOT READY! -- To get the default value for the synonym from the synonym domain associated for the current attribute.

~null~ for null value searching in any resultsets







Tuesday, March 13, 2012

Maximo login auto-complete is not disabled



Problem(Abstract)

When logging in to Maximo, the username/password auto-completes

Resolving the problem

1. Modify the login.jsp file and add autocomplete="off" to the input lines pointed by the arrow below. Login.jsp is usually located
at <MAXIMO_Root>\applications\maximo\maximouiweb\webmodule\webclient\login\ directory:
2. Save the modified file.
3. Stop the MXServer
4. Rebuild maximo ear (make a backup of the existing maximo ear before rebuilding)
5. Deploy the new maximo ear
6. Start the MXServer
7. Clear the browser cache.

The auto-complete will be disabled. You will have to type in the username/password every time logging in to Maximo.

How to clean a JMS queue messages

Till Maximo 7116 there was no way to clear the JMS from Maximo front end. So to clear the message for either using WebSphere console
Buses > intjms > Bus members > Messaging engines > [YOURJMSBUS] > Queue points > [YOURJMSQUEUE] > Messages 

or using DeleteQueue command from <Maximo>\tools\maximo\j2eeclient\deletequeue.cmd  as detailed in View/DeleteQueue

After Maximo7116 you can use external system application select action Add/Modify Queues option and use the buttons View Queue Data or Delete Queue Data

Changing Application Listings within the Go To

Question

Can applications be changed within the Listing of the Go To?

Answer

The MAXMENU table builds the listing and order of the Go To. To change the order/what applications appears within the Go To – run the following query:
select * from MAXMENU where MENUTYPE = 'MODULE' and visible = '1' order by position, subposition

The result of this query will show how the Go To menu is built.

In the following example, the Conditional Expression Manager will be moved from the Administration module to the Platform Configuration module:



1) To change a position of a Go To reference, you need to specify the MODULEAPP (what listing the application will appear in), the POSITION (numeric reference to the grouping of the application) and a unique SUBPOSITION value (in what order and where the application reference will appear).

Run the following query to gather the needed information in regards to the Conditional Expression Manager reference:

select moduleapp, position, subposition, keyvalue from MAXMENU where MODULEAPP = 'SETUP' and KEYVALUE = 'CONDEXPMGR'

The following will be the result:



Run the following query to gather the needed information in regards to the Platform Configuration 'layout':

select moduleapp, position, subposition, keyvalue from MAXMENU where MODULEAPP = 'UTIL'
order by position, subposition

The following will be the result:



From the results above, the MODULEAPP needs to be referenced as 'UTIL' and the POSITION (group) needs to be '11130' and the SUBPOSITION needs to be a unique value and based off the order of where the application will appear.

2) Run the following UPDATE statement to move the Conditional Expression Manager from the Administration module to the Platform Configuration application, in the very 1st position:

UPDATE MAXMENU
set MODULEAPP = 'UTIL'
where keyvalue = 'CONDEXPMGR'

UPDATE MAXMENU
set POSITION = '11130'
where keyvalue = 'CONDEXPMGR' and MODULEAPP = 'UTIL'

UPDATE MAXMENU
set SUBPOSITION = '9'
where keyvalue = 'CONDEXPMGR' and MODULEAPP = 'UTIL'

commit;

Run the following select statement to see the results:

select moduleapp, position, subposition, keyvalue from MAXMENU
where MODULEAPP = 'UTIL'
order by position, subposition



Restart the Application Server

3) Log In to Maximo – Navigate to the System Configuration – Platform Configuration:








IBM Support Link 

Monday, March 12, 2012

Maximo Performance Tuning and Best Practices

 Below is the IBM link for STE 

https://de202.centra.com:443/GP/main/000001e226320000012b471af7638ce2

password : tiv0li (0 Zero inplace of o)
 

Thursday, March 1, 2012

Error: Required Field Process wonum is Blank

When saving a workorder , get error: "Required Field Process work order is Blank"

Cause

This error can happen if an index is missing / not unique, and refreshing index via database configuration application will change the primarykeycolseq value during Data Migration or Database Upgrade.


Resolving the problem
Run the query below to determine the problem:
select attributename, primarykeycolseq from maxattributecfg where objectname = 'WORKORDER' and attributename = 'WONUM'
If the output returns NULL for primarykeycolseq then run the update statement below to fix the problem:
update maxattributecfg set primarykeycolseq = 2 where objectname =
'WORKORDER' and attributename = 'WONUM'
update maxattribute set primarykeycolseq = 2 where objectname =
'WORKORDER' and attributename = 'WONUM'
Restart the Application Server for the change to take effect.


You should be able to save any workflow process after fixing the primarykeycolseq

Tuesday, February 28, 2012

Deleting integration messaging information from message tracking application

Run the following commands

Delete from MAXINTMSGTRK;
Delete from MAXINTERROR;
Delete from MAXINTERROREXTRACT;
Delete from MAXINTERRORMSG;
Delete from MAXINTMSGTRKDTL;

Tuesday, February 14, 2012

Auto numbering while importing data using MEA / MIF

Normally for application where we have auto numbering enabled to key field, we want this to applicable while creating the data using integration framework as well.
This can be achieved using following steps.
  1. Make sure the auto numbering is set for the keyvalue in the database configuration and Organization application.
  2. For the object structure restirct that attribute from inbound using Inbound Setting Restriction select action. This will make sure that if the record incoming record is existing then it will update the existing else it will create a new record with next values in the sequence for autokeyed attribute

Throw custom error msg on saving record without java customization

There could be scenarios when you want to custom error message based on some condition only while saving record but not while giving values to field.
If it is needed to while entering the values to some fields then this can be achieved using Tabledomain with proper condition and giving msggroup and msgkey values.

There are 2 ways to throw error message while saving the records based on some condition.
  1. Create a new workflow having ur business logic and add the workflow to your application save button using option edit workflow Go buttons for the newly created workflow.
  2. Second way of achieving is using integration framework
    • Create publish channel on the object on which the application is created
    • Create a new processing rule with stop action and give the applicable condition using the Add / Modify condition and then give proper message key value. This message key value should be having message group as iface.
    • Create a rule to skip the record in all conditions so that the interface is used only for throwing the error message
    • Enable the publish channel.
Note: Second option will not work if the Admin mode is turn ON, as in Admin mode all the events will be disabled so the event listener will not work.

Workflow and Escalation migration where clause

--Query to get the Syncronised processnames.

select processrev,processname,mainprocess from maximo.wfrevision  where mainprocess =  'ITDCHGSAVE'  and revision =(select max(revision) from maximo.wfrevision where mainprocess =  'ITDCHGSAVE' ) order by processname for read only

--Communication template used in workflow

select templateid from maximo.commtemplate where templateid in (select templateid from maximo.wfnotification  where (processname,processrev) in (select processname,processrev  from maximo.wfrevision  where mainprocess =  'PMCHGITLV3'  and revision =(select max(revision) from maximo.wfrevision where mainprocess =  'PMCHGITLV3' ) order by processname)) or templateid in (select templateid from maximo.ESCNOTIFICATION where escalation in ('ITDCHGRAUTO','ITDCHAPRGRCOMP'))

--Action and Action groups in the workflow.

select action from maximo.action where action in (select action from maximo.wfaction where (processname,processrev) in (select processname,processrev  from maximo.wfrevision  where mainprocess =  'PMCHGITLV3'  and revision =(select max(revision) from maximo.wfrevision where mainprocess =  'PMCHGITLV3' ) order by processname)) or action in (select action from maximo.ESCREFPOINT where escalation in ('ITDCHGRAUTO','ITDCHAPRGRCOMP'));



--Role from maximo.workflows.

Select maxrole from maximo.maxrole where maxrole in (select sendtovalue from maximo.COMMTMPLTSENDTO where type='ROLE' and templateid in (select templateid from maximo.wfnotification  where (processname,processrev) in (select processname,processrev  from maximo.wfrevision  where mainprocess =  'PMCHGITLV3'  and revision =(select max(revision) from maximo.wfrevision where mainprocess =  'PMCHGITLV3' ) order by processname)) or templateid in (select templateid from maximo.ESCNOTIFICATION where escalation in ('ITDCHGRAUTO','ITDCHAPRGRCOMP'))) or maxrole in (select roleid from maximo.WFASSIGNMENT  where (processname,processrev) in (select processname,processrev  from maximo.wfrevision  where mainprocess =  'PMCHGITLV3'  and revision =(select max(revision) from maximo.wfrevision where mainprocess =  'PMCHGITLV3' ) order by processname));

Monday, February 13, 2012

mos#loaderror after dbconfig or on restart

Such cases arises if the MOS are not properly loaded after the dbconfig.
If u can see log of time of dbconfig and if u find any error like mos#loaderror. 

This error occurs when any persistent attributes is excluded from the integration object or a non-persistent attribute is included in the integration object and during the dbconfig these attributes are removed but the reference of these attributes in maxintobjcols is not removed.
In such cases if u are lucky integration wont work only for that interface,  some times whole integration may not work. 

To remove such error check the attribute for which it is giving such errors and remove them from maxintobjcols table. The biggest funny thing is that at one time u can see only one attribute at a time. If there are many such attributes then it may require many restarts of the server.


Thursday, February 9, 2012

BMXAA7942E - This template is being modified by another user

Problem(Abstract)

The BMXAA7942E error message occurs when attempting to click on the "Modify Existing Template" in Start Center in Maximo 7.5

Symptom

The BMXAA7942E error occurs when clicking on the "Modify Existing Template" in Start Center.

Cause

The BMXAA7942E error occurs when someone attempted to modify a Start Center Template, but failed to cancel or save the modification.
User A logs into Maximo, clicks on Modify Existing Template and as soon as he picks a template from the list, the 'Modifying a Template' flag is on. At this stage, only the "Save Template", "Delete Template" and "Cancel Changes" icons will display at the top of the toolbar.
If User A navigates elsewhere or closes his browser without clicking any of these "Save Template" or "Cancel Changes" buttons.
When User B attempts to click on the "Modify Existing Template" next time for the same template, the "BMXAA7942E - This template is being modified by another user " error message will be displayed.

Diagnosing the problem

In the database, the groupname in the SCConfig table for that template is changed to null.

Resolving the problem

To fix this, simply find the templateid that gets this error, then insert the correct value for the groupname for that template and the problem will be fixed.
For example, do a query in the database as follows.
select groupname from scconfig where sctemplateid=5
or
select * from scconfig where groupname is null
If the groupname is null, give it a value and you should be able to proceed with modifying the Start Center template again.

IBM Support 

Not able to View Error Message in Message Reprocessing Application in Cluster Maximo Instance

When there is any error during import or export in via MIF, normally we should be see the error message and do correction from Message reprocessing application.This is very standard process and runs without any issues in a Single server instance.

In clustered instance the error will not viewable from all application servers if the global directory is not setup properly in Maximo. This global directory should be shared file system which is accessible from all application servers. See Setup globaldir.

If globaldir is not setup properly but still you want to view the message then you need to go to specific in which the message is getting processed, normally this will be either Integration or cron task server in clustered environments



Opening Ports in Linux

Follow below instruction

# vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
# /etc/init.d/iptables restart


Verify that port is open 

netstat -tulpn | less  

Make sure iptables is allowing port 80 / 110 / 143 connections:
iptables -L -n


 

Friday, February 3, 2012

Changing the language of SystemOut.log without changing the operation system’s locale


. Logon to the Websphere Application Server console.
2. Navigate to Servers --> Application Servers --> <server name> --> Process Definition --> Java Virtual Machine.
3. Add the parameters below in the Generic JVM arguments:
-Duser.language=<language code> -Duser.region=<country code>

For example:
if it is a Chinese environment and you want to display English in the SystemOut.log file, you can set
-Duser.language=en -Duser.region=US

Tuesday, January 24, 2012

Random timeouts after configuring LDAP


Problem(Abstract)

Users randomly logged out while working in the application.

Symptom

Users are logged out while working in the application before the time out value in set in the web,xml

Cause

This can be caused by the LPTA time out values in Websphere if users are Directory Authentication

Diagnosing the problem

Have users time when they are logged in compared to the random log out time. This may be synchronized with the amount of time the LPTA time out is set for. You can also check your system out logs, there may be token session time out messages displayed.

Resolving the problem

1) Choose Global Security then Click on LPTA
2) Look for the LTPA timeout value

The time here is set to 120 minutes by default. This can time the user out of Maximo well working after 120 minutes of activity whether it is idle or not and regardless of what is in the web.xml

3) Increase this value to a limit that suits your users
4) Stop the jvm, synchronize your nodes and restart the jvm

*Note if you increase this value to a higher number your inactivity timeout set for session-config in the web.xml will still work, users will be timed out after inactivity, just not randomly.