Как использовать спринг-бины в expressions в Activiti (ServiceTask)?

184
11 января 2019, 09:30

Не получается использовать бины в выражения в Activiti (в ServiceTask). Он пишет, что не видит этот бин. Выдержка из пом по версиям:

<springframework.version>5.0.2.RELEASE</springframework.version>
        <springframework.boot>2.0.4.RELEASE</springframework.boot>
        <activiti.version>6.0.0</activiti.version>

Бины определяю аннотациями над классами. Выдержка из файла bpmn-схемы:

<serviceTask id="SendStatus104" name="Формирование и отправка статуса" activiti:expression="${sendService.sendStatusCode(104)}">
  <documentation>Формирование и отправка статуса</documentation>
</serviceTask>

Объявление класса:

    @Service("sendService")
public class SendServiceImpl implements SendService {
//some code
}
Answer 1

Необходимо использовать другие классы для создания бинов конфигурации Активити:

@Bean
SpringProcessEngineConfiguration processEngineConfiguration(@Qualifier("dataSourceForActiviti") DataSource dataSourceForActiviti,
                                                            @Qualifier("transactionManagerForActiviti") PlatformTransactionManager transactionManagerForActiviti) {
    SpringProcessEngineConfiguration processEngineConfiguration = new SpringProcessEngineConfiguration();
    processEngineConfiguration.setTransactionManager(transactionManagerForActiviti);
    processEngineConfiguration.setDataSource(dataSourceForActiviti)
            .setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE)
            .setAsyncExecutorActivate(true)
    ;
    processEngineConfiguration.setDeploymentResources(new Resource[]{
            new ClassPathResource("bpm/1LicensingProcess.bpmn20.xml"),
            new ClassPathResource("bpm/2ReissuanceLicenseProcess.bpmn20.xml"),
            new ClassPathResource("bpm/3IssueOfDuplicateProcess.bpmn20.xml"),
            new ClassPathResource("bpm/4IssuanceOfCopyProcess.bpmn20.xml"),
            new ClassPathResource("bpm/5TerminationOfLicenseProcess.bpmn20.xml"),
            new ClassPathResource("bpm/RLic6ExtractFromRegisterOfLicensesProcess.bpmn20.xml")
    });

    return processEngineConfiguration;
}
@Bean
ProcessEngineFactoryBean processEngineFactoryBean(SpringProcessEngineConfiguration processEngineConfiguration) {
    ProcessEngineFactoryBean processEngineFactoryBean = new ProcessEngineFactoryBean();
    processEngineFactoryBean.setProcessEngineConfiguration(processEngineConfiguration);
    return processEngineFactoryBean;
}

Для создания объектов сервисов Активити нужно делать так (на примере сервиса RepositoryService):

@Bean
RepositoryService repositoryService(ProcessEngineFactoryBean processEngineFactoryBean) throws Exception {
    return processEngineFactoryBean.getObject().getRepositoryService();
}
READ ALSO
Как сделать структуру блоков как на картинке?

Как сделать структуру блоков как на картинке?

Нужно таблицу из блоков как на картинке

218
Анимация вычеркивания после клика

Анимация вычеркивания после клика

Хочу добавить анимацию плавного вычеркивания для элемента li после клика по нему, но не могу понять где нужно устанавливать transition чтобы это...

256
Работа с таблицами в FireBase

Работа с таблицами в FireBase

Как я могу редактировать/добавлять записи в таблицах Firebase? Официальные документация предлагает делать так:

219
помогите тотальному новичку

помогите тотальному новичку

когда я навожу несколько раз на элемент ul то при клике на любой элемент li выводится не конкретный элемент в consolelog а дублирвоанное количество...

237