IBM support has created a known issue to be fixed in future release to fix the "error message" which wrongly shows the assetspec that confused me when my cron failed.
Original Message:
Sent: 01-30-2025 09:18
From: Steven Shull
Subject: MobileDbGeneration Cron is failing while generating Asset data
You don't mention your Maximo Mobile version, but I would look at the mobile schema (/maximo/oslc/graphite/mobile/schema). This describes everything we know and will retrieve for mobile. For MXAPIASSET object structure you should see the various appSelect for each app and a lookupSelect which is what we should be utilizing here. If you see the lookupSelect containing attributes that it shouldn't, you should look for the app requesting it. This could be something like a cloned application that maybe didn't get it removed properly.
If you have made changes to remove assetspec (we previously had it in various apps but removed it relatively recently) and that is somehow not reflected in the schema, you can regenerate the schema by adding regenerate=1 to the end of the URL above. IE:
/maximo/oslc/graphite/mobile/schema?regenerate=1
------------------------------
Steven Shull
IBM
Original Message:
Sent: 01-30-2025 06:35
From: Yash Kumar
Subject: MobileDbGeneration Cron is failing while generating Asset data
Hello,
I am using Maximo Moible 9 with fix pack 08 with Maximo 7613. I have been following up with IBM Support but they haven't been able help and answer my questions. Seeking help from experts, @Steven Shull
I saw the following error in the Maximo logs. I have noticed that the "select attributes..." section is fetching too many columns which it is not supposed to. For example, MOBILEASSET saved query is being used with the data sources with id="assetLookupDS" in TECHMOBILE, SRMOBILE, INSPECTION, ITMOBILE apps with lookup-data="true" which means it will be used by the cron. But, the schema definition of this data source in any of these apps doesn't have assetSpec.
"select attributes..." schema in the error matches with the data source id="assetListDS" in ASSETMOBILE app.xml which doesn't have lookup-data property defined which means it's false and it won't be used by the mobileDb cron.
I have a list of 200,000 assets and I want them in my asset lookup so that user can choose any asset while editing the work order. Please note, I am not fetching these many assets in my ASSETMOBILE app where the entire set of Asset data is downloaded. In MOBILEMYASSET query which is used in the ASSETMOBILE app is fethching only 50-60 assets.
My main question is around the schema definition being reported the error below.
[ERROR] [MXServer] [CID-CRON-193508] BMXAA6359E - A runtime error for host MobileDbGeneration.MOBILEDBGEN_1:Crontask instance ID: MobileDbGeneration.MOBILEDBGEN_1;
Template user: MAXADMIN;
Template user insert site: SITE_A;
Person groups associated: MOBILEDB;
--------------------------------------
Error list:
--------------------------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Object structure: MXAPIASSET;
Table name: ASSET;
Select attributes: assetid,description_longdescription,itemnum,assetuid,assetnum,autolocate,description,assettype,isrunning,location.description--locationdesc,manufacturer,priority,serialnum,siteid,vendor,rel.IMGLIB{*},parent,location.failurecode--locfailurecode,status,statusdesc.description--assetstatusdesc,location,saddresscode,failurecode,rel.assetmeter{metername,active,rollover,lastreading,readingtype,lastreadingdate,measureunitid,meter.measureunit.description--unitdescription,sequence,pointnum},serviceaddress.formattedaddress--formattedaddress,serviceaddress.latitudey,serviceaddress.longitudex,serviceaddress.addresscode,serviceaddress.siteid,serviceaddress.description,serviceaddress.streetaddress,serviceaddress.addressline2,serviceaddress.addressline3,serviceaddress.city,serviceaddress.regiondistrict,serviceaddress.country,serviceaddress.stateprovince,serviceaddress.postalcode,classstructure.hierarchypath,asset_parent.description--parentassetdesc,assetmeter._dbcount--assetmetercount,assetspec{assetattrid,measureunitid,numvalue,alnvalue,assetattribute.description--assetattributedesc,displaysequence,anywhererefid,tablevalue,datevalue,assetspecid,classstructureid,linearassetspecid},assetspecclass._dbcount--assetspeccount,rel.mapsketch{sketchList,sketchname,mapsketchid},manufacturer.name--manufacturername,itemtype,failurecodes.description--failurecodedesc,classstructure.classstructureid,orgid,companies.name--vendorname,doclinks._dbcount--doclinkscount,hierarchypath,lrm,direction,startmeasure,startdescription,endmeasure,enddescription,islinear,assetstatusdesc,parentassetdesc,classstructureid,item.rotating--isrotating,assetmeter{metername,lastreading,measureunitid,lastreadingdate,index,href,assetmeterid,sequence,meter.measureunit.description--unitdescription},serviceaddress{serviceaddressid,formattedaddress,city,stateprovince,stateprovince_description,addresscode,latitudey,longitudex,siteid,description,streetaddress,addressline2,addressline3,regiondistrict,country,postalcode},doclinks{*},assethealth,assettag,binnum,assetchildren,children._dbcount--childcount,location.glaccount--locglaccount,location.locpriority--locpriority,rel.failurelist{failurelist,failurecode.description,failurecode.failurecode},conditioncode,rel.assetfeature{assetnum,assetfeatureid,feature,label,startmeasure,endmeasure},purchaseprice,assetfeature,assetfeatureid,feature,label,assetqty,pluscduedate_np,href;
Saved query: MOBILEASSET;
**************************************
Error to generate table: null
**************************************
#Mobility