How to restart a finished process instance?

One of our business flow rules is: If a flow is rejected, the applicant can re-fill the form and submit it to restart the process instance. To let all reviewers completely know the ins and outs, the restarted process instance MUST use the same id of the finished one, so the reviewers can read all review logs on the process instance detail page. Is there a way to implement this requirement?

Run the process instance again. Instead of process instanceId use businessKey

Please keep your eyes on the requirement “To let all reviewers completely know the ins and outs, …, so the reviewers can read all review logs on the process instance detail page”. As my test result, after restart the process instance by using businessKey, the review logs generated by previous execution disappeared.

Hey @gweii,

From a Flowable point of view you cannot restart the process instance with the same state. What I would instead suggest to you is to store the review logs outside of an instance and link them with the business key. This way whenever a process instance is started for the particular business key you could look them up.

An alternative approach would be to use CMMN for this. For CMMN we have the concept of reactivating a completed Case Instance. You can still use a combination of BPMN and CMMN of course.

Cheers,
Filip

From my point of view the ins and outs are not process private. Ins and outs must be associated with external entity (@filiphr proposed businessKey or case). I would prefer data object independent from the process. Process will change status of the dataObject instance. The approach has other benefits too. (e.g. data migration…)

Regards
Martin