jbpm5.1介绍(4)
eclipse插件
需求 Eclipse的3.6或更新版本
Graphiti框架,使用更新站点
可以直接下载更新Graphiti
http://download.eclipse.org/graphiti/updates/0.7.1/
更新bpmn2.0插件
也可以直接从网站上下载后到本地更新,下载地址
https://github.com/droolsjbpm/bpmn2-eclipse-editor
使用eclipse创建hellojbpm
打开eclipse,新建jbpm project
输入工程名,然后都是下一步
最后完成,工程就创建完成了。
修改流程定义
加入两个Script Task,然后修改其属性,点击节点然后在下方面板中修改属性
在Action加入要执行的代码,可以是java也可以是Mvel角本
加完之后,可以看到流程如下图
执行测试流程,流程将直接走到结束并且经过两个Script Task并且输出内容
public class ProcessTest {
public static final void main(String[] args) {
try {
// load up the knowledge base
KnowledgeBase kbase = readKnowledgeBase();
StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newFileLogger(ksession, "test");
// start a new process instance
ksession.startProcess("com.sample.bpmn.hello");
logger.close();
} catch (Throwable t) {
t.printStackTrace();
}
}
private static KnowledgeBase readKnowledgeBase() throws Exception {
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newClassPathResource("sample.bpmn"), ResourceType.BPMN2);
return kbuilder.newKnowledgeBase();
}
}
运行可看到结果
Hello jbpm5
自动化的流程向下走
使用eclipse创建hellojbpm
打开eclipse,将示例工程导入,示例工程路径jbpm-installer/sample/evaluation
这是一个员工添写自我评价并且需要人力资源和项目经理审批的示例,中间有两个网关都是AND,就是表示必须是人力资源和项目经理全部评价完成流程才算结束。
员工:krisv
人力资源:mary
项目经理:john
看下图:
首先运行工程中的示例,开始流程
在view中选出Human task view
流程开始的时候,krisv开始添写自我评价,这时到human task view中可以看到状态
输入krisv并且刷新
可以看到自己要处理的流程
点击start,则流程进入到inprogress状态,点击complete,则流程结束
完成之后进入一个分支节点,这个结点用的是AND就是只有当人事经理和项目经理全部审核通过后流程才算结束
我们在human task view输入mary,则出现mary的待办列表
流程处理状态同krisv,也可以输入john看一下,每个人都有对应的要处理的任务列表,比较直观的就能看到要处理的结果。
只有当两个流程全部结束流程才算结束。
通过上面的示例我们看到了使用人工结点,也可以在结束前或者流程中加入Script Task,以处理在不同的时刻状态的变化。
- F-Stack 助力 HTTP 网络服务器性能提升
- How to build Multi-Language Web Sites with ASP.NET 2.0 and VS.Net 2005
- 动态生成TreeView方法(二)
- Gradle打jar包如何上传到maven本地库
- POJO应用框架:Spring与EJB3.0的比较
- spring Boot 整合mybatis 如何使用多数据源
- 动态生成TreeView方法(一)
- hadoop系列之深入优化
- Using sqlite with .NET
- Gridview行上下移动自己做的一个小例子(第一种方法)
- Hadoop伪分布式集群安装部署
- sql 表有没有自增列,插入自增列值
- jsp中的JSTL与EL表达式用法及区别(二)
- WPF 给控件添加复制事作
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法