I have a Project Workflow that several Decision steps. From every Step the Project can be put On Hold Step. On-Hold Step has the action buttons to all the Decision Step. What I want to do is just show only the Return Step from the Project was placed On-Hold. e.g I can put the Project On-Hold from step 1,3,4,5,6 and the On-Hold shows action button returning to 1,3,4,5,6 but what I want to restrict is that On_Hold just shows only the action button 1 if it has been placed on hold from 1 if the Project is placed On-Hold from 2 then On-Hold should only show the return button only to 2. I know I can do this by introducing several inactive step but is there any other way to do that.
Sure. Have the request 'save' the value of the step it is leaving when it goes to On Hold. Then, have the On Hold step use a single 'Return' transition that goes to a router step that determines where to return it to based on that 'previous step' field's value.
By 'Save', I believe you mean to utilize a Workflow Parameter field. This is how we implemented this type of requirement, to return to the step that you came from. Evaluate the Workflow Parameter field via an Excution Step (investigate the Workflow Parameter token) and route back accordingly.