2016-09-01 6 views
0

Я работаю с рабочими процессами Alfresco и Activiti. Один из моих рабочих процессов должен подключаться к внешней базе данных и получать некоторые имена пользователей. Эти имена пользователей будут пользователями, назначенными для какой-либо задачи рабочего процесса.Установите переменную в Activiti из Java-класса

В настоящее время мое «решение» создает Java-класс с JDBC для извлечения необходимых имен пользователей и создает задачу службы, которая называет этот Java-класс, но я не знаю, как продолжить.

Я ищу решение, и я ничего не нахожу. Любые предложения?

Спасибо.

ответ

2

Ваш класс задач службы Java должен реализовать интерфейс org.activiti.engine.delegate.JavaDelegate, который получает DelegateExecution, переданный его методу execute.

На объекте DelegateExecution вы можете позвонить setVariable, чтобы установить переменную рабочего процесса.

public class MyServiceTask implements JavaDelegate { 
    @Override 
    public void execute(DelegateExecution execution) { 
     // Do something to get the data for your variable 
     Object value = ...; 

     // Set the variable 
     execution.setVariable("VARNAME", value); 
    } 
} 

См Activiti user guide и API documentation.

+0

Спасибо за ваш ответ! Я попробую. –

2

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

Преимущества этого подхода: вам не нужно использовать переменную процесса, если эта логика назначения используется только один раз в процессе.

Смежные вопросы