We are in the process of evaluating zeebe for our company. We will not be using tasklist as we need to make our own front-ends. As such, I am working on an example application. My problem is that while I can query the user tasks like so:
I can not filter these result by its assignee, which is stored in a custom header. This is because the custom header field mapping is disabled by default, as can be seen from the _mapping query:
Even if you don’t want to use the frontend of the tasklist, you could still use the REST api of the tasklist application to search for tasks, which you can then display in your own frontend.
Have a look at:
We have no intention of purchasing an enterprise license. It doesn’t provide enough benefits to justify its cost. It should still be possible to get this data, just like tasklist does.
My current plan is to subscribe to the usertask job and create records of assignments. If there is another way, I would appreciate any direction.
As there was no other reply, I’m writing our current solution here just in case someone else needs it. We have decided to use the userTask job worker with its timeout set to a high number so it doesn’t trigger timeout events. Here is a snippet:
@JobWorker(type = "io.camunda.zeebe:userTask", autoComplete = false,
fetchAllVariables = true, timeout = 31556952000000L)
public void handleUserTasks(final ActivatedJob job) {
long jobKey = job.getKey();
long instanceId = job.getProcessInstanceKey();
String bpmnProcessId = job.getBpmnProcessId();
Map<String, String> customHeaders = job.getCustomHeaders(); // This is where the assignment is.
//Save the data in elastic or db. Use that to make your queries.
}