CHALLENGE #8 IN IMPLEMENTING SHAREPOINT: Workflow versioning
SharePoint Feature Description
According to Challenge ID #7, workflows are the main player in implementing business processes based on SharePoint. When we develop and implement a business process on SharePoint and the organization begins to use the workflows, there are some suggestions and improvements comes from the end user of the solution which are very beneficial and adding those features to the workflow will enrich the user experience and enhance the productivity.
Moreover, it is also possible for a business process to change substantially and then the custom workflow solution should reflect it.
By using the Microsoft Visual Studio to develop the workflows, it is possible to develop new exciting features to the current business processes and install it on the server.
SharePoint Challenge Description
There are some challenges which should be addressed regarding adding new features to a current workflow of the site by changing the workflow logic and install it on a production server:
- When you change the workflow in Microsoft Visual Studio and want to deploy your code on the server, the visual studio will automatically retract the current solution and install the new one. So all of your in progress workflows will be deleted and you cannot continue using them
- If you do not use Visual Studio to deploy the solution and just add the .dll file to the GAC of your server, if the changes are substantial, all the current workflows will be halted and there is not possible to continue them. It doesn’t give you any error, but the workflow do not proceed to further steps.
The solution for the first challenge is to create an exact copy of your current web application (or site collection) on the server. For example for our test implementation of Microsoft SharePoint portal, we created a portal2 webapplication and duplicate the content database. This second website will be used to deploy the workflow solution. By deploying the workflow solution to a different web application, our current production portal won’t be affected and workflows can be continued.
But for the second challenge there is no way available. Since the main structure and flow of the workflow is changed, there is no versioning capability available for workflows and the current workflows will be halted. So we decided if we have a substantial change in the process of the workflow, we will announce to the user to complete their current workflows and then install the new one.