Domanda

Ho uno strano comportamento in corso.

Sto usando Seam e jBPM. Quando dico:

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

Si restituisce sempre -1. Tuttavia, quando si seleziona dal database, ottengo la versione 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 | 

Ora, ho trovato questo link: jPDL E dice:

Unnamed process definitions will always have version number -1.

Tuttavia, ho le mie definizioni di processo non sono senza nome, e quando il debug templateDefinition ottengo il nome corretto Enkeltanledning , quindi so che è il file jPDL corretto che è stato caricato.

Quindi la mia domanda è, perché il mio codice restituisce sempre -1 nella versione? Il motivo per cui ho bisogno la versione di essere corretta, è perché sto facendo alcuni controlli per vedere se ho la versione corretta, Otherwize io ridistribuire il ProcessDefinition, e dato che ho sempre -1, sarà sempre ridistribuire.

È stato utile?

Soluzione

ho trovato la risposta.

Il suo perché sto leggendo il ProcessDefinition dal file invece che quering database. Cambiare il codice per questo risolto

@In
JbpmContext jbpmContext;

ProcessDefinition templateDefinition = jbpmContext.getGraphSession().findLatestProcessDefinition(processDefName);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top