Разрешение выражений
|
Этот раздел перенесён из документации Camunda 7 и в дальнейшем будет доработан с учётом особенностей OpenBPM Engine |
Библиотеки openbpm-engine-cdi и openbpm-engine-cdi-jakarta предоставляют CDI-бины через Expression Language,
с использованием пользовательского resolver. Это делает возможным обращение к бинам из процесса:
<userTask id="authorizeBusinessTrip" name="Authorize Business Trip"
camunda:assignee="#{authorizingManager.account.username}" />
Здесь authorizingManager может быть бином, предоставленным producer-методом:
@Inject
@ProcessVariable
private Object businessTripRequesterUsername;
@Produces
@Named
public Employee authorizingManager() {
TypedQuery<Employee> query = entityManager.createQuery("SELECT e FROM Employee e WHERE e.account.username='"
+ businessTripRequesterUsername + "'", Employee.class);
Employee employee = query.getSingleResult();
return employee.getManager();
}
Ту же возможность можно использовать для вызова бизнес-метода EJB в service task через расширение camunda:expression="${myEjb.method()}".
Обратите внимание, что для этого класс MyEjb должен быть аннотирован @Named.
Лицензия и атрибуция
Эта документация была создана на базе материала "Camunda 7 Docs" от Camunda, находится под лицензией Creative Commons Attribution-ShareAlike 3.0 Unported License .
Оригинал документации: https://docs.camunda.org