I currently have a Workflow (WF) that I will like to remove a step from, I have read around the forums and it seems that the recommended is to remove all transitions from the Step, move it to a far corner in the layout and disable it.
My question is if I go ahead and delete all the requests that have used that WF in DEV if I then migrate the WF to PROD will it have an issue?
Start> Approve > End
Start > End
I have noticed that when I "Add" a step to a WF in DEV I need to add a dummy Step in PROD before doing the migration, would I need to do something simmilar if I remove a step or should I just remove all transitions and disable the Step.
PPM will not aloow you to move workflow from dev to prod because after delting step after following the procedure you have mentioned above dev has less steps as compare to prod environement. So PPM will throw error while migrating workflow.
Remove all the transition from that step, move it to a far corner in the layout and disable it is one of the possible work around of this issue.
But before doing so , move all the request on that step to some other step.
Samit is right that PPM will throw an error and will not migrate the workflow following the procedure you outlined. It all has to do with referential integrity. There will be an entry in the KWFL_WORKFLOW_INSTANCE_STEPS for every single transition into that step with a reference back to the step in KWFL_WORKFLOW_STEPS_NLS table. PPM will not allow a record in the KWFL_WORKFLOW_STEPS_NLS table to be removed if there is a record in the KWFL_WORKFLOW_INSTANCE_STEPS table referencing that step.
One thing that I would add to the removal process, especially if there may be requests that are currently in the step you are trying to remove, is leave a transition line out of the step. Remove all of the incoming transition lines so no other requests will ever enter that step, but leave a transition out so that any requests that may be in step will have an exit strategy and be caught in a permanent limbo with no way to escape. While it may not be the most aesthicly pleasing solution, it will prevent any hung requests from popping up in the future if you weren't able to identify every single request at that step.