Не получается использовать бины в выражения в 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
}
Необходимо использовать другие классы для создания бинов конфигурации Активити:
@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();
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости