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
Did you try using "in" operator instead of includes when using list of integer or string
Yes, it just returns an empty dataset.
In your process report what is the data type for that column
Tested with both Normal Text and Number
Is the column a string or a list of strings?
Currently, it's a list of strings. But I tried with a non-array string as well.
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.
anak3061 you will have to convert the value in column from array into one value, for example tostring("12345; 7166").
a!queryFilter expects in the field to have only one value per row, and not an array.
In your case value in the field c4 is an array {12345; 7176}, but it should be one value. If you concatenate them, or cast them to string, it will be considered as one value.
After that filter will work.
Beware that, if you use tostring, it will include all rows which have that value in that column.
You will need to check which one you really need from the returned rows, or add additional filter(s) based on the business logic.
I hope it helps you in this endeavor.
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