Использование ServiceTasks с TimerCatchingEvents в рабочем процессе activiti bpmn ведет себя непоследовательно - PullRequest
1 голос
/ 04 февраля 2020

При использовании ServiceTasks с IntermediateTimerEvents иногда он не выполнял задачу службы из-за исключения, возникшего в таблице ACT_RU_JOB. Столбец EXCEPTION_MSG_ в таблице ACT_RU_JOB заполняется Неизвестным свойством, используемым в выражении: # {serviceTask1.execute (выполнение) . значение для этой конкретной работы.

Пожалуйста, обратитесь к образу рабочего процесса activiti, который я прикрепил ниже, чтобы получить ясную картину варианта использования.

ПРИМЕЧАНИЕ: Я использую пружинный микросервис использование maven для запуска рабочего процесса.

  spring-boot version: 1.5.5.RELEASE
  activity version: 5.22.0

 Activity and Connection Pool dependencies in pom.xml:  
  <dependency>
        <groupId>org.activiti</groupId>
        <artifactId>activiti-spring-boot-starter-basic</artifactId>
        <version>${activiti.version}</version>
    </dependency>
  Connection Pooling dependency:
  <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-jdbc</artifactId>
  </dependency>

  application.properties configuration attached below:
  spring.activiti.job-executor-activate=false
  spring.activiti.async-executor-enabled=true
  spring.activiti.async-executor-activate=true

  spring.datasource.tomcat.initial-size=15
  spring.datasource.tomcat.max-active=100

АНАЛИЗ: ошибка, которую я получаю выше, не соответствует.

рабочий процесс activiti

Ссылка на проект на Github: https://github.com/cloudnativeview/spring-activiti-bpmn-kickstart

1 Ответ

0 голосов
/ 24 февраля 2020

Исключение вполне ожидаемо, поскольку вы не устанавливаете соответствующую переменную процесса при запуске экземпляра процесса. Также движок Activiti не может разрешить именованный компонент serviceTask1.

Из документации пользователя Activiti 5.22.0 (внутри файла activiti-5.22.0.zip), точнее, из раздела 8.5.3. Java Служебная задача у вас есть 4 способа объявить, как вызывать Java logi c.

  • Указание класса, реализующего JavaDelegate или ActivityBehavior.
  • Оценка выражение, которое разрешается в объект делегирования.
  • Вызов выражения метода.
  • Оценка выражения значения.

В файле определения процесса BPMN вы вызываете службу задача Java лог c с техникой method expression. Если вы хотите успешно вызвать ваш метод, вы должны убедиться, что ваш bean-компонент serviceTask1 является переменной процесса вашего выполнения или именованным объектом в контексте Spring.

К сожалению, вы не предоставляете необходимую информацию для вашего BPM двигатель, где найти ваш бин с Java logi c.

Я предлагаю вам следующие шаги.

  1. Прочтите техническую и пользовательскую документацию (глава 8.5.3. Java Сервисное задание) по предоставленным ссылкам.
  2. Попробуйте вызвать Java logi c способом , указав класс, который реализует JavaDelegate или ActivityBehavior . По моему скромному мнению, гораздо легче получить первое прикосновение к двигателю Activiti BPM.
...