we are trying to model a process that handles the order, deployment and a bit more IT services we are selling to our customers. That means one or more services are ordered (offer is a different process), order has to checked, service(s) have to be built and delivered, and so on.
The part of building the services is highly dynamic. For every product we sell (and that turns into a service) we define workplans that have to be processed. Those workplans have an order and we can re-use the workplans in all our products. It is important to know that every product has different workplans.
The workplans itself are processes that are deployed in camunda. Some are short and siimple with only a human task, others are complex.
Products, workplans (reference to process deployed in camunda), services and more related information are all stored in a central service management database
We are able to retrieve all workplans (and their order as a number) for every service that has to be built from our service management database.
We are now facing the question how to model a process that starts all required workplans (processes) in the right order ? I could imagine something like
- Have a service task that gets all processes for service XYZ (input variable) with level 0 (input variable) and returns a collection of process-ids
- Call Activities in paralell (if there are any) and then wait for all activities to complete
- increase level by one and go back to 1. That gives the processes that have to be run next.
Is this the right approach ?
since we are just beginning with camunda (and bpmn ) any help is appreciated
We also have to think about the following
- How to identify the relation between the main process and the workplans (call activities) ? Should we use the same business key, or prefix the business key of the called activity with the business key of the main process. This is required for an overview/list in a portal-application (show all subordinate workplans and their current state)
- Called Activities might generate events that need to be handled in the main process
- Handling of cancellation of the main process needs some kind of compensation, e.g. all work that has been done so far must be undone. This is required both for currently running called activities and for those that have been executed already.
Thanks again & looking forward for some tips