Completing Tasks with only topic name and business id

We have events that occur externally from our system. These are expected notifications and so we have steps in our BPMNs for them. Say for example that a printer notifies our system that some document is done printing. All it has is the business id. We could create an external task for this with a topic name such as “printed” match the step name. The workerId could just be something constant like 123 as that also doesn’t really fit too well but we have to specify one to fetch and lock the task.

At any rate, what I’d like to do is complete the step given:
workerId “123” (same one that locked it).
businessId “6060842”
step name / topic name “printed”

I don’t have the externalTaskId. (well I could but that requires and external store like a db to map externalId to bussinessId / step name and I really don’t want to have to do that).

Is there any way to accomplish this? Maybe using an external task is not the right approach. What would be?

Hi @ddrouin,

Especially if Camunda does not trigger those actions (here: printing), then I would model this with message catch events instead of external tasks.

Example:

You can then define the message name to be the signal name (e.g. printed) and use the businesId as the business key of the process instance. Then you can correlate the message by message name and business key.

Cheers,
Thorben

Awesome thanks Thorben. That’ll solve this for us.