Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 1
Регистрация: 25.10.2012
Сообщений: 87
1

Не работают timer boundary events в Alfresco's Activiti 6

30.10.2018, 10:54. Показов 645. Ответов 1

Author24 — интернет-сервис помощи студентам
Здравствуйте. У нас в фирме используется 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.
Миниатюры
Не работают timer boundary events в Alfresco's Activiti 6  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.10.2018, 10:54
Ответы с готовыми решениями:

[WPF] Не работают Timer, KeyDown в игре
Здравствуйте, пишу игрушку Old school Race. Подскажите пожалуйста что тут не так? почему KeyDown,...

FileSystemWatcher и Timer не работают как надо
Пишу код namespace watcher { public partial class Form1 : Form { public...

Activiti Bpm & Xpages
Всем привет ! :D Например, разрабатываю СЭД и определенный бизнес процесс, якобы Директор >...

Кнопка Beck; Activiti
Добрый день ) 1.Как можно отключить кнопку back в приложении ? 2.Как сделать что бы при переходе...

1
0 / 0 / 1
Регистрация: 25.10.2012
Сообщений: 87
07.11.2018, 12:45  [ТС] 2
Проверил через Activiti Modeler (составил там простую схему с таймерам) - там всё работает.

Написал простенькое приложение без спринга (на свинге). Использовал класс StandaloneProcessEngineConfiguration, не использовал ProcessEngineBeanFactoryBean. И тоже всё работало. Но только пока после boundary timer-а не стоит script task или service task. С ними - не работает (по первому не находит движок груви, по второму - не видит указанный класс (причём указываю полное имя класса, и он там точно есть)). Если после boundary timer стоит user task или manual task, то всё нормально отрабатывает. Почему не работает с script task и service task я таки и не понял. Осталось попробовать с классами SpringProcessEngineConfiguration и ProcessEngineBeanFactoryBean, и с контейнеров бинов спринга.
0
07.11.2018, 12:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.11.2018, 12:45
Помогаю со студенческими работами здесь

Метод вызова Activiti через ListView
Всем привет. Каким образом реализовать следующее: Любое значение списка ListView вызывает ТОЛЬКО...

Запуск/остановка таймера при вводе в Edit команд Timer Start/Timer Stop
Суть вот в чём на форме есть таймер который выполняет обратный отсчёт и есть Edit, задача вот...

Не удаётся связать два файла timer.h и timer.cpp
Добрый вечер, у меня есть класс и библиотеки которые нужно использовать в нескольких программах, по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru