Pergunta

Eu tenho um comportamento estranho acontecendo.

Estou usando costura e jbpm. Quando eu digo:

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

Sempre retorna -1. No entanto, quando seleciono no banco de dados, recebo a versão 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 | 

Agora, encontrei este link:jpdlE diz:

Unnamed process definitions will always have version number -1.

No entanto, tenho minhas definições de processo não são sem nome, e quando eu depurar a Sulatefinition, recebo o nome correto Enkeltanledning , então eu sei que é o arquivo JPDL correto que foi carregado.

Então, minha pergunta é: por que meu código sempre retorna -1 na versão? A razão pela qual eu preciso que a versão esteja correta é porque estou fazendo algumas verificações para ver se tenho a versão correta, o outro lado irei reimplantar a definição do Process e, como sempre recebo -1, ela sempre será reimplantada.

Foi útil?

Solução

Eu encontrei a resposta.

É porque estou lendo o ProcessDefinition a partir do arquivo em vez de garantir o banco de dados. Alterar o código para isso resolveu

@In
JbpmContext jbpmContext;

ProcessDefinition templateDefinition = jbpmContext.getGraphSession().findLatestProcessDefinition(processDefName);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top