What is Process Versioning
In BPM Implementations it is essential that the tool you are using supports process versioning. Versioning means that you should have able to provide a newer version of your template so that all new requests follow the new path; however the old ones should follow the old path itself.
Benefits of Process Versioning
- Maintain multiple versions of the same process, each following its own unique path. From Business perspective it means having different policies based on the time of initiation. This is important since you would prefer following the rules that were prevalent when your customer subscribed to your service rather than the current rules. However the current rules should be applicable to any new customer who registers.
- Your users see the same App in the Applications page. They do not need to know which process to start. If you are integrating your application with third party systems then it is advisable to use the app name as it remains common for all versions of the template.
- You can always rollback in case things go wrong and that too in steps.
- Versioning helps you track how your process is evolving over a period of time. You can gather important user behavior and preferences information using the data compiled across versions.
How to create a new version of your template?
- To create a new version in BPM Studio, create a new BPM Project. In the wizard you can specify the base template whose new version you are creating. If your process was LeaveApproval_V1 then the new process would be LeaveApproval_V2.
- If you end up creating a new version manually, you would need to update the name of the process in your spt and xml files. Also rename the Project folder from V1 to V2. If you happen to have JSP Pages then you would need to update the process name there as well. Do take care that in the xml and spt files, APP Name used should be same as the first template.
How to install version template on Server?
- If you are using BPM Studio, you can go ahead and do a direct deploy. Since the App name was available already, the new process gets installed and the old one gets deprecated.
- If you are using BizLogic Admin then the command you need to issue is:
createAndInstallPtVersion LeaveApproval_V2.xml LeaveApproval_V1
- This will install LeaveApproval_V2 as a new version to LeaveApproval_V1. The App Name will continue to be LeaveApproval_V1
Pitfalls to avoid
- If you are using common shared resources, you will need to figure out a way in which your old and new template can work together. For example, if you delete a dataslot or add a new dataslot in the new version, the common code should be smart enough to take care of both scenarios for both old and new processes.
- Package names, in case you are using the adapters inside your workflow, would change i.e. an adapter called “LeaveApproval_V1.adapters.MyLeaveCalculator” would change to “LeaveApproval_V2.adapters.MyLeaveCalculator”. If you don’t update your source files you could end up using the old classes.
- App name is always the name of the first process you installed. Make sure you name it to something which makes sense.
- Avoid cutting new version for every minor change; try to have a new version let’s say every month which has consolidated changes for the entire month. Creating and maintaining versions is a tedious task.