Hello everyone,
I am having issues with querying process report which has multiple (different) values in one column. The column is filled with data from a list of CDTs, for example:
I've tried setting it as a list of integers and strings, but either way, when trying to query all rows which have a value "12345" in that column (by using a!queryProcessAnalytics), I get no results.
a!queryFilter( field: "c4", operator: "includes", value: tostring("12345") )
I also tried all different combinatios (in, includes, strings, integers....).
Thanks in advance!
Discussion posts and replies are publicly visible
In the process report make the C4 field as string with tostring() function and use includes the same way you have posted in the code.
Thanks for the idea, but it does not work in scenarios when there are similar IDs in that column, for example, I would get two results in case I have "12345" and "123456" in different rows.
What you could do more is to build a logic and additionally filter the result set of the initial queryProcessAnalytics.
You could try this one:
a!localVariables( local!resultData: a!queryProcessAnalytics( report: cons!DS_TASK_ASSIGMENT_PBPM, contextProcessModels: cons!DS_PM_TASK_ASSIGNMENT, query: a!query( filter: a!queryFilter( field: "c3", operator: "includes", value: ri!text ), pagingInfo: a!pagingInfo(1, 10) ) ).data.c3, local!splitText: a!forEach( items: local!resultData, expression: fn!split(fv!item, ";") ), local!searchIndexes: wherecontains( ri!text, touniformstring(local!splitText) ), index( local!resultData, local!searchIndexes, null() ) )
This is the result
The solution to this might be to join on a delimiter - that way, you can just do your "includes" operator on the value concatenated with that delimiter, and it should work. I'll need to double-check whether you can easily do the text flattening in the report configuration to join on a delimiter, but I think this is one of the few functionalities that it actually does support.
e.g. for this array-type CDT PV, i just join them in such a way that every value ends up included in [square] brackets - meaning an "includes" would merely need to concat square brackets to your value as well to safely find the whole value you want.