powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Не работают timer boundary events в Alfresco's Activiti 6
2 сообщений из 2, страница 1 из 1
Не работают timer boundary events в Alfresco's Activiti 6
    #39724830
MaxLich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. У нас в фирме используется Alfresco's Activiti 6, и необходимо добавить timer boundary events на bpm-схему. Всяко-разно пробовал, и никак не получается сделать, чтобы он срабатывал. Пример моей bpm-схемы:


Если ставлю что-то после таймера, то процесс идёт по своему обычному маршруту. Если ничего не ставлю, идёт по ветке, исходящей из таймера. При этом без разницы, какой промежуток времени стоит у таймера: процесс идёт по той или по другой ветке сразу же.

Для создания объектов для работы с движком Активити использую Spring 5. Вот часть моего класса конфигурации:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
@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/RLic1LicensingProcess.bpmn20.xml"),
                    new ClassPathResource("bpm/RLic2ReissuanceLicenseProcess.bpmn20.xml"),
                    new ClassPathResource("bpm/RLic3IssueOfDuplicateProcess.bpmn20.xml"),
                    new ClassPathResource("bpm/RLic4IssuanceOfCopyProcess.bpmn20.xml"),
                    new ClassPathResource("bpm/RLic5TerminationOfLicenseProcess.bpmn20.xml"),
                    new ClassPathResource("bpm/RLic6ExtractFromRegisterOfLicensesProcess.bpmn20.xml")
            });
    
    
            return processEngineConfiguration;
        }
    
        @Bean
        ProcessEngineFactoryBean processEngineFactoryBean(SpringProcessEngineConfiguration processEngineConfiguration) {
            ProcessEngineFactoryBean processEngineFactoryBean = new ProcessEngineFactoryBean();
            processEngineFactoryBean.setProcessEngineConfiguration(processEngineConfiguration);
            return processEngineFactoryBean;
        }
    
        @Bean
        RepositoryService repositoryService(ProcessEngineFactoryBean processEngineFactoryBean) throws Exception {
            return processEngineFactoryBean.getObject().getRepositoryService();
        }
    
        @Bean
        RuntimeService runtimeService(ProcessEngineFactoryBean processEngineFactoryBean) throws Exception {
            return processEngineFactoryBean.getObject().getRuntimeService();
        }
    
        @Bean
        TaskService taskService(ProcessEngineFactoryBean processEngineFactoryBean) throws Exception {
            return processEngineFactoryBean.getObject().getTaskService();
        }



В документации написано, что таймеры работают, только если asyncExecutorActivate установлен в true . И нашёл метод setAsyncExecutorActivate у ProcessEngineConfiguration . Но использование этого метода ничего не даёт.

Также находил такое решение в сети:
Код: java
1.
2.
3.
4.
5.
// Async Job Executor
    final DefaultAsyncJobExecutor asyncExecutor = new DefaultAsyncJobExecutor();
    asyncExecutor.setMaxPoolSize(50);
    asyncExecutor.setQueueSize(100);
    processEngineConfiguration.setAsyncExecutor(asyncExecutor);


Но оно тоже мне не помогает, хотя asyncExecutor после этого уже не null .
...
Рейтинг: 0 / 0
Не работают timer boundary events в Alfresco's Activiti 6
    #39729214
MaxLich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проверил через Activiti Modeler (составил там простую схему с таймерам) - там всё работает.

Написал простенькое приложение без спринга (на свинге). Использовал класс StandaloneProcessEngineConfiguration, не использовал ProcessEngineBeanFactoryBean. И тоже всё работало. Но только пока после boundary timer-а не стоит script task или service task. С ними - не работает (по первому не находит движок груви, по второму - не видит указанный класс (причём указываю полное имя класса, и он там точно есть)). Если после boundary timer стоит user task или manual task, то всё нормально отрабатывает. Почему не работает с script task и service task я таки и не понял. Осталось попробовать с классами SpringProcessEngineConfiguration и ProcessEngineBeanFactoryBean, и с контейнеров бинов спринга.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Не работают timer boundary events в Alfresco's Activiti 6
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]