После множества повторных попыток я наконец нашел решение для достижения этой цели. Решение простое, просто введите ${user.textValue()}
вместо ${user}
, чтобы извлечь реальный идентификатор правопреемника из TextNode
.
ПОМНИТЕ , переменная не является чистым строковым значением, на самом деле это экземпляр TextNode
, что означает, что метод toString()
вернет ""<id>""
(двойная кавычка приведет к невозможности найти надлежащего правопреемника).
Исходный код находится по адресу:
org.flowable.engine.impl.bpmn.behavior.UserTaskActivityBehavior#handleAssignments(
TaskService taskService, String assignee, String owner, List<String> candidateUsers,
List<String> candidateGroups, TaskEntity task, ExpressionManager expressionManager, DelegateExecution execution,
ProcessEngineConfigurationImpl processEngineConfiguration)
Другой способ сделать это - использовать сценарий Script Task
, Groovy
, например:
execution.setVariable("user", user.textValue())
Затем вы можете назначить ${user}
(user
здесь уже чистая строка, это отличается от предыдущего решения).