Model Versioning π
Concept
If you are running a process in a production environment, what happens when you need to change your process? If you change the process, what happens to process instances that are currently running (βin-flightβ)? How can I manage my processes through their lifecycle?
Process Versioning is a set of features that help you manage these issues.
Each Process Diagram is identified by the process diagram name and version. The version is free-text, and can support any version numbering scheme that you want.
A Process Diagram also has a status. A diagram would normally start off with a status of draft
. You might then edit this, save it again (without changing the version), then run it to test your process. You might go through this cycle several times, edit, save, testβ¦until you have a working process. You can do anything to a draft
document.
Once you have a tested process diagram that is ready for production use, you can change its status to released
. A released document can no longer be edited. Only one version of a process diagram name can exist in released
status at any one point in time. If you start a process instance without specifying a version, Flows for APEX will start the version that is in released
status.
If you want to change the process, you would create a new version of the process diagram. You can copy a diagram of any status to create your new version. This new version would start with a status of draft
while you edit and test it. Once you are ready to move this new process diagram into production, you then change the status of the old process diagram to deprecated
and change your new diagram to a status of released
. The new released
process diagram will now be used to start any process instances. Any process instances that are still running (in-flight) will continue to use the now deprecated
process diagram that they were started with.
In order to protect running processes, diagrams that have a status of released
or deprecated
should not be edited or deleted.
Once all process instances have completed running, the process diagram can be changed to a status of archived
. Archived processes can be retained on the system for audit and reporting purposes, but canβt be started or edited.
Most Flows for APEX users with production systems will need to use Process Versioning to support the lifecycle of their business processes. However, use of versioning is not required. By default, all diagrams are created with a version of β0β and a status of draft
. All functions of Flows for APEX can be used with draft
process diagrams without having to worry about status, except for messageStart events; however, production processes will not be protected from editing, and in-flight processes may cause errors if their diagrams are changed while they are running.
Status Rules
status | draft | released | deprecated | archived |
---|---|---|---|---|
create a new diagram | βοΈ | - | - | - |
can edit diagram | βοΈ | π | π | π |
can delete diagram | βοΈ | π | π | βοΈ |
start a new instance | βοΈ | βοΈ | π | π |
continue to run an existing instance | βοΈ | βοΈ | βοΈ | π |
messageStart events are subscribed and live | π | βοΈ | π | π |
can be copied to a new version | βοΈ | βοΈ | βοΈ | βοΈ |
can be exported | βοΈ | βοΈ | βοΈ | βοΈ |
is copied to BPMN Log when modified with βfullβ or βsecureβ logging enabled | - | βοΈ | βοΈ | - |
Application changes when processes change
Depending upon the nature of changes that you make between process diagrams, your applications might need to be aware of the process version.