Atitit.可视化编程jbpm6 的环境and 使用总结...

1. Jbpm的意义 1

2. Jbpm6环境配置 2

2.1. Down 2

2.2. Install eclipse jbpm plugin 2

2.3. Set Jbpm6_Runtimes 2

3. 顺序执行的流程配置 3

3.1. Cretae demo prj 执行自动生成的测试代码 3

3.2. 建立新的流程bpmn文件 3

3.3. 添加start 跟end控件 4

3.4. 添加一个script task控件..Process desgin ....opoen bpmn ,then open prodesginer... 4

3.5. 设置script task控件的执行java语句..
4

3.6. 设置process的id属性: process2
5

3.7. 调用执行流程函数 5

4. Jbpm的if else分支结构配置 6

4.1. Java代码 6

4.2. 添加start控件and  script task控件task0
6

4.3. 建立global 变量 (process 文件内范围)
6

4.4. 设置task0控件返回变量值 6

4.5. 添加一个if else 分支控件:: gateway diverge 6

4.6. 添加两个script task控件执行task1() & task2(); 7

4.7. 添加一个gateway converge控件,指向end控件...
7

5. Jbpm的循环结构.配置 7

6. Other 概念 7

6.1. Java和MVEL 7

6.2. JPDL是构建于jBPM框架上的流程语言之一 8

6.3. JAVA规则引擎 -- Drools 8

6.4. 参考 8

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 使用总结...的更多相关文章

  1. Atitit 编程语言编程方法的进化演进 sp  COP ,AOP ,SOP

    Atitit 编程语言编程方法的进化演进 sp  COP ,AOP ,SOP 1.1.  Sp  oop>>COP ,AOP ,SOP1 1.2. Sp  oop 结构化方法SP(Stru ...

  2. Atitit.可视化与报表原理与概论

    Atitit.可视化与报表原理与概论 1.  信息可视化1 2. Gui可视化1 3. 报表系统(三大图表,金字塔,组织结构图等)1 4. <可视化数据>目录3 5. 可视化的具体实现(c ...

  3. atitit.元编程总结 o99

    atitit.元编程总结 o99.doc 1. 元编程(Metaprogramming) 1 2. 元编程的历史and发展 1 3. 元类型and元数据 1 4. 元编程实现方式 2 4.1. 代码生 ...

  4. Python数据可视化编程实战pdf

    Python数据可视化编程实战(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1vAvKwCry4P4QeofW-RqZ_A 提取码:9pcd 复制这段内容后打开百度 ...

  5. python数据可视化编程实战PDF高清电子书

    点击获取提取码:3l5m 内容简介 <Python数据可视化编程实战>是一本使用Python实现数据可视化编程的实战指南,介绍了如何使用Python最流行的库,通过60余种方法创建美观的数 ...

  6. 重磅:前端 MVVM 与 FRP 的升阶实践 —— ReRest 可视化编程

    ReRest (Reactive Resource State Transfer) 是前端开发领域新兴的方法论体系,它继承了 MVVM 与 FRP 编程理念,在技术上有不少创新.本文从专利稿修改而来, ...

  7. Atitit.异步编程技术原理与实践attilax总结

    Atitit.异步编程技术原理与实践attilax总结 1. 俩种实现模式 类库方式,以及语言方式,java futuretask ,c# await1 2. 事件(中断)机制1 3. Await 模 ...

  8. 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 ...

  9. Atitit 面向对象编程(OOP)、面向组件编程(COP)、面向方面编程(AOP)和面向服务编程(SOP)的区别和联系

    Atitit 面向对象编程(OOP).面向组件编程(COP).面向方面编程(AOP)和面向服务编程(SOP)的区别和联系 1. 面向组件编程(COP) 所以,组件比起对象来的进步就在于通用的规范的引入 ...

随机推荐

  1. Java中abstract的用法

    1,abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,可以做为对象变量声明的类型,也就是编译时类型,抽象类就像当于一类的半成品,需要子类继承并覆盖其中的抽象方法. 2,abs ...

  2. Python全栈之路6--正则表达式

    正则本身就是一门语言: 正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串,在文本处理方面功能非常强大,也经常用作爬虫,来爬取特定内容,Python本身不支持正则,但是通过导入re模块 ...

  3. Git克隆

    用法1:Git clone <repository> <directory> 将<repository>指向的版本库创建一个克隆到<directory> ...

  4. python py生成为pyc文件

    生成单个pyc文件 python就是个好东西,它提供了内置的类库来实现把py文件编译为pyc文件,这个模块就是 py_compile 模块. 使用方法非常简单,如下所示,直接在idle中,就可以把一个 ...

  5. php protected封装

    <?//父类class father{ public function a(){     echo 'father->a()'.'<br>';  echo "func ...

  6. serialVersionUID的作用 (zz)

    serialVersionUID的作用 2011-05-12 16:04:19|  分类: java|举报|字号 订阅     在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘 ...

  7. Acunetix Web漏洞扫描器

    1.主要程序介绍 主要操作区域简介: b).工具栏 从左到右分别是(这些都可以在主要操作区域找到,所以不常用): 新建扫描——网站扫描——网站爬行——目标查找——目标探测——子域名扫描——SQL盲注— ...

  8. 冒泡排序优化JAVA

    本文对传统的冒泡排序进行了一些优化,减少了循环次数. 时间复杂度 若文件的初始状态是正序的,一趟扫描即可完成排序.所需的关键字比较次数 C 和记录移动次数 M 均达到最小值: C(min)=n-1 , ...

  9. 图层的transform属性

    Main.storyboard // //  ViewController.m //  7A11.图层的transform属性 // //  Created by huan on 16/2/4. // ...

  10. android listview用adapter.notifyDataSetChanged()无法刷新每项的图标

    http://blog.csdn.net/caizhegnhao/article/details/41318575 今天在开发中遇到一个很奇怪的listview的问题. 这个问题情景是我的应用需要做一 ...