Setting up a Timer Boundary Event clears the Outputs variables.
Our intention is to withdraw a contract after 4 days timeout. The contract variable is being set by a task before the said task (with the timer event). However, when we set the contract.status with a value, the entire variable is set to null.
Is there a better way of achieving this behavior?
Attached are images portraying what we did and the history from Zeebe Simple Monitor.
In my opinion (not an expert, so use caution with this opinion), a Timer Boundary event shouldn’t support Outputs. To make the expected behavior clear, there should be a service task that fires from the timer that sets your variable values.
Remember that overall BPMN is supposed to be a implementation-agnostic language.
You could view it as sending out your offer (by paper forms), and setting a kitchen timer. The kitchen timer only goes “Ding” - it doesn’t do any actions. When the timer dings, then someone (or a program) needs to update the documents to indicate that the offer is withdrawn.