Hi,
there are at least two issues here.
First one is related to the way how the OS info is being published. The outbound processing differs depending on whether it is Maximo publishing event or maybe it's REST API request. When MX is publishing information (e.g. Publish Channel event listener active) then it serializes whole OS on all levels. In such case overrideValues(ctx) function always called for every MBO in the OS hierarchy.
When you request data through the REST API then a lot depends on your oslc.select parameter. Namely for root OS Mbo you will always get overrideValues(ctx) function called but for lower hierarchy levels this function gets called only when you're using nested objects notation (e.g. for MXAPIWODETAIL OS you may have oslc.select=wonum,asset{assetnum,description}). You will NOT get the overrideValues(ctx) function called when using dot-notation, simply trying to inline include related object details (e.g. oslc.select=wonum,asset.assetnum,asset.descriptionor oslc.select=wonum,rel.asset{assetnum,description}).
This leads us to the second issue. Namely you may think that for DOCLINKS following will work: oslc.select=wonum,doclinks{weburl}. Unfortunately it doesn't work! JSON serialization logic calls overrideValues(ctx) function for DOCLINKS objects but it ignores the result as it always follows quite "special" (hardcoded) way of serializing the data.
How to overcome that? Nothing reliable springs to my mind... Maybe others can help!
------------------------------
Andrzej Więcław
Maximo Technical SME
ZNAPZ B.V.
Wrocław, Poland
------------------------------