What could be happening when the Claim button does not appear on a user task?
The task shows up in the task list for users who are members of its Candidate Group. The pane on the right where the form should be says “To see and fill in the form for this task, you need to claim this task first. You can do that by pressing the blue button in the top right of the page.” But there is no such button?
Not sure if this is related, but the task is the (single) activity in a process initiated from a Camel route. Its initiator is null. I have set its “potential starter user” to a bogus name so that it won’t show up in any users startable processes list.
Edit: the process doesn’t show up either in the processes list in the Task App (neither when selecting Running nor All).
To check that this may be due to the process not having an (authenticated user as) initiator, I implemented the mechanism documented in the Flowable Camel section in the user manual. I.e. set the processInitiatorHeaderName property on the Flowable endpoint, and add a header by that name to the exchange.
This however gives the following exception:
org.flowable.engine.common.api.FlowableException: IdentityService is missing and must be provided to set process initiator.
at org.flowable.camel.FlowableProducer.setProcessInitiator(FlowableProducer.java:184)
at org.flowable.camel.FlowableProducer.startProcess(FlowableProducer.java:177)
at org.flowable.camel.FlowableProducer.process(FlowableProducer.java:69)
So apparently the FlowableProducer is set up without a reference to the IdentityService. The question is: how should it get that?
The problem is that your user task has no assignment rules defined.
So there’s no flowable:assignee or flowable:candidateGroups definition.
That’s why you don’t see the claim button.
Thank you for your response. My goal was to assign the task to more than one candidate user, allowing any of the candidates to claim the task themselves. After doing this, I can see the users are all candidates on the task, but none can claim it, making that user the assignee. Is the only option to assign the task directly to one user or to a group instead of multiple users?
For the Flowable Task application assignment definitions need to be there. If you would use the Java API or REST API of the Flowable Engine directly then you just query for any task (assigned or not). But for the Flowable Task application this is more strict. You can add as many users and groups as you want to the candidateUsers or candidateGroups attributes.
It would be great if the documentation mentioned this. Perhaps in section 15.4 of the User Guide. I can fork your documentation repo and make the change if you accept changes.