Atitit.可视化编程jbpm6 的环境and 使用总结...
2.2. Install eclipse jbpm plugin 2
3.1. Cretae demo prj 执行自动生成的测试代码 3
3.4. 添加一个script task控件..Process desgin ....opoen bpmn ,then open prodesginer... 4
3.5. 设置script task控件的执行java语句..
4
3.6. 设置process的id属性: process2
5
4.2. 添加start控件and script task控件task0
6
4.3. 建立global 变量 (process 文件内范围)
6
4.5. 添加一个if else 分支控件:: gateway diverge 6
4.6. 添加两个script task控件执行task1() & task2(); 7
4.7. 添加一个gateway converge控件,指向end控件...
7
1. Jbpm的意义
在于可视化编程...
前端的可视化编程有dreamweaver,,,后端的有myeclipse hibernate 自动生成...
只有当中的业务代码现在仍然是编码方式...
使用jbpm,可以大大减少编码,,使用拖拽式,流程图方式来编程...
作者:: 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
2. Jbpm6环境配置
2.1. Down
jbpm-distribution-6.1.0.CR1-installer-full.zip (403M)
Include
dashboard-builder-6.1.0.CR1.war 18M
jbpm-console-6.1.0.CR1.war (196M)
jboss-as-7.1.1.Final.zip 130M
jbpm-6.1.0.CR1-bin.zip 42M
org.drools.updatesite-6.1.0.CR1.zip 20M
jbpm-console是web版本,可以不使用...dashboard-builder 好像是个form builder...安装李一佬杞,马安装上...放弃..
Eclipse 4.3
2.2. Install eclipse jbpm plugin
U:\jbpm-installer\liborg.drools.updatesite-6.1.0.CR1.zip (19M)
Install by Archi.zip
0. 重启后你会发现Eclipse首选项参数中多了一项:JBPM项,如下图,说明你成功了.
2.3. Set Jbpm6_Runtimes
U:\jbpm-installer\lib\jbpm-6.1.0.CR1-bin (41M)
打开Eclipse->Preferences 会弹出一个对话框,在文本框中搜索到"JBPM".
3. 第三步配置installed jbpm Runtimes路径,点开后,点击“Add”按钮,Name写上:“Jbpm6_Runtimes”,Path:浏览到“jbpm-6.0.1.Final-bin”路径,也就是刚刚释放到D盘上的
3. 顺序执行的流程配置
3.1. Cretae demo prj 执行自动生成的测试代码
打开Eclipse,右键New JBPM Project 项目,在项目名称里面填写一个项目名字,如“TestJbpm6”,然后下一步,知道Finish完成(里面会使用我们配置的运行环境)。
里面会给我们自动生成一个实例,ProcessTest.java文件可以运行sample.bpmn流程文件。直接运行Process.java类,右键Run As -> jUnit Test,这时控制台就会输入“Hello World”文本
3.2. 建立新的流程bpmn文件
New >jbpm >>pbmn process >>pkg1 package>> new file bpmnAti.bpmn...
拖拽start,script task, end 结点, 使用squ flow 线条连接起来...
3.3. 添加start 跟end控件
3.4. 添加一个script task控件..Process desgin ....opoen bpmn ,then open prodesginer...
Like follow..
3.5. 设置script task控件的执行java语句..
Note>rit key>>property {panel} ,>>can see action Properry....enter java statement..
设置task结点的action属性System.out.println("Hello World attilax22");
3.6. 设置process的id属性: process2
3.7. 调用执行流程函数
执行流程需要两个参数,一个是bpmn文件的路径,一个是流程的id...
你需要建立一个知识库,其中包含过程定义
你需要创建一个会话,沟通与流程引擎和启动过程的启动过程。
RuntimeManager 可让你更方便的访问 ksession 和任务服务
public static void main(String[] args) {
KieHelper kieHelper = new KieHelper();
KieBase kieBase = kieHelper.addResource(
ResourceFactory.newClassPathResource("pkg1/bpmnAti.bpmn"))
.build();
KieSession ksession = kieBase.newKieSession();
ProcessInstance processInstance = ksession.startProcess("process2");
4. Jbpm的if else分支结构配置
4.1. Java代码
If(task0())
Task1()
Else task2();
4.2. 添加start控件and script task控件task0
4.3. 建立global 变量 (process 文件内范围)
Task0>>property>>Action>>globale ::
// define your globals here: e.g. global java.util.List myList
global Integer task0Result
4.4. 设置task0控件返回变量值
task0Result= 3; //jeig haosyeo bcyi zayon ...only a task can use ..bnen cross task...
// kcontext.setVariable("task0Result", 1);
kcontext.getKnowledgeRuntime().setGlobal("task0Result", new com.sample.tIf().task0RztMeth());
//jeig nen cross task...
4.5. 添加一个if else 分支控件:: gateway diverge
再配置条件...跳转..
Type:: XOR
Constraints:: to node1 ::: return task0Result==1;
;
4.6. 添加两个script task控件执行task1() & task2();
4.7. 添加一个gateway converge控件,指向end控件...
5. Jbpm的循环结构.配置
6. Other 概念
6.1. Java和MVEL
jBPM的目前支持两种方言,Java和MVEL。 Java的行动应该是有效的Java代码。 MVEL行动可以使用的业务脚本语言MVEL表达的行动。 MVEL接受任何有效的Java代码,但此外提供支持嵌套的参数访问(例如,person.name,而不是person.getName()),和许多其他的脚本改进。因此,MVEL表达式为商业用户更方便。例如,一个动作,打印出的人在“请求者”的过程变量的名称看起来像这样:
// Java dialect System.out.println( person.getName() ); // MVEL dialect System.out.println( person.name ); |
6.2. JPDL是构建于jBPM框架上的流程语言之一
。在jPDL中提供了任务(tasks)、待处理状态 (wait states)、计时器(timers)、自动处理(automated actions)…等术语,并通过图型化的流程定义,很直观地描述业务流程。
JPDL可以部署于Java语言的任何应用环境下,JavaSE Application(Swing/SWT)、JavaEE Application(Application Server) 。
6.3. JAVA规则引擎 -- Drools
Drools是一个基于java的规则引擎,开源的,可以将复杂多变的规则从硬编码中解放出来,以规则脚本的形式存放在文件中,使得规则的变更不需要修正代码重启机器就可以立即在线上环境生效。
6.4. 参考
安装JBPM6运行环境(JBPM6学习之二) - chengzhangmsdn的专栏 - 博客频道 - CSDN.NET.htm
JBoss 系列八十: jBPM 6 中使用 jbpm-console 创建执行 BPM 流程 - 其他综合 - 红黑联盟.htm
jbpm5.1介绍(3) - skyme - 博客园.htm
Atitit.可视化编程jbpm6 的环境and 使用总结...的更多相关文章
-
Atitit 编程语言编程方法的进化演进 sp  COP ,AOP ,SOP
Atitit 编程语言编程方法的进化演进 sp COP ,AOP ,SOP 1.1. Sp oop>>COP ,AOP ,SOP1 1.2. Sp oop 结构化方法SP(Stru ...
-
Atitit.可视化与报表原理与概论
Atitit.可视化与报表原理与概论 1. 信息可视化1 2. Gui可视化1 3. 报表系统(三大图表,金字塔,组织结构图等)1 4. <可视化数据>目录3 5. 可视化的具体实现(c ...
-
atitit.元编程总结 o99
atitit.元编程总结 o99.doc 1. 元编程(Metaprogramming) 1 2. 元编程的历史and发展 1 3. 元类型and元数据 1 4. 元编程实现方式 2 4.1. 代码生 ...
-
Python数据可视化编程实战pdf
Python数据可视化编程实战(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1vAvKwCry4P4QeofW-RqZ_A 提取码:9pcd 复制这段内容后打开百度 ...
-
python数据可视化编程实战PDF高清电子书
点击获取提取码:3l5m 内容简介 <Python数据可视化编程实战>是一本使用Python实现数据可视化编程的实战指南,介绍了如何使用Python最流行的库,通过60余种方法创建美观的数 ...
-
Atitit.异步编程技术原理与实践attilax总结
Atitit.异步编程技术原理与实践attilax总结 1. 俩种实现模式 类库方式,以及语言方式,java futuretask ,c# await1 2. 事件(中断)机制1 3. Await 模 ...
-
Atitit linux获取项目运行环境版本
Atitit linux获取项目运行环境版本 1.1. Nginx版本1 1.2. Php版本1 1.3. Mysql版本2 1.4. Redis版本2 1.1. Nginx版本 [root@iZ25 ...
-
Atitit 面向对象编程(OOP)、面向组件编程(COP)、面向方面编程(AOP)和面向服务编程(SOP)的区别和联系
Atitit 面向对象编程(OOP).面向组件编程(COP).面向方面编程(AOP)和面向服务编程(SOP)的区别和联系 1. 面向组件编程(COP) 所以,组件比起对象来的进步就在于通用的规范的引入 ...
-
Atitit 函数式编程与命令式编程的区别attilax总结 &#160;qbf
Atitit 函数式编程与命令式编程的区别attilax总结 qbf 1.1. 函数式程序就是一个表达式.命令式程序就是一个冯诺依曼机的指令序列. 命令式编程是面向计算机硬件的抽象,有变量(对应着存 ...
随机推荐
-
【转】JVM介绍
1. 什么是JVM? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来 ...
-
Emacs 之窗口管理
// */ // ]]> Emacs 之窗口管理 Table of Contents 1. Emacs 窗口相关 1.1. Emacs 里调整 window 大小 1.2. Emacs winn ...
-
Aptana studio 3前端开发编辑器推荐
直接进入主题,先上图 这就是我Apatana studio 3的默认界面,推荐此工具的原因主要有以下几点: 1.可以集成Emmet,快速编写HTML+CSS,做到效率倍增. 2.Jquery 自动完成 ...
-
oracle发送邮件
1.创建发送邮件的存储过程 CREATE OR REPLACE PROCEDURE send_mail(p_recipient VARCHAR2, -- 邮件接收人 p_subject VARCHAR ...
-
tomcat gc问题总结
Java内存泄露监控工具:JVM监控工具介绍 http://developer.51cto.com/art/201203/321431.htm 关于施用full gc频繁的分析及解决 http:/ ...
-
jquery.ajax提交多值(数组)
偶尔会遇到类似复选框的一个属性存在多值情况,若使用ajax提交的化,设置data :{ids:[1,2,3,4]} 提交后,后台无法使用ids获取到数据. 这里可以用到ajax的 traditiona ...
-
String常用方法总结
字符串的截取: 1. slice(start,end) 返回一个新的字符串,不会改变原来引用值.end省略的时候,截取的是start到字符串结尾.传入start=0或者不传入start,就是复制了整个 ...
-
linux 进程间信号量管理程序之sem_timedwait使用
在开发过程中,有三个独立执行的程序模块,三个模块都对sqlite数据库进行读写操作.sqlite在linux共享性较差,所以须要增加相互排斥信号量解决三个模块訪问数据库该问题. 另外,在增加信号量后, ...
-
ARP欺骗,骗你没商量
今天BOSS让我总结ARP欺骗的原理和防范策略,在这里把总结的结果贴出来吧.求人品,求速转正. ARP原理: 在局域网内部,各主机之间以MAC地址作为标识通信对象的标志.然而,有时通信发起的主机并不知 ...
-
使用node自动刷房源并发送可入住房源到邮箱
因为住的地方离公司太远,每天上下班都要坐很久的班车,所以最近想搬到公司旁边的皖水公寓住.去问了一下公寓的客服,客服说房源现在没有了,只能等到别人退房,才能在网站上申请到. 如果纯靠手动F5刷新浏览器, ...