-
Type:
Sub-task
-
Resolution: Fixed
-
Priority:
L3 - Default
-
Affects Version/s: None
-
Component/s: None
-
Not defined
For the purpose of allowing the combination of variable filters with OR logic, we need to modify the POST /api/report/:id/evaluate endpoint to accept a list of filter values. The proposed API change should look something like:
{
id: 'string',
name: 'string',
lastModifier: 'user_id',
lastModified: '2017-11-05T04:11:17.121',
owner: 'user_id',
created: '2017-11-04T11:15:35.111',
combined: false,
reportType: 'process',
currentUserRole: 'editor', // or viewer
data: {
processDefinitionKey: '...',
processDefinitionVersions: ['...'], // a list of versions or ['all'] or ['latest']
tenantIds: ["tenantId1", ...] // none, one or multiple tenantIds, to filter for instances with no tenant provide a `null` entry or an empty list
filter: [
{
"type": "variable",
"data": [
{
"type": "type1",
"name": "variable name",
"data": {
"values": [
filter value
]
}
},
{
"type": "type2",
"name": "variable name",
"data": {
"values": [
"filter value 1",
"filter value 2"
]
}
}
],
"filterLevel": "instance",
"appliedTo": [
"definition"
]
}
],
view: {
entity: 'processInstance', // 'flowNode'
property: 'frequency'
}
groupBy: {
type: 'startDate', // 'flowNodes', 'variable', 'endDate'
value: {
unit: 'day' // month, hour, day, year, week, automatic
}
},
distributedBy: {
type: 'none', // or userTask, FlowNode, Assignee, Candidate Group
value: null
},
visualization: 'number', // 'table', 'bar', 'line', 'pie', 'badge', 'heat',
},
result: {
measures: [{
property: 'duration',
aggregationType: 'min', // optional
userTaskDurationTime: 'work' // optional
data: [
{key: "2017-11-01T00:00:00", value: 23}, // can also contain optional 'label' property for e.g. groupBy: flowNodes reports
{key: "2017-11-02T00:00:00", value: 7},
{key: "2017-11-03T00:00:00", value: 11},
...
]
}],
isComplete: true // false if the result data is truncated due exceeding length limit
instanceCount: 1234,
instanceCountWithoutFilters: 1300,
type: 'map'
}
}