How to model step change in a multistep process

Hi all
i’m new in the bpm field, from what i read until now i can’t seem to figure out the correct approach for a common task

let’s suppose i have a process that describes an object lifecycle, like the object gets created and then it goes through several steps, for simplicity let’s suppose like this:
object draft → object completed → object accepted → object confirmed → object closed
i have a general idea in how to implement such a process, what i don’t understand is how to implement a step change based on that

suppose i want to change the object state from state A to B, like i want an object accepted to revert it back to object draft, or an object completed to go all the way to object closed

how would i accomplish this? i hope i would not have to model a process for every possible state permutation?

Thank you in advance for any feedback

Are talking about implementing this as part of an executable model or for diagrammatic purposes?

yes, executable model

By design BPMN avoids trying to include data as part of the symbol set. The idea of is to focus on the transition of state rather than the transformation of data objects. Leaving variable control to the developers in charge of executing the model.

That said there are some non-executable symbols that can indicate changes to variables but are only for documentation purposes. Like this:

for instance, in jira i create an issue
then there is a dropdown in which you can change the issue state
suppose my object has 8 states, i would have to make a separate model for each and every transition? that’s a lot of models… if so i think i’m missing the point of a bpmn model in the first place if i can’t automate transition in some way…

Changing a variable is not the same as transitioning state.
Taking your example the only state transition for a Jira ticket is from when it’s opened to when it’s closed. Between that it has it’s own internal life-cycle (e.g. status changes, user assignment) but the overall process does not move forward until the task is “resolved”.

indeed, so i can’t model that lifecycle with bpm, like a microprocess inside a process? a ticket can have his internal workflow that would be decided by the operator changing his state, am i not supposed to model it?

You don’t generally need to, you’ll still have the history of the state transitions by checking how the variables in question have been changed over time.
You could if you really wanted to though, it just seems to be a much lower-lever use case a visual modeling than required.

i’m asking because i thought the bpm approach would somewhat be preferable or would have given some advantages or automatism on the task of handle an object transictions. if not i think i’m missing the point here