【问题标题】:Jbpm ProcessDefinition has always version -1Jbpm ProcessDefinition 总是版本-1
【发布时间】:2009-08-20 23:40:41
【问题描述】:

我有一个奇怪的行为。

我正在使用 Seam 和 JBPM。 当我说:

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

它总是返回-1。 但是,当我从数据库中选择时,我得到的是版本 2。

mysql> 从 JBPM_PROCESSDEFINITION 中选择 *; +-----+--------+-----------------+---- ----------+----------+------------+--- ----------+ |身份证_ |类别_ |姓名_ |说明_ |版本_ | ISTERMINATIONIMPLICIT_ |开始状态_ | +-----+--------+-----------------+---- ----------+----------+------------+--- ----------+ | 1 |磷 | Enkeltanleding |空 | 1 | | 1 | | 2 |磷 | Enkeltanleding |空 | 2 | | 31 |

现在,我找到了这个链接: jpdl 它说:

未命名的流程定义将始终具有版本号 -1。

但是,我的流程定义没有未命名,当我调试 templateDefinition 时,我得到了正确的名称 Enkeltanledning ,所以我知道它是已加载的正确 jpdl 文件。

所以我的问题是,为什么我的代码总是在版本中返回 -1? 我需要版本正确的原因是因为我正在做一些检查以查看我是否有正确的版本,否则我将重新部署 ProcessDefinition,并且由于我总是得到 -1,所以它总是会重新部署。

【问题讨论】:

    标签: seam jbpm


    【解决方案1】:

    我找到了答案。

    这是因为我是从文件中读取 ProcessDefinition 而不是查询数据库。把代码改成这样就解决了

    @In
    JbpmContext jbpmContext;
    
    ProcessDefinition templateDefinition = jbpmContext.getGraphSession().findLatestProcessDefinition(processDefName);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-23
      • 2015-09-02
      • 1970-01-01
      • 1970-01-01
      • 2019-04-21
      • 2017-10-23
      • 2010-11-11
      相关资源
      最近更新 更多