Frage

Ich habe ein seltsames Verhalten.

Ich benutze Naht und JBPM. Wenn ich sage:

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

Es gibt immer -1 zurück. Wenn ich jedoch aus der Datenbank auswähle, erhalte ich Version 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 | 

Jetzt fand ich diesen Link:JPDLUnd es heißt:

Unnamed process definitions will always have version number -1.

Ich habe jedoch, dass meine Prozessdefinitionen nicht unbenannt sind, und wenn ich die Vorlagendefinition debuggen, bekomme ich den richtigen Namen Enkeltanledning Ich weiß also, dass es die richtige JPDL -Datei ist, die geladen wurde.

Meine Frage ist also, warum mein Code immer -1 in der Version zurückgibt? Der Grund, warum ich die Version korrigieren muss, ist, dass ich einige Überprüfungen mache, um zu sehen, ob ich die richtige Version habe.

War es hilfreich?

Lösung

Ich fand die Antwort.

Es liegt daran, dass ich die Prozessdefinition aus der Datei lese, anstatt die Datenbank zu befragen. Das Ändern des Codes auf dies löste ihn

@In
JbpmContext jbpmContext;

ProcessDefinition templateDefinition = jbpmContext.getGraphSession().findLatestProcessDefinition(processDefName);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top