Suggest if there is a better way to implement of BPMN

Hello
I will first explain the process I intend to implement.
User A registers a form and the form reaches user B.
If user B selects the edit option in his form, he must enter the edit form and return to the decision form after editing.
And then the process reaches user C and the same procedure happens for user C.

The image of the process I implemented is similar to this image:

But I think I can make the process shorter and simpler by using Camunda’s capabilities. But I do not know how?
Is there a better way to implement the process?
Thanks in advance for your guides.

Hey @rezza72 ,

I think you could have a look into our Modeling best practice. In your model you are mixing implicit (modeling condition flows ) and explicit modeling. This is normally not a good idea. Better would be to always model explicitly. I think at the moment your model might create more tokens than you indicate.

Also the naming could be improved. Looking at the process it is not very clear to me what the process is achieving. Labeling the Events would help as well as finding a better description for the tasks. In the diagram it is not clear on which data the sequence flows split after your XOR Gateways. So in general I am not really sure what the process goal is. Therefore, making suggestions on the improvement it hard too.

Also I am a little bit confused by the process logic. You could probably implement the two forms for each user in one form? Either the user edits the form or completed without editing?

I hope that helps kind regards
Nele

1 Like

@Nele
Thank you very much for your guidance.
I definitely follow the naming standards in my models.
This image is not for the main model. That’s why it’s misleading.
I created this model just to make you get what I mean.

I’ll describe it again.

I have three forms.
The first form is for the registrant user to enter information.

The second form is for the decision-making user, who decides on the information entered by the registrant user.

Decision-making has three modes: Accept - Reject and Edit.
If he selects the Edit option, Himself will be transferred to the edit form and edit the registrant user’s information and then return to the decision form.

I think I can create the model without the need for two sequential UserTask.

Hey @rezza72 ,

What do you mean by sequential User Tasks? Your current diagram has just running tasks in parallel under certain circumstance, which are not clear because your gateways are not labeled.

I created from your description an example: forum-registration-example.bpmn (14.2 KB)

that are two different patterns. The first pattern is used in the lane of user 2 and the second pattern in the lane of user 3. The first example has two gateways to route the process instance. Therefore the labeling and decision points are clearer to a reader.

The second example uses just one gateway. It is more complex at this point to read. Therefore, I would probably go with the first option.

From your description it remains unclear what happens if data is rejected. I just used an end event in my example but this might not be true for your usecase.

Also I am not sure if you really need two forms (user tasks) . It might be an even better user experience if the user can edit, reject and accept in the same form (task). If the user edits something they will accepted it probably. Otherwise editing does not make that much sense.

I hope that helps
Cheers
Nele

1 Like

@Nele
First, I’m so grateful for your complete answer. :pray:

I mean the case where two UserTasks are connected in a lane through a flow.
In that case, my impression is that two UserTasks can be turned into one…

This is exactly what I want, except that if it is accepted, the process enters a UserTask and if it is not approved, it enters another UserTask.

I always used a getaway at cases like this. But I’ll definitely use this way from now on.
As you mentioned, this way is more clearer.

My usecase is such that in the first place user2 only has to see the approval or rejection form and if he clicks the edit button he enters the edit form. That’s why I have to use two forms.

Generally, I am thank you for your guidance.

2 Likes