Рабочий процесс на открытом воздухе динамично создает пользовательскую задачу

#workflow #alfresco #activiti #bpmn

Вопрос:

У меня есть собственный рабочий процесс в сообществе Alfresco 5.2. У меня есть задача параллельного пользователя, назначенная activiti:collection=»mywf_reviewersAssignees», и эта переменная выбрана в начале рабочего процесса. Все работает нормально.

Теперь, при некоторых обстоятельствах, пока рецензенты выполняют свою задачу, мне нужно добавить другого пользователя в эту коллекцию, чтобы создать другую пользовательскую задачу. Мне удалось правильно обработать «когда», но я не знаю, как создать/добавить пользовательскую задачу.

Другими словами, мне нужно «переназначить» задачу, расширив поведение на открытом воздухе по умолчанию. Вместо смены владельца задачи мне нужно закрыть предыдущую пользовательскую задачу и создать новую для нового пользователя.

Возможно ли это?, спасибо

Редактировать

Я прочитал эту ссылку (Как назначить рабочий процесс новому пользователю группы?), которые предлагают использовать переменную candidateUsers, но мне нужно, чтобы все пользователи завершили свою работу, я не могу использовать их в качестве кандидатов и позволять только одному выполнять свою работу

Аналогичный вопрос задается здесь Программно Создать пользовательскую задачу с несколькими экземплярами, но, к сожалению, никто не ответил

Комментарии:

1. вы рассмотрели ответ Грега в теме сообщества? во время выполнения задачи с несколькими экземплярами вы можете добавить больше задач, просто добавив больше значений во входную коллекцию

2. Ну, я действительно использую коллекцию, и, как и Грег, ответил на этот пост: «Но в моем случае использования, когда все еще есть открытые экземпляры задач, мне, возможно, потребуется добавить еще один, программно, в зависимости от условий выполнения, которых в данный момент не существует, при выполнении потока, который создает первые задачи. Возможно ли это вообще? Я сделаю еще один тест, просто чтобы убедиться, что я не сделал этого неправильно в первый раз

3. одна вещь, о которой я могу подумать, — это отменить текущее выполнение с помощью граничного события и перезапустить задачу параллельного пользователя с использованием новой коллекции. имеет ли это смысл для вашего случая? затем коллекцию можно изменить, чтобы удалить уже выполненные действия и добавить их

4. Это может быть интересный вариант, не могли бы вы дать мне какую-нибудь подсказку по коду? Я совсем новичок в Activiti и BPMN. Что произойдет с выполненной задачей, если я отменю предыдущее выполнение?

5. я не смогу привести рабочий пример, но вот ссылка в документах, которая может вам помочь activiti.org/userguide/#bpmnMultiInstanceBoundaryEvent что вы можете сделать, так это связать граничное событие с задачей службы, а затем связать его с вашей задачей с несколькими экземплярами с измененной коллекцией. к этому времени выполненные задачи уже будут отправлены в исторические таблицы. поэтому я думаю, что они должны остаться нетронутыми. тем не менее. проверьте, существуют ли они. убедитесь в том, чтобы это было взаимосвязано