문제

나는 이상한 행동이 진행되고 있습니다.

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을 반환합니까? 내가 올바른 버전이 필요한 이유는 올바른 버전이 있는지 확인하기 위해 약간의 수표를 작성하고 있기 때문에 Otherwize는 ProcessDefinition을 재배치하고 항상 -1을 얻기 때문에 항상 재배치됩니다.

도움이 되었습니까?

해결책

나는 대답을 찾았다.

데이터베이스를 쿼리하는 대신 파일에서 ProcessDefinition을 읽고 있기 때문입니다. 코드를 이것으로 변경하면 해결되었습니다

@In
JbpmContext jbpmContext;

ProcessDefinition templateDefinition = jbpmContext.getGraphSession().findLatestProcessDefinition(processDefName);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top