Activiti BPMN - Как передать имя пользователя в переменных / выражении, которые выполнили задачу? - PullRequest
0 голосов
/ 22 мая 2018

Я очень новичок в Activiti BPMN.Я создаю блок-схему в activiti.Я ищу, как имя пользователя (кто выполнил задачу) может быть передано в аргументы задачи оболочки.так что я могу получить и сохранить в БД того пользователя, который выполнил эту задачу.

Любая помощь будет принята с благодарностью.

Заранее спасибо ...

Ответы [ 3 ]

0 голосов
/ 23 мая 2018

Вот кое-что, что я подготовил для разработчиков Java на основе, мне кажется, сообщения в блоге, которое я видел

edit: https://community.alfresco.com/thread/224336-result-variable-in-javadelegate


RESULT VARIABLE

Option (1) - использовать язык выражений (EL) в XML

<serviceTask id="serviceTask"
    activiti:expression="#{myService.toUpperCase(myVar)}"
    activiti:resultVariable="myVar" />

Java

public class MyService {
    public String toUpperCase(String val) {
        return val.toUpperCase();
    }
}

Возвращенная строка присваивается activiti: resultVariable

НАПРЯМУЮ МОДЕЛЬ ДАННЫХ ПРЯМО

Option (2) - использовать среду выполнения

Java

public class MyService implements JavaDelegate {
    public void execute(DelegateExecution execution) throws Exception {
        String myVar = (String) execution.getVariable("myVar");
        execution.setVariable("myVar", myVar.toUpperCase());
    }
}

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

Это несколько аналогично сервлету, принимающему значения, которые мы передаем в HTMLRequest, а затем основываемся на том, что они делают разные вещи в ответе.(Более сильная аналогия - фильтр сервлетов)


Так что в вашем конкретном случае (в зависимости от того, как вы вызываете скрипт оболочки) использование языка выражений (EL) может быть самым простым и простым.

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

Надеюсь, что это поможет.: D

0 голосов
/ 11 июня 2018

Я использовал activiti: taskListener из приложения activiti, которое необходимо настроить ниже. Свойства 1. Я изменил свойства в прослушивателе задач.2. Я использовал переменную java-скрипта для хранения значения task.assignee.

Отрезок кода: -

0 голосов
/ 22 мая 2018

Обычно в BPM-движках у вас есть способ подключить слушателя к таким событиям.В Activiti, если вы встраиваете его в свой сервис, вы можете добавить дополнительный EventListener, а затем записать события taskCompleted, который будет содержать текущего вошедшего в систему пользователя.https://www.activiti.org/userguide/#eventDispatcher

Надеюсь, это поможет.

...