Approach to create custom tasklist


#1

Hi,

I would like to ask your opinions on creating a custom Tasklist, actually on an android application.
My first thought is the following steps:

  • Query the H2 database to look for active User Tasks
    • Or maybe query the REST API?
  • For each of the tasks I find, I should look on the BPMN model of the deployed process to retrieve what is in the “Forms” tab of the task (Form key or Form Fields)
    • Should I parse the XML or through another way?
    • How to get the process variables if I use an html form in the Form key? Do I need to “look” in the form for “cam-variable-name” variables?
      • If I use forms in the Form Key like this "embedded:app:forms/aTaskForm.html", how to retrieve the html code to parse it?
    • How do I save/persist this info of the properties?
  • The above step will lead to a number of process variables
  • I look for the values of each of the process variable
  • I present the label and the value of each of them

Regarding the assignee though, there are cases which I set the “assignee” with a Create Task Listener, and not through the “assignee” property in the modeler.

  • So, how to take this information in my custom application?

Thanks a lot!


#2

Hi @kontrag,

Have a look at our REST reference for tasks. I think all of the Problems mentioned (query for task, get variables, getting form HTML) can be solved using the methods provided.

Let me know if you run into any problems

KR
Martin


#3

Thanks @martin.stamm for the hint.
I was aware of the REST API, I will have a more detailed look.

But what about the “assignee” value that I assign with a create task/execution listener?
Are start listeners executed on the same transaction as the “behavior” of the activity?
It’s not clear for me from here
https://docs.camunda.org/manual/7.8/user-guide/process-engine/transactions-in-processes/#understand-asynchronous-continuations

I’m asking to see what is the sequence between creating a task instance and putting the information of the assignee on it (to avoid querying a task instance before the assignee info is saved).