private JbpmContext getContext() {
JbpmContext context = jbpmConfiguration.createJbpmContext();
context.setSession(getSession());
return context;
}
JbpmContext context = getContext();
ProcessDefinition def = context.getGraphSession().findLatestProcessDefinition(workflowName);
ProcessInstance processInstance = new ProcessInstance(def);
processInstance.getContextInstance().setVariable("document", documentId);
context.save(processInstance);
return processInstance.getId();
【报错的是这行代码】ProcessInstance processInstance = new ProcessInstance(def);
JbpmContext context = jbpmConfiguration.createJbpmContext();
context.setSession(getSession());
return context;
折腾了一天多,终于解决了,网上是说关闭context,但是我关了还是不管用。查看JBPM_MODULEDEFINITION这个表,发现有个NAME_字段没有值,而我之前成功的流程里面这个字段是有值的,好那就手动存进去,结果能用了。
当然,不可能每次都要自己手动存,那样就不是工作流引擎了。分析没有存入数据的原因就是Spring没有管理好我的Seeion,其实应该是配置文件有问题,但是我这个地方比较薄弱,没办法我就在部署流程的代码后面手动的清空Session试试:context.getSession().flush();,结果就可以了。以前报的错都没有了!
分享到:
相关推荐
3. **org.jbpm.graph.def**:流程定义相关的类,用于描述流程的结构,如节点定义、任务定义、事件定义等。 4. **org.jbpm.graph.exe**:运行时执行环境,包含流程实例、任务实例的管理,以及流程的执行逻辑。 5. *...
- `U`: 超级状态节点,由`org.jbpm.graph.def.SuperState`实现。 - **NAME_**:流程节点名称,用于识别各个节点。 - **SUBPROCESSDEFINITION_**:当节点类型为`ProcessState`时,此字段表示该节点是另一个流程模版...
import org.jbpm.graph.def.ProcessDefinition; import org.jbpm.graph.exe.ProcessInstance; import org.jbpm.graph.exe.Token; import org.jbpm.kernel.KnowledgeBase; import org.jbpm.kernel....
`org.jbpm.graph.def.ProcessDefinition` 此类定义了一个完整的流程定义。包括以下属性: - `name`: 字符串类型,表示流程名称。 - `version`: 整型,表示流程版本。 - `isTerminationImplicit`: 布尔类型,表示...
ProcessDefinition pd=ProcessDefinition.parseParZipInputStream(zis); //需要使用jc的方法吧pd持久到数据库中 jc.deployProcessDefinition(pd); jc.close(); } public void testgetinstance(){ //得到...
import org.jbpm.graph.def.*; import org.jbpm.graph.exe.*; public class MyActionHandler implements ActionHandler { public void execute(ExecutionContext executionContext) { System.out.println(...
import org.jbpm.graph.def.*; import org.jbpm.graph.exe.*; public class MyActionHandler implements ActionHandler { public void execute(ExecutionContext executionContext) { System.out.println(...
其中,`org.jbpm.graph.def`包下的类用于定义流程图,`org.jbpm.process.instance`包则包含了运行时流程实例的管理。 在jbpm中,`ProcessDefinition`接口代表了一个流程模型,而`ProcessInstance`接口则表示正在...
ProcessDefinition myProcessDefinition = null; // ... 初始化并设置myProcessDefinition session.save(myProcessDefinition); session.commitTransaction(); ``` 这段代码创建了一个新的流程定义实例,并将其保存...
- **CLASS_**:节点的类型,例如`org.jbpm.graph.node.ProcessState`表示这是一个子流程节点。 - **NAME_**:流程节点的名称。 - **SUBPROCESSDEFINITION_**:如果节点类型是`ProcessState`,则此字段表示子流程模版...
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString( "<process-definition name='xiaobai'>" + "<start-state name='start'>" + "<transition to='s'/>" + "</start-state>" + ...
import org.jbpm.graph.def... ``` #### 三、深入理解JPDL(Jobflow Process Definition Language) JBPM使用了一种称为JPDL的语言来定义工作流过程。以下是JPDL中一些核心元素的详细介绍: 1. **流程版本...
当一个process instance被创建的时候,一个主执行路径token同时被创建,这个token叫做root token,它指向流程定义的start state(processDefinition.getStartState()==token.getNode())。 6.signal 一个signal ...
- **jpdl (Java Persistence Definition Language)**:它是jBPM的核心,一种用于定义工作流的领域特定语言(DSL)。 - **工作流管理**:通过定义工作流模型,实现对业务流程的自动化管理。 #### 1.2 The jPDL suite -...
jPDL(jBPM Process Definition Language)是jBPM早期版本中使用的一种流程定义语言,它提供了一种基于XML的格式来描述业务流程。本指南旨在帮助开发者理解和掌握jBPL的核心概念和技术细节。 #### 二、jBPM jPDL...