Вам не нужно делать это динамически. Вы можете сделать это прямо в вашем рабочем процессе.
Что вы имеете в виду динамически? Когда вы развертываете рабочий процесс или уже обрабатываете его?
Если это происходит во время развертывания, перед вызовом метода deployProcessDefinition вы можете взять xml, который он развернет, и отредактировать его перед выполнением развертывания.
Если вы уже обрабатываете, я могу представить 2 возможных варианта:
- Если вы хотите, чтобы новый экземпляр задачи создавался при самостоятельном переходе, вам нужно будет сделать несколько взломов в базе данных, чтобы изменить уже развернутый рабочий процесс;
- Если можно использовать один и тот же экземпляр задачи, вы можете изменить метод Transition.take, чтобы не распространять событие при переходе к той же задаче.
Для обоих вариантов вам следует обратить внимание на проблемы с ProcessLog. Я не знаю, будет ли у JBPM проблема с записью журналов для переходов, которые на самом деле не существуют.