IBM Support

Maximo Calibration allows entry of incorrectly specified Calibration Input and/or Output values ,is this working as designed?

Technical Blog Post


Abstract

Maximo Calibration allows entry of incorrectly specified Calibration Input and/or Output values ,is this working as designed?

Body

When entering a calibration point "As Found Input Value", Maximo allows users to enter an "incorrectly" specified value without warning the user that their entry is under-specified and / or preventing their entry from being saved.

Maximo then automatically interprets their entry, and compensates for the deficiency by adding missing decimal values.

Maximo Calibration is currently working like this as per design.

 

To reproduce this scenario follow these steps:

 

1)Login to Calibration 7500 or 7510 with MAM 7.5.x or 7.6.0.x
2)Go to Work Order tracking > Create an arbitrary open work order. > DataSheet tab > Calibration Points sub tab.
3)Edit the fields in the Calibration Point Sub-tab
E.g.
Set a Nominal Input as 0.000 degrees Celsius.
set Range limit from -2.000 to +2.000
Set As = EU.
4)Now go to > As Found Values > Input field > Enter a single digit '1' > Tab out of field.
Note!:  Maximo accepts this value without warning the user that it is under-specified.  
Furthermore, it appends three decimal zeroes, leaving the entry to be saved as '1.000'.  
This could be perceived as incorrect as (in the world of calibration), '1' is not the same as '1.000',however per Maximo design this currently is wroking as it should.

Note: List of database fields in the Calibration Points tab where this same behaviour could occur:

PLUSCWODSPOINT.ASFOUNDINPUT - Field label "Input" (used in the above example)
PLUSCWODSPOINT.ASFOUNDOUTPUT - Field label "Output"
PLUSCWODSPOINT.ASLEFTINPUT - Field label "As Left Input"
PLUSCWODSPOINT.ASLEFTOUTPUT - Field label "As Left Output"

 

The following Automation Script will correct this behaviour, however be advised that as this is an Automation Script , it is not supported by IBM Iot Support as such:

 

 

In the following instructions, if the value for a field is not specified, please leave the default value.

 

Step 1: Create a custom error message.

 

1. Go To > System Configuration > Platform Configuration > Database Configuration

2. Click More Actions > Messages

3. Click New Row and create a message with the following values:

Message Group = validation

Message Key = minfldresvalidation

Display method = MSGBOX

Message ID Prefix = BMXAA

Message ID Suffix = E

Value = Value is under-specified. Please enter a value meeting minimum field resolution requirements.

OK? = Y

4. Click OK to close the dialog

 

 

Step 2: Create Automation Script with Attribute Launch Point

 

1. Go To > System Configuration > Platform Configuration > Automation Scripts

 

2. Click More Actions > Create > Create Script with Attribute Launch Point

 

3. Create a Launch Point with the following values:

Launch Point: RESVAL-AFI

Description: Minimum Field Resolution Validation for As Found Input Field

Object = PLUSCWODSPOINT

Attribute = ASFOUNDINPUT_NP

Events = Validate

New = Y

 

 

4. Click Next to continue

 

5. On Step 2 of the dialog, enter the following values:

Script = MINFLDRESVAL

Description = Minimum Field Resolution Validation

Script Language = python

 

6. Click New Row on the Variables table and create a variable with the following values:

Variable = val

Variable Type = IN

Launch Point Attribute = ASFOUNDINPUT_NP

 

 

7. Click New Row on the Variables table and create a variable with the following values:

Variable = minfldres

Variable Type = IN

Launch Point Attribute = PLUSCWODSPOINTSINSTR.INPUTPRECISION

 

 

8. Click Next button on dialog to continue

9. Add the following text to the Source Code field. Please note that the indents (three spaces) are important.

 

def setError():

global errorkey,errorgroup

errorkey='minfldresvalidation'

errorgroup='validation'

 

if val is not None:

decDigits = 0

pos = max(val.find('.'),val.find(','))

if pos >= 0:

decDigits = len(val) - pos - 1

 

if decDigits < minfldres:

setError()

val = ''

 

 

10. Click Create button on dialog. You should receive confirmation message, "BMXAA7989I - The launch point was created successfully."

 

Step 3: Create additional Launch Points for validation on additional fields

 

The script above adds validation to the As Found Input field. Adding additional Launch Points allows us to apply the same validation to the As Left Input field, As Found Output field, and As Left Output fields.

 

1. Still in the Automation Scripts application, again click More Actions > Create > Create Script with Attribute Launch Point.

 

2. Create a Launch Point with the following values:

Launch Point: RESVAL-ALI

Description: Minimum Field Resolution Validation for As Left Input Field

Object = PLUSCWODSPOINT

Attribute = ASLEFTINPUT_NP

Events = Validate

Existing = Y

Script = MINFLDRESVAL

 

 

4. Click Next to continue

 

5. In the Variables table, populate the Launch Point Attribute for each variable as follows:

val: Launch Point Attribute = ASLEFTINPUT_NP

minfldres: Launch Point Attribute = PLUSCWODSPOINTSINSTR.INPUTPRECISION

 

6. Click Next to continue. Do not modify the script Source Code. Click Create. You should receive confirmation message, "BMXAA7989I - The launch point was created successfully."

 

7. Repeat the steps above to create an additional launch point:

 

Launch Point: RESVAL-AFO

Description: Minimum Field Resolution Validation for As Found Output Field

Object = PLUSCWODSPOINT

Attribute = ASFOUNDOUTPUT_NP

Events = Validate

Existing = Y

Script = MINFLDRESVAL

 

val: Launch Point Attribute = ASFOUNDOUTPUT_NP

minfldres: Launch Point Attribute = PLUSCWODSPOINTSINSTR.OUTPUTPRECISION

 

8. Repeat the steps above to create the final launch point:

 

Launch Point: RESVAL-ALO

Description: Minimum Field Resolution Validation for As Left Output Field

Object = PLUSCWODSPOINT

Attribute = Attribute = ASLEFTOUTPUT_NP

Events = Validate

Existing = Y

Script = MINFLDRESVAL

 

val: Launch Point Attribute = ASLEFTOUTPUT_NP

minfldres: Launch Point Attribute = PLUSCWODSPOINTSINSTR.OUTPUTPRECISION

 

9. Note that the complete list of launch points can be examined and modified after creation by opening the MINFLDRESVAL script record in the Automation Scripts app, and navigating to the Launch Points tab, and clicking the Edit Launch Point Detail icon at the beginning of any row.

 

 

If you find this AS (Automation Script ) useful for this particular situation , please click the "Like" button to show your appreciation and follow me here --> Follow me and my blogs on DevWorks here!

 

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSLKT6","label":"IBM Maximo Asset Management"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

UID

ibm11130949