it is subjective on what is “advanced”…Please take it with a grain of salt.
Here is 1st case: I am into a territory of long run wf with combination of machine and human. Let say, the wf is to start some steps by machine/microservice, then send to 3rd party vendor for processing through email. They take few days to complete their step. Once the reply back from vendor ( could be email or fax), then we can continue to rest of the flow by staff. This case has few hurdles to resolve
— we can have a activity to send email to 3rd party vendor, but I cannot mark the activity to be complete as I have to wait for the reply form vendor. So somehow, we have to mark it pending or in progress status, then move to next email activity.
— Once the 3rd party vendor sent the email back, we need to resume the work.
— We want to calculate the SLA for each step. hence time for each step needs to be tracked.
My 2nd case: another scenario is that once the request is submitted, it routes to backoffice staff, they may have question on how the work should be fulfilled because the customer information is changed somehow. He needs to send the request back to the requester for further instruction.
The first use case can still be categorized as workflow, the second one is more expanding to case management space. I do not know if that is still in the realm of Camunda.
The best way to do this is by created a send and receive task. The Send task will be completed very quickly but the process will wait at the receive task until a response comes back. This will make it very easy to measure for an SLA and you could even setup a timer event to be triggered if you’re waiting too long. I’ve built an example here.
I think i understand what it is you’re after and is a pretty straightforward function luckily enough. There are a lot of different ways to model it so i’ve just made the first one that came to mine. In the example i used a non-interrupting event sub-process that has the ability to deal with external requests in parallel to the rest of the process.
The first one makes sense. I was not aware of the event based activity.
For the 2nd one, not sure though. The issue is that we cannot predict this type of the activity. Some other example is pending or transfering to other people simply because I am on vacation tomorrow. I think it is more to the case management space. We cannot model that , or at least I do not know how to model it.