linux怎么查看本机内存大小
474
2022-09-07
Jbpm3.2 开发一个Hello World程序
这是一个超级简单的请假流程,只是为了学习,其他的我就不说了直接开始了。
1.定义 流程processdefinition.xml
processdefinition.xml,这个是一个关键文件。具体内容如下:
processdefinition.xml文件相关标签说明:
说明:
流程的名称改成了 helloworld 。(呵呵,也就是这里和 helloworld 有关了)
ActionHandler 类中。比如这里当 request 到 confirm 结点时将执行 RequestAction 类的 execute 方法。
RequestAction 下面还有一个
例如:
private String reason; public String getReason() { return reason; } public void setReason(String reason) { this.reason = reason; }
流程文件对应的流程图如下:
ConfirmAction,具体代码如下:
package com.worldunion.handler; import org.jbpm.graph.def.ActionHandler; import org.jbpm.graph.exe.ExecutionContext; public class RequestAction implements ActionHandler { private String reason; public String getReason() { return reason; } public void setReason(String reason) { this.reason = reason; } /** * 请求 */ @Override public void execute(ExecutionContext context) throws Exception { context.getContextInstance().setVariable("note", reason); } }
说明:
ExecutionContext 是一个贯通流程的容器,他是个大宝箱,里面啥玩意都有,后面将更深入的提到。这里的reasion就是processdefinition.xml中的我要请假。
package com.worldunion.handler; import org.jbpm.graph.def.ActionHandler; import org.jbpm.graph.exe.ExecutionContext; /** * 批准 * @author Administrator * */ public class ConfirmAction implements ActionHandler { @Override public void execute(ExecutionContext context) throws Exception { context.getContextInstance().setVariable("note", "准假"); } }
到了这里,后台的程序基本写完了,下面开始对流程进行部署,用前面提到的方法如下:
package com.worldunion.test; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; import junit.framework.TestCase; import org.jbpm.JbpmConfiguration; import org.jbpm.JbpmContext; import org.jbpm.graph.def.ProcessDefinition; /** * 部署processdefinition.xml文件 * @author Administrator */ public class DeployProcessTest extends TestCase { public void testDeployProcessDefinition() throws FileNotFoundException{ //从jbpm.cfg.xml取得jbpm的配置 JbpmConfiguration config = JbpmConfiguration.getInstance(); //创建jbpm容器 JbpmContext jbpmContext = config.createJbpmContext(); InputStream is = new FileInputStream("processes/JbpmHelloWorld/processdefinition.xml"); ProcessDefinition processDefinition = ProcessDefinition.parseXmlInputStream(is); //利用容器的方法将流程定影部署到数据上 jbpmContext.deployProcessDefinition(processDefinition); //关闭jbpmContext jbpmContext.close(); } }
运行此程序看是否成功,在这里我的是可以的,我们继续了。
我慢来看看jbpm数据相关表:如下图
并由此简单判断出各表的作用,表中各字段的作用由字段名也能知晓一二。
jbpm_processdefinition : 一个流程定义文件对应一条记录,可记录多个流程定义文件,可记录一个流程定义文件的对个版本。 jbpm_action : 记录 ActionHandler 的对象实例(以名称为标识) jbpm_delegation : 记录了 ActionHandler 全类名,以便于用反射方式来加载 jbpm_envent : 它的 transition 引用了 Jbpm_transition 表的 id ,再看其它字段,估计此表是表示流程转向事件的一个实例,或者是一个各表之间的联接表。 jbpm_node : 流程结点 jbpm_transition : 流程的转向定义 jbpm_variableaccess : 流程中携带的变量。 ACCESS 字段是这些变量的读写权限
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~