12/04/2017

Useful SQL Queries for getting authorized Security Groups and Users for specific application and security option

Getting an authorized Security Groups
select * from APPLICATIONAUTH order by GROUPNAME, APP;
select * from APPLICATIONAUTH where APP = 'SR' and optionname = 'READ';
Getting an authorized User list
select * from GROUPUSER;
select * from GROUPUSER where GROUPNAME in (select GROUPNAME from APPLICATIONAUTH where APP = 'SR' and optionname = 'READ');

11/23/2017

BMXAA3851E - Connecting to the Server Has Been Temporarily Disabled

Technote (troubleshooting)

Problem(Abstract)

Unable to login to Maximo - receiving errors about connecting to the server has been temporarily disabled.

Symptom

When application server security (LDAP) is enabled and Admin Mode is 'ON'. When the number of administrators logged in meets the Number of Administrative Sessions Allowed setting, the next user logon will not be allow.
..
When logging into Maximo with Admin Mode 'ON' when using application server security receiving BMXAA3851E - Connecting to the server has been temporarily disabled.
If not using application server security - the typical error would be "Connecting to the server has been temporarily disabled.

Diagnosing the problem

Checked in the systemout.log for Admin Mode - you should see something along the line below:
[12/1/10 11:55:26:588 EST] 00000080 SystemOut O 01 Dec 2010 11:55:26:588 [INFO] BMXAA4014I - Setting this server's maxsession active flag to 0.
[12/1/10 11:55:26:588 EST] 00000080 SystemOut O 01 Dec 2010 11:55:26:588 [INFO] BMXAA4032I - Successfully set Admin Mode ON.

Resolving the problem

11/10/2017

Useful queries for getting "signature option" grant values

select * from APPLICATIONAUTH where groupname = 'MAXEVERYONE' and app = 'WOTRACK' and optionname in ('PUBLICREPT','CREATEREPT','RUNREPORTS');
select * from SIGOPTION where optionname in ('PUBLICREPT','CREATEREPT','RUNREPORTS') and app = 'WOTRACK' order by app, optionname;

10/22/2017

How to clear the WebSphere class caches

Technote (troubleshooting)


Problem(Abstract)

Instructions on clearing the java class caches in IBM WebSphere Application Server. Both the JVM's shared class cache and WebSphere Application Server's OSGi class cache.

Resolving the problem

IBM Support may ask you to clear the class cache. There are several reasons for this. After an upgrade, it is possible that the class cache's are still holding onto previous versions of classes. It is also possible that the caches became corrupted.
Please remember there are two caches that will need to be cleared, the JVM's cache and the OSGi cache. The server has to be stopped before clearing the cache.

10/18/2017

Excel: Count the Number of Groups on a Report

To count the number of groups on a report:
  1. Add a control to the header or footer of the group to be counted and name it something like txtGroupCount. Make the control invisible, set its control source to =1, and set its Running Sum property to Over All. This effectively generates a running count of the number of groups.
     
  2. In the report footer, add a control with a Control Source of =[txtGroupCount]. This displays the value of txtGroupCount as of the last group that occurs in the report at which time it is equal to the number of groups in the report.
     
  Note that the group count can only be displayed in the report footer (not the header) since that is the only point at which txtGroupCount contains a value equal to the total number of groups.
  This technique can be modified to show the number of groups within the group immediately surrounding the group to be counted by setting the Running Sum property of the first control to Over Group, and placing the second control in the surrounding group's footer instead of the report footer.

10/11/2017

Scheduling automation scripts to run as part of cron tasks

Cron tasks are jobs that run automatically on a fixed schedule on the application server. For example, the ESCALATION cron task processes escalations to ensure that critical tasks are processed on time. You can use several predefined cron tasks and you can also define new cron tasks. For new cron tasks, you must provide a Java™ class implementation that contains the business logic that is executed on a schedule.
Automation scripts support new cron tasks by providing the com.ibm.tivoli.maximo.script.ScriptContask Java class. By using this Java class reference in your cron task definition, you can attach an automation script that provides the business logic that is executed by the cron task.

10/06/2017

MBOVALUEADAPTER – INITIAL, PREVIOUS AND CURRENT VALUE OF A FIELD

The Theory

Sometimes when you work with a Mbo in a MboSet and you change fields in a Mbo it can be useful to get the original value of the field before the change or the last value of the field before the change. So basically a field can have three different values we can ask for:
For that purpose we can use the MboValueAdapter and MboValue classes which are automatically initialized with every Mbo retrieved from the system

10/03/2017

Specifying the properties of wait nodes

You use the Workflow Designer or Workflow Designer (Advanced) application to specify the properties of wait nodes. Wait nodes specify that the process is halted until a specific event occurs.

About this task

You can specify the following properties for wait nodes:

Disabling Status Changes With Records In Workflow

Technote (FAQ)


Question

In earlier versions of Maximo you could not change status if a record was in Workflow, does it work that way in versions 6 and 7?

Answer

Problem Definition
The implementer wishes to block any manual status changes when the current record is in workflow. In 5.2, manual status changes were always blocked. In Maximo Versions 6 and 7 it is configurable within a process design.

Solution

Firing Maximo workflow event from code

So, how should I fire maximo.workorder.update?
In our Maximo workflow we have a few schemas in which work order reaches a Condition node with a check on a startdate. If current date is less than it's startdate then work order goes to a Wait node with "maximo.workorder.update" condition. So when the scheduled date for WO comes people need to go to WO tracking and save this WO manually. Only then it continues it's way through the workflow. Otherwise WO will sit on that Wait node till the end of time.
What I want to do is to trigger this update event by crontask everyday so when the right date comes WO will wake up by itself.
I inspected source code for a Save button in WO tracking application and found that no matter what there's MboRemoteSet.save() method call. I assumed that you need to get some changes done and then call save() on the right MboSet. Also I know that in DB there's table called EVENTRESPONSE that keeps track of WOs sitting on the Wait nodes in workflow. My crontask class contains this code:

9/29/2017

Using Autoaccept and Autoreject in Workflow

Technote (FAQ)


Question

How do you use the Autoaccept (or Autoreject) feature in Workflow?

Answer

Occasionally you need to have Workflow directly process through a Task node without stopping. One purpose of this is to force a Save to the database for the record in Workflow. 
Another way to force a Save is described in this Technote:

Escalating a Workflow Assignment to a Different User

Technote (FAQ)


Question

Is it possible to have a workflow assignment automatically reassigned or escalated after a certain amount of time has passed?

Cause

In Maximo 4 and 5 to do an Escalation in Workflow all you did was to populate the 3 Escalation related fields on the Assignment row in Task Properties. This changed starting with Maximo 6. To get the same functionality as in Maximo 4 and 5 you must use this procedure.

Answer

9/20/2017

GL account validation configuration

select * from maxvars where varname in ('DISABLEGLSWITCH', 'GLCHECKCOA', 'GLVALIDATEFP', 'GLSETDATEFP', 'GLREQUIREDFORTRANS');






Automatic integration message reprocessing

Technote (FAQ)


Question

How can I retry or delete a large number of messages without using the user interface to process small sets of messages for hours.

Answer

If you can identify the exact set of messages with a query against the MAXINTERROR table, then you can create an escalation to delete them or to change the status to RETRY.