Pages

Friday, October 28, 2011

Looking for clarifications for Classification indicators (“Use in Description Generation” and “Use in Specifications”) at the Attribute Level

Question

In classifications application -- Use with Object Detail section, there are two check boxes (“Use in Description Generation”, and “Use in Specifications”). I want clarification on what these two check boxes actually control

Answer

These two indicators are similar with the ones in Classification tab. But these two indicators are used to decide copying the attribute value to the object (asset, location, item) description or not.

Used in Description Generation?:
Does the description of the attribute appear in the description of the classification in the related application?

Used in Specifications?:
Does the attribute appear on the Specifications tab of the related application?

For example (On Maximo demo):
Classification = DOM
Classification Path = TUBING \ DOM
DOM description = Drawing over a Mandrel
TUBING description = Tubing
Attribute:
IDIAM, Data Type = NUMERIC
MATERIAL, Data Type = ALN
ODIAM, Data Type = NUMERIC
TENSYLD, Data Type = NUMERIC

In Classifications application, both “Generate Description” and “Use Classification” are ticked.

In Classifications application -- Use with Object Detail section, select Attribute = IDIAM:
If you did not tick the "Used in Specifications?" check box, it is not a matter whether the “Used in Description Generation?” check box is ticked or not, Maximo will NOT copy this attribute to Object application Classification Attribute.

If you did not tick the "Used in Description Generation?" check box, but ticked the “Used in Specifications?” check box.
If you create an asset, and copy the Specification to the asset (TUBING \ DOM), Maximo will copy this attribute into the Asset -- Specifications tab.
It is not a matter is you enter value in “Numeric Value” and/or “Unit of Measure”, Maximo will NOT copy these values (“Numeric Value” and “Unit of Measure”) of the attribute to Object application description.

If you ticked both "Used in Description Generation?" and “Used in Specifications?” check boxes.
If you create an asset, and copy the Specification to the asset (TUBING \ DOM), Maximo will copy this attribute into the asset -- Specifications tab.
If you entered value in “Numeric Value” and/or “Unit of Measure” fields (e.g. Numeric Value = 100; Unit of Measure = IN), when saving, Maximo will copy these values (100, IN) to Asset description as below:
Tubing, Drawing over a Mandrel, 100.0 IN,

IBM Support 

Wednesday, October 26, 2011

How can one start a specific workflow from a button within a field area?


Question
How can one start a specific workflow from a button within a field area?
Cause
Here is a simple example of how you can start a workflow from a simple button within the application field area.
Answer
4Application: Incidents
Step 1
Create the workflow you want to start, otherwise you can use any active workflow you have.
For our example, we will create a simple workflow which has as action Create Workorder
The action on the workflow:

Step 2
Go to Application Designer → Incident
Drag and drop from Control Palette a Button Group within the area where you want to have your button:

Step 3:
Click on your button and then click on Control Properties.
Here are the settings for your button:
Label: Create WO
Event = ROUTEWF
Value = CREATEWO (or any name of the workflow you want to start)

Step 4
Check your results:


Monday, October 24, 2011

Setting Values for Limits and Tolerances

Question

Is there a difference between a zero value and a null value while setting limits for PR, PO, Invoices, MR, or contracts?

Answer

Yes. When a new security group is created the limit values default to zero. Zero indicates that the user/group has a limit of zero however a null or blank field indicates that the user has no restrictions and in effect has unlimited approval permissions for the given record type

IBM Support 

Incorrect Hierarchy when loading Classification data

Problem(Abstract)

Attempts to load classifications result in wrong hierarchy when using IBM Maximo Asset Management Integration Framework or Maximo Enterprise Adapter.

Symptom

After loading a classification set containing a parent / child relationship, the hierarchy is incorrect when shown in the DrillDown option. The classification parent is correct in the Classification application.

Cause

In the CLASSSTRUCTURE table there is a field used to build this Hierarchy in the DrillDown option.
The CLASSSTRUCTURE.HASCHILDREN field is set to 1 (true) when the classification is a parent Classification. Also it is set to 0 (false) when the classification has no child classification.
This problem happens when HASCHILDREN is not properly set when loading the Classification data.
By default this field is not INCLUDED in the MXCLASSIFICATION Object Structure.

Diagnosing the problem

Query the CLASSSTRUCTURE table and verify if the HASCHILDREN is properly set

Resolving the problem

To resolve this issue you have to re-import all classifications and set the HASCHILDREN as per the Classification hierarchy.
Before running the import process, the HASCHILDREN has to be included in the Object Structure.
1 - Go to > Integration > Object Structure > Select the Object you are using.
2 - Select Action > Exclude / Include Fields
3 - In the Source Object List, select CLASSSTRUCTURE
4 - In the Persistant Fields sub-tab, look for HASCHILDREN and UNCHECK the EXCLUDE checkBox. This will include the field in the schema.
5 - Click the OK button.
6 - Select Action > Generate Schema / View XML > OK
7 - Click the OK Button

IBM Support 

Changing a BIRT report's default print format from HTML to PDF

How to update ASSET Classification using Integration Framework

How to update ASSET Classification using Integration Framework (MIF) ?

Cause

The MXASSET Object Structure can be ised to update ASSET Classification data using the Integration Framework. The MXASSET Object Strucuture is a System Defined object. Some changes are required to update the ASSET Classification.

Answer

By defult the ASSET.CLASSSTRUCTUREID is not included in the Object Structure. You must modify the object structure to include it. This raises an Alias conflict and requires changes to avoid the alias conflict.

To include the ASSET.CLASSSTRUCTUREID:
1 - Go to > Integration > Object Structure > Select MXASSET
2 - Select Action > Exclude / Include fields
3 - Select the ASSET object in the list
4 - Select CLASSSTRCTUREID in the Attribute list and UNCHECK the EXCLUDE checkBox.
5 - Click OK, Now there is an ALIAS conflic because there are more than one CLASSSTRUCTUREID in the flat structure.

To avoid the ALIAS Conflict
1 - Select Action > Add Modify Alias
2 - Select ASSET object in the list
3 - Select CLASSSTRUCTUREID in the field list ( See the DUPLICATED is TRUE)
4 - Change the ALIASNAME to AS_CLASSSTRUCTUREID.
5 - Click OK, be sure the Alias Conflict ( in the up-right corner ) is now FALSE.

This is sample CSV template to update only the ASSET Classification. It doesn't include any Attribute value.
By default, when there are no Attributes in the incoming message, all attributes will be automatically populated in the Asset Specification tab, but without values.

EXTSYS1;MXASSETInterface;AddChange;EN
ASSETNUM;AS_SITEID;AS_ORGID;AS_DESCRIPTION;AS_CLASSSTRUCTUEID
TEST1;BEDFORD;EAGLENA;Asset Test 1;1325

IBM Support

Using an Escalation to Change Item Status

Question

Is it possible to automatically change an Item's status?

Answer

Yes. You can change an item's status automatically by using an escalation and an associated action. In this case we will have the escalation query for items in the Item Master application that have status set to PEDOBS.

The associated action should look something like this:






Note: The rules applied to items are still considered when this escalation is run.

IBM Support 

BIRT Report takes a long time to run

Problem(Abstract)

How to ensure a BIRT report runs a lot faster?

Cause

Boolean is enabled in one of the BIRT .jar files.

Resolving the problem

Please follow the following steps to solution:
1. Locate the file com.ibm.tivoli.maximo.report.birt.viewer_1.0.0.jar
in:
applications\maximo\maximouiweb\webmodule\WEB-INF\birt\platform\plugins

2. Make a backup of the file to a directory outside the Maximo
installation.

3. Open the jar (for example with Winzip) and navigate to
web\webcontent\birt\pages\dialog. Extract the file
PrintReportServerDialogFragment.jsp.

4. Open PrintReportServerDialogFragment.jsp in a text editor.

5. Locate the line near the top that reads:
boolean enable = ParameterAccessor.isSupportedPrintOnServer;

Replace that line with the following:
//boolean enable = ParameterAccessor.isSupportedPrintOnServer;
boolean enable = false;

6. Save the changes and replace the PrintReportServerDialogFragment.jsp
in the jar with the updated file.

7. Rebuild and redeploy the Maximo EAR.

Note:

By adding "boolean enable = false" you disable the server side printing.
This server side functionality is not supported by IBM Maximo .
In some servers it takes 5 to 10 minutes for the server to search all printers.
This will disable that search and can speed up the running of the reports.

IBM Support 

Using -Dmxe.name with MAXSESSION and LOGINTRACKING tables to identify which cluster member user is logged into

Question

Is it possible to distinguish server instance names so that you can see exactly which servers users are logging into.

Answer

The MAXSESSION table, from which the LOGINTRACKING table receives its entries, is used to link Maximo user sessions (userid) to Maximo server sessions (maxsessionuids). It is maintained for security purposes only.
In this table, The serverhost and servername fields indicate the name of the web application server and its mxe.name. In a clustered environment, the MAXSESSION host entry is always the cluster name.
The -Dmxe.name java generic argument is used to distinguish JVMs for logging purposes, by creating separate log files for each JVM by name.
Adding the -Dmxe.name parameter in the Generic argument changes the information that is put into records created in the MAXSESSION table so that the servername is identified separately from the cluster name. The value entered into the table is the last started member of the cluster. Therefore, it does not identify the exact cluster member that the user session is running on.

IBM Support 

Changing maximo.properties to point to a new database.

Question

How do I point Maximo to a new or different database?

Answer

1. First you must change the maximo.properties file to include the location and name of the new database.
The line that you must change will depend on the database product you are using. For our example here we will use Oracle.
In the section titled "Database Related Properties" you should see a line that looks like this:

mxe.db.url=jdbc:oracle:thin:@localhost:1521:mx6

This line is set to the currently used database for Maximo. You will need to modify this line in order to point to a new database. The syntax is as follows:

e.g Oracle thin mxe.db.url=jdbc:oracle:thin:@<HOST>:<PORT>:<SID>

The syntax for SQL Server:

// e.g. SqlServer 6.5 i-net opta 2000 driver mxe.db.url=jdbc:inetdae6:hostname:port?database=dbname&language=us_english&nowarnings=true

// e.g. SqlServer 7.0 or higher i-net opta 2000 driver
mxe.db.url=jdbc:inetdae7a:9.32.230.183:1433?database=MAX627&language=us_english&nowarnings=true&mars=false

The Syntax for DB2:
mxe.db.url=jdbc:db2://localhost:50000/dbalias

2. In Maximo 7 the maximo.properties files is encrypted. Please see the following link for modifying the maximo.properties file in release 7.
http://www-01.ibm.com/support/docview.wss?uid=swg21314942

IBM Support 

Asset Safety Options Are Not Editable

Question

Is there a reason I can't add Safety features like Hazards and Precautions, Hazardous Materials, Lock Out/Tag Out procedures or Safety-Related Assets on the Asset application in Maximo Essentials?

Cause

The following information summarizes the functional restrictions of Maximo Asset
Management Essentials as compared to the full version.
Advanced applications not included nor available with Maximo Essentials are:

Workflow
Condition Monitoring
Desktop Requisitions
Financial - Cost Management
Routes
Hazards
Precautions
Lock Out/Tag Out
Safety Plans

Components not available for purchase with Maximo Essentials:

Industry Solutions
Spatial
Linear
Calibration
Change and Corrective Action Manager
Service level agreement (SLA) Manager
Enterprise Resource Planning (ERP) Integration (SAP and Oracle®)

For further reference, please see:
http://www.redbooks.ibm.com/redpapers/pdfs/redp4486.pdf

Answer

Clients needing any of this functionality must license the Maximo Asset Management
Enterprise product.

Please talk to your local IBM representative and purchase a license for the Maximo Asset Management
Enterprise product if you need this functionality

IBM Support 

Date Lookup control does not appear in Report Parameters after Time Out Warning

Problem(Abstract)

After the user receives a Time out warning, the Date Lookup control does not display.

Symptom

The Date Lookup Control does not display in the Report Parameters

Resolving the problem

There are a couple fixes for this..
1. Log out & log back in..
2. Bring up a different lookup in the report parameters page.. After this, the date lookup will display.

IBM Support 

Generating Heapdumps - IBM Maximo Application Server hosted on WebSphere

Question

A heapdump is a useful piece of information when troubleshooting a server performance problem. Heapdumps are automatically generated when the server throws a OutOfMemoryError code. However, not all performance problems cause OutOfMemoryError conditions, and you may want to trigger one on your own for analysis.

Answer

To generate a heapdump when OutOfMemoryError condition does not apply, follow the steps for the appropriate operating system for WebSphere 6.0.2, 6.1 and 7.0 in the Related Information section below.

Related information

Generating a Heapdump in WebSphere on Windows
Generating a Heapdump in WebSphere on AIX and Linux
Generating a Heapdump in WebSphere on Solaris
Generating a deapdump in WebSphere on HP-UX

Increasing the length of a GL attribute when it is Must Be attribute.

Problem(Abstract)

Database upgraded from an earlier version of Maximo has GL attributes set to a length of 27 but client is not able to set new GL attributes in version 7.5 to the same length as they are Must Be fields with a length of 23.

Resolving the problem

In Maximo 7.5 the variables of type GL are set to a length of 23 by default on a new database. If the client has an upgraded database where his GL values are set to a length greater than 23 (for example 27) then it is not possible to change new GL variables in 7.5 such as the INVUSELINE.GLCREDITACCT attribute to a length of 27 because it is a Must Be attribute.
You can do this by changing your GL configuration to make
them all length 28, and then do it again to go back down to 27.
Try this on a test environment with your database and
application backed up.

Goto Database Configuration - Select Action - GL Account Configuration
Increase the length of one of the components (like the last one) by 1 so
that the total length is 28.

Apply configuration changes.

Now go back and decrease that last one by 1 so that the total is 27
again. Apply changes again.

The GL config process works on ALL attributes which have a maxtype of GL
rather than by using SAMEAS relationship information. (Same way that Field
Length and Format works on all AMOUNT and INTEGER maxtypes.) These all
have MUSTBE set to 1 to prevent them from being changed in the usual
way.

IBM Support 

Using Workflow Administration

Question

Is there any easy way to see all active workflow processes, the records in them and their current assignments?

Answer

Yes. The easiest way to gather this information is to go to the Workflow Administration application. In this application you can see all active workflows that currently have records in them. Additionally you can see, the workflow process name, revision number, the owner table that the workflow relates to, the record that is currently in the workflow, the originator of the record and the time that the record was put into workflow. The application also gives you the ability to see who the current assignee for the workflow is by pressing the "notepad" icon to the right of the line. If for some reason you need to stop the workflow process, you can use the "stop sign" icon to the far right of the line to do so.

IBM Support 

CTGIN2032E: The port number is not listening on the host

Question

This error is a result of a connection error, typically, on the server where WebSphere Application Server is installed.

Cause

The most common cause of this failure is related to the Windows 2008 Firewall not allowing traffic to the specified port.

Answer

To resolve review the firewall setting in Windows Firewall panel in the Control Panel, or via the netsh command from a Windows command prompt.

If you would like more information regarding Windows Firewall settings please see the following links:

Disable or Enable Windows Firewall on the Compute Nodes
http://technet.microsoft.com/en-us/library/dd772588%28WS.10%29.aspx

Using the Netsh Advfirewall Command-Line Tool
http://technet.microsoft.com/en-us/library/cc770887%28WS.10%29.aspx

IBM Support

Populating the SUPERVISOR field from reorder routine

Question

Trying to populate the PR.SUPERVISOR field from the Inventory reorder routine.
Can the requestedby person's supervisor to be populated from reorder?

Answer

The following steps will cause the value from the Requestedby person's Supervisor field to populate the PR.SUPERVISOR field when running a reorder.
1) Create a new crossover domain in the domains application called PERSONTOPR with the following:
Properties:
Object : PERSON
Validation clause: personid = :requestedby
Crossover fields:
- Source : SUPERVISOR
- Destination : SUPERVISOR
- Accept Null is checked

2) Associate to Requestedby field
Go to the Database Configuration application and pull up the PR object.
Filter for the REQUESTEDBY attribute in the domain field for REQUESTEDBY add the crossover domain created in step 1 (PERSONTOPR)
Save and Apply Configuration Changes from the Select Action menu

IBM Support 

The current user count does not reflect the actual number of users logged into the system

This technote explains why the number of users listed in the key performance indicators for current login and user sessions may not match the actual number of logged in users at any given time when using Maximo Asset Management..

Cause

Because the current user count is only updated every 15 minutes (at a minimum), the current user count sometimes does not reflect the actual users logged into the system
Details
The key performance indicators (KPIs) for current login and user sessions uses the CURRENTCOUNT column in the LOGINTRACKING table. The value of the CURRENTCOUNT column is updated based on the interval specified in the mxe.ClientCountMinutes property.
The minimum for the update interval is 15 minutes. Even though a user can set a different update interval in the user interface, the minimum value for the mxe.ClientCountMinutes property is always 15 minutes.
Consider the following example:

Time​​Action​​Number of users​​
in the KPI counts​​
Actual number of users​​
who are logged in​​
12.01 ​​Mary logs in​​
1​​
1​​
12:08 ​​John logs in​​
1​​
2​​
12:12 ​​Lucy logs in​​
1​​
3​​
12:15 ​​Update interval is reached, the counter sets to 3​​
3​​
3​​
12:16 ​​Steve logs in​​
3​​
4​​
12:18 ​​Mary logs out​​
3​​
3​​
12:19 ​​Steve logs out​​
3​​
2​​

Resolving the problem

No action required - this technote is for information purposes only.

When the number of users in the KPI counts is reviewed closely, particularly in a small environment where users frequently log in and log out, the numbers do not match up. However, in a production system with many users working over an entire day, these numbers will normalize and reflect actual usage.

IBM Supprt

Uninstall Maximo and Middleware on the Administration Machine

Question

Want to remove Maximo and if installed, middleware from the same administration machine

Answer

There may be a need to uninstall Maximo and the middleware components installed on a machine. If you want to run the install again on the machine, a reimage of the machine may not be necessary. The machine can be 'cleaned' of Maximo and other TPAE products and any of the middleware components installed.
This process removes all the components installed. It is not an uninstall of a single product/component. This process is to 'clean' the machine from an install and/or attempted install that failed. This process assumes the administrative machine is for Maximo/TPAE products. This process removes the deployment engine (DE). If you have installed any of the middleware components via the middleware installer you will need to uninstall those also. After the machine is 'cleaned' of a previous installation a new installation can be started.

1. Stop all the middleware services (WebSphere, DB2, TDS) and stop the DE service (IBM ADE service)

2. From Control Panel/Add or Remove programs
a. Uninstall the middleware components (i.e. - WebSphere plug-in, WebSphere update installer,
Websphere, HTTP Server, DB2 products, etc.)
b. Uninstall Tivoli Base Services and products (TAMIT, SRM CCMDB, etc.)

3. Edit the registry (run regedit)
a. Delete all keys under - HKEY_LOCAL_MACHINE\SOFTWARE\IBM
b. Search for IBM ADE
delete all the non legacy acsisrv keys

4. Delete the files in the user temp folder that did the install (i.e. C:\Documents and Settings\Administrator\Local Settings\Temp)

5. Delete all the files under the install folder(s) where the installs where done (check C drive and other drives that may be there). Folder(s) may be on the root of a drive and/or under Program Files. (i.e. ibm\smp, ibm\websphere, program files\ibm\websphere, etc)

6. Delete all the files under C:\Program Files\IBM (i.e. common, gsk7, tivoli)

7. Reboot the machine

8. Install can be started again
IBM Support Link

Message Reprocessing with Escalations

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.

Retrying Held Messages
Setup an escalation to select those messages you wish to reprocess and change their status to RETRY.

  1. In the Escalations application, create a new escalation.
  2. Applies To: MAXINTERROR
  3. Condition: status='HOLD' and queuename = 'JNDI name of queue to process' and EXTSYSNAME = 'external system name' and IFACENAME = 'interface name' (See Note at end)
  4. Add an escalation point and check the Repeat box.
  5. Add an action. Use the lookup arrow to Go To the Actions app to create the Action.
  6. Create a new Action with the following values:
  7. Object: MAXINTERROR
  8. Type: Change Status
  9. Value: RETRY
  10. Save and Return with Value to the Escalations application.
  11. Set the desired schedule, such as every 5 minutes.
  12. Save the record and Select Action - Activate/Deactivate.

When all the records have been reprocessed, deactivate the escalation and leave it in that state until such time as you might need it again.
Deleting Messages
Deleting messages requires two actions. First the DELETEFLAG must be set to 1, then the status changed to RETRY. Both of these are done transparently when deleting a message in the Message Reprocessing application. In an escalation they must be done in the correct order.
Warning: Be very careful when using this escalation to delete held messages. If valid transactions are sent in while this escalation is active, and they fail due to a correctable error, they can be deleted.

  1. In the Escalations application, create a new escalation.
  2. Applies To: MAXINTERROR
  3. Condition: status='HOLD' and queuename = 'JNDI name of queue to process' and EXTSYSNAME = 'external system name' and IFACENAME = 'interface name' (See Note at end)
  4. Add an escalation point and check the Repeat box.
  5. Add an action. Use the lookup arrow to Go To the Actions app to create the Action.
  6. Create a new Action with the following values:
  7. Object: MAXINTERROR
  8. Type: Set Value
  9. Value: 1
  10. Parameter/Attribute: DELETEFLAG
  11. Save and Return with Value to the Escalations application.
  12. Create a second Action with the following values:
  13. Object: MAXINTERROR
  14. Type: Change Status
  15. Value: RETRY
  16. Save and Return with Value to the Escalations application.
  17. Double check the two actions. The Action to set the DELETEFLAG should have a lower sequence number than the Action to change the status. Change if necessary.
  18. Set the desired schedule, such as every 5 minutes.
  19. Save the record and Select Action - Activate/Deactivate.

When all the records have been deleted, deactivate the escalation and leave it in that state until such time as you might need it again.

Note: The Where Clause
The example where clauses for the two escalations contain most of the major fields in the table. You must always specify STATUS='HOLD' in order to avoid processing conflicts. In many cases you will only need this and the QUEUENAME.
If there is a huge buildup of messages that the escalation must process, there is a risk of the escalation failing with an out of memory error in attempting to change the status, especially if there are more than 10,000 messages. In this case, you can add the following condition to the where clause to limit it to 5000 or fewer records changed per iteration:
and maxinterrorid < ( select min(maxinterrorid) + 5000 from maxinterror)
You can also add a condition to prevent the escalation from deleting new messages which arrive while the escalation is running based on the highest value for maxinterrorid before any new messages arrive.
  1. At a time when you know that the MAXINTERROR table only contains messages you wish to delete, note the maximum value of maxinterrorid with: select max(maxinterrorid) from maxinterror
  2. Add the following condition to your where clause for the escalation:

and maxinterrorid < number from step 1 

IBM Link

Good Links for Linux

http://ss64.com/bash/

Increasing swap size for Linux

Following commands can be used for increasing swap size for Linux

--Swapon for directories
dd if=/dev/zero of=/.swapfile bs=1M count=1024
mkswap -v1 /.swapfile
swapon /.swapfile

--Swapon for new drive / Devices
fdisk /dev/sdb
mkswap /dev/sdb1
swapon /dev/sdb1
make entries in fstab file to keep the swapon after restart as well.