Troubleshooting
Problem
The system is using the assetid in the assetnum field when selecting an asset on a work order.
Symptom
When attaching an asset to a work order record, you get an error message "Asset 118,384 is not a valid asset, or its status is not an operating status".
The below script from the Maximo log shows that the asset exists, but the wrong reference is used. The script has the assetuid referenced in the assetnum field. Hence, it returns a null result. The Actual assetnum is 11430. The status of this asset is OPERATING.
select * from asset where assetnum = '113456' and siteid= 'BEDFORD'
The below script from the Maximo log shows that the asset exists, but the wrong reference is used. The script has the assetuid referenced in the assetnum field. Hence, it returns a null result. The Actual assetnum is 11430. The status of this asset is OPERATING.
select * from asset where assetnum = '113456' and siteid= 'BEDFORD'
Cause
This error can happen if an index is missing / not unique, and refreshing index via database configuration application will change the primarykeycolseq value.
Resolving The Problem
Run the select statements below against the database:
select objectname,attributename,primarykeycolseq from
maxattribute where primarykeycolseq is not null
and objectname like 'ASSET%'
order by 1,3
select objectname,attributename,primarykeycolseq from
maxattributeCFG where primarykeycolseq is not null
and objectname like 'ASSET%'
order by 1,3
Compare the output with a working Test environment
NOTE: the primarykeycolseq needs to be a unique number for each attributename for the same object (in maxattribute and maxattributecfg tables)
Compare the output with a working environment. Run update statements to fix the primarykeycolseq if it becomes out of whack.
For example:
update maxattribute set primarykeycolseq = NULL where objectname='ASSET' and attributename='assetuid'
update maxattributecfg set primarykeycolseq = NULL where objectname='ASSET' and attributename='assetuid'
In addition, there must be a unique, non-clustered index on assetnum,siteid
After fixing the backend, it is necessary to restart and then refresh index via the actions menu in database configuration application.
NOTE: refreshing index via database configuration the system will automatically insert the new index created via the backend into the maxsysindexes and maxsyskeys table.
If running the update gives the error below, try creating a new row in the maxlookupmap table:
insert into maxlookupmap (target, lookupattr, targetattr,source, sourcekey, seqnum, allownull, maxlookupmapid)
values ('WORKORDER', 'ASSETNUM', 'ASSETNUM', 'ASSET', 'ASSETNUM', 1, 1, 1000010) ;
Then restart the Maximo application server
select objectname,attributename,primarykeycolseq from
maxattribute where primarykeycolseq is not null
and objectname like 'ASSET%'
order by 1,3
select objectname,attributename,primarykeycolseq from
maxattributeCFG where primarykeycolseq is not null
and objectname like 'ASSET%'
order by 1,3
Compare the output with a working Test environment
NOTE: the primarykeycolseq needs to be a unique number for each attributename for the same object (in maxattribute and maxattributecfg tables)
Compare the output with a working environment. Run update statements to fix the primarykeycolseq if it becomes out of whack.
For example:
update maxattribute set primarykeycolseq = NULL where objectname='ASSET' and attributename='assetuid'
update maxattributecfg set primarykeycolseq = NULL where objectname='ASSET' and attributename='assetuid'
In addition, there must be a unique, non-clustered index on assetnum,siteid
After fixing the backend, it is necessary to restart and then refresh index via the actions menu in database configuration application.
NOTE: refreshing index via database configuration the system will automatically insert the new index created via the backend into the maxsysindexes and maxsyskeys table.
If running the update gives the error below, try creating a new row in the maxlookupmap table:
insert into maxlookupmap (target, lookupattr, targetattr,source, sourcekey, seqnum, allownull, maxlookupmapid)
values ('WORKORDER', 'ASSETNUM', 'ASSETNUM', 'ASSET', 'ASSETNUM', 1, 1, 1000010) ;
Then restart the Maximo application server
Related Information
[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSLKT6","label":"IBM Maximo Asset Management"},"Component":"Assets","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]
Was this topic helpful?
Document Information
Modified date:
13 April 2021
UID
swg21413873