Вопрос

У меня происходит странное поведение.

Я использую шов и jbpm. Когда я сказал:

ProcessDefinition templateDefinition = Jbpm.instance().getProcessDefinitionFromResource(ap.getJpdl()); 
//This will return Enkeltanledning.jpdl.xml
templateDefinition.getVersion();

Он всегда возвращает -1. Однако, когда я выбираю из базы данных, я получаю версию 2.

mysql> select * from JBPM_PROCESSDEFINITION;
+-----+--------+-----------------------------+--------------+----------+------------------------+-------------+
| ID_ | CLASS_ | NAME_                       | DESCRIPTION_ | VERSION_ | ISTERMINATIONIMPLICIT_ | STARTSTATE_ |
+-----+--------+-----------------------------+--------------+----------+------------------------+-------------+
|   1 | P      | Enkeltanledning             | NULL         |        1 |                        |           1 | 
|   2 | P      | Enkeltanledning             | NULL         |        2 |                        |          31 | 

Теперь я нашел эту ссылку:JPDLИ это говорит:

Unnamed process definitions will always have version number -1.

Тем не менее, у меня есть определения моего процесса не являются неназванными, и когда я отлаживаю TemplatedFinition, я получаю правильное имя Enkeltanning Поэтому я знаю, что это правильный файл JPDL, который был загружен.

Итак, мой вопрос: почему мой код всегда возвращает -1 в версии? Причина, по которой мне нужна версия, заключается в том, что я делаю некоторые проверки, чтобы увидеть, есть ли у меня правильная версия, я буду передать перераспределение процесса определения, и, поскольку я всегда получаю -1, она всегда будет переделал.

Это было полезно?

Решение

Я нашел ответ.

Это потому, что я читаю процесс определения из файла вместо того, чтобы запросить базу данных. Изменение кода на это решило

@In
JbpmContext jbpmContext;

ProcessDefinition templateDefinition = jbpmContext.getGraphSession().findLatestProcessDefinition(processDefName);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top