I have been working on Composite Applications for quite some time. And each time when i have to create a GP process … i got confused. Which actual user steps to model in GP process itself and what steps should go to the UI (yes, you can do that by using the road maps in VC or Web Dynpro).
I have mainly following observations that might be of some help
- As per the guideline for composites, if you have subsequest user steps then those should form a single GP Step/Action and callable object that is created for this action should handle the steps by using Road Map or some other means. So, the step in a GP process should change only when the User/Role responsible of executing that changes.
- Now there is one more thing that might affect the model of your process. this is persistance of data. By this i mean that if you have decided to implement say 3 subsequent steps in a callable object. Then you need to take care of persistence of data after each commiting step.
Lets consider an Example…. A user is performing three subsequent steps say “Collect Data”, “Create Order”, “Release Order”.
In this scenario, the “Collect Data” Step does not commit anything but actually collects data to be used by second step. Second step “Create Order” actually creates an Order in the backend and then passes the Order number to the Third Step “Release Order”. So, Only the First Step does not commits any data, while the second and third step actually does.
Here you can actually club the “Collect Data” & “Create Order” steps in to a single Action/callable object. But should separate the “Release Order” step as another Action/callable object. Coz if the user leaves after Second step .. and the application times out . Then he/she might end up creating a redundant Order.
To generalize, In order to handle such situations all the non commiting steps can be clubbed with one commiting step which should be the last step in the sequence. I think that should solve the problem.
This is totally based on my observation, and your comments and additional inputs are welcome.