Разрешение выражений

Этот раздел перенесён из документации 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