Skip to Content
1
Jul 18, 2020 at 11:01 PM

MDK Filter Action with List Picker for a concatenated value attribute in related service

446 Views

Hi Team.

I am working on an MDK app trying to apply some filters automatically inherited from a List Picker a in Filter Page called from a Filter Action related to a Filterable Object table.

It is working as expected for List Pickers in which the property is a direct value.

For example:

FilterProperty: "COUNTRY_ID"

Generated filter for OData service / entity: "$filter=COUNTRY_ID eq 'US'"

But we have currently one scenario when we have an attribute in the related OData service / entity that has concatenated values.

Example of Attribute Value: TAG_CONCAT = 'H00002,H00035,H00435,H00878'

If at the List Picker we set the FilterProperty in the following way:

FilterProperty: "TAG_CONCAT"

The generated filter for OData is something like: "$filter=(TAG_CONCAT eq 'H00035' or TAG_CONCAT eq 'H00878')"

Which in most of the cases won't retrieve the required row.

The solution for this case (implemented in the equivalent app in Fiori / Web ) is using the "substringof" OData function in order to have a condition like the following:

"$filter=(substringof('H00035',TAG_CONCAT) or substringof('H00878',TAG_CONCAT))"

I have tried in this way in the List Picker:

FilterProperty: "substringof(<TAGID>,TAG_CONCAT)"

But is generating a filter like:

"$filter=(substringof(<TAGID>,TAG_CONCAT) eq 'H00035' or substringof(<TAGID>,TAG_CONCAT) eq 'H00878'))

and is not working.

I have already investigated some places in order to try to override or change the generated filter, so I can fix it and keep the List Picker functionality, and in general, the Filter Page functionality, but without success.

Also I have tried to add some filters in the Query Options of the Object Table direclty, but it seems that if it is already related to a "Filterable" object in the action, the filter in the QueryOptions is discarded.

Please comment what are the possible options or workarounds in this case.

Thanks in advance, your help is appreciated.

Best Regards

Eduardo