質問

私は奇妙な行動を起こしています。

Seamと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.

ただし、プロセスの定義は無名ではありません。テンプレート定義をデバッグすると、正しい名前が表示されます。 enkeltanledning 、だから私はそれがロードされた正しいJPDLファイルであることを知っています。

それで、私の質問は、なぜ私のコードが常にバージョンで-1を返すのですか?正しいバージョンを必要とする理由は、正しいバージョンがあるかどうかを確認するためにいくつかのチェックを行っているからです。AntherWizeはプロセス解像度を再展開します。常に-1を取得するので、常に再展開します。

役に立ちましたか?

解決

答えを見つけました。

それは、データベースを照会するのではなく、ファイルからプロセス解像度を読んでいるからです。これにコードを変更しました

@In
JbpmContext jbpmContext;

ProcessDefinition templateDefinition = jbpmContext.getGraphSession().findLatestProcessDefinition(processDefName);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top