Hi,
we have developed several flows using Camunda to implement the ServiceOrderingManagement (TMF641) and ServiceActivationAndConfiguration (TMF640) logic. We basically have a SOM master flow that delegates processing of each serviceOrderItem.service to a ServiceActivation sub flow.
we now decided to implement TMF701 and use the POST /ProcessFlow to do the flow instantiation (using the property processFlowSpecification to pass the camunda flow name) and if manual tasks are present to update the corresponding TaskFlow (using the corresponding PATCH) after the manual action (via a GUI for example) has been completed. These 2 operations doing the update in the DB and the corresponding action through REST in the Camunda Engine.
we expected this API to be about that and also about tracking the tasks execution by Camunda (via TaskFlow): basically, a new TaskFlow would be created and attached to the ProcessFlow as tasks are executed in Camunda. However this does not seem to be what the API was designed for as there is no possibility to create new TaskFlow through the API.
According to discussions in the forum and some hints in the API documentation as well, it seems the sequence of TaskFlow is supposed to be created during ProcessFlow instantiation (with "new" state) and then updated as the flow is being executed.
Our issue is that, by definition, in BPMN flows are dynamic: they have branching and looping features.
Even if we create all possible TaskFlow when creating a ProcessFlow (duplicating what is already designed in Camunda) using the isMandatory property to take somehow into account the branching/optional aspect of the flow execution. It would not support looping or the fact that a TaskFlow could be executed multiple times.
How this API is supposed to take into account this non deterministic aspect of a flow execution?
I saw discussion about a ProcessFlow catalog that could describe the ProcessFlow (and I guess the possible transitions between TaskFlow objects). If that is the case, it would conflict with designing the flow using the BPMN engine and its nice modeler GUI as you would have to design it 2 times...
What are your view on how to use this API in relation to a BPMN engine?
best regards,
------------------------------
Frederic Thise
Proximus SA
------------------------------