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;

To node2:     return task0Result==2;

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. Atiitt 可视化 报表 图表之道 attilax著 Atiitt 可视化的艺术 attilax著 v2 s51.docx Atitit.可视化与报表原理与概论 1. 、什么是可视化(这一

    Atiitt  可视化 报表 图表之道 attilax著 Atiitt  可视化的艺术 attilax著 v2 s51.docx Atitit.可视化与报表原理与概论 1. .什么是可视化(这一节有点 ...

  2. 《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一2.2.1 VIPLE的工程设计过程...

    2.2.1 VIPLE的工程设计过程 我们来看一下整个工程设计过程: 1)明确问题和需求: 2)研究: 3)草拟解决方案: 4)建模(画流程图): 5)分析: 6)模拟: 7)建立原型: 8)最终选定 ...

  3. 像“打游戏”一样用Numpy,可视化编程环境Math Inspector了解一下? | 代码开源

    子豪 发自 凹非寺 量子位 报道 | 公众号 QbitAI 科学计算工作者不必再为代码头痛了! 现在,你能像"打游戏"一样,无需编码,轻松使用NumPy功能. 就像这样:   这款 ...

  4. 编写c语言程序的可视化编程环境有哪些,C语言可视化编程环境设计及实现.pdf

    T 6YR&D c语言可视化编程环境设计及实现 李丽萍 (云南经济管理职业学院 ,云南昆明 650106) 摘 要 在计算机语言的使用过程中 ,对于语言的模式采取不断深化的实施方式 ,通过不断 ...

  5. 《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一2.2 VIPLE IoT/机器人开发环境...

    2.2 VIPLE IoT/机器人开发环境 现在已有很多优秀的用于计算和工程领域的可视化编程环境.ASU的VIPLE是一个面向服务的软件开发环境,用于设计IoT(Internet of Things) ...

  6. 《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一第2章 机器人开发环境和VIPLE入门...

    第2章 机器人开发环境和VIPLE入门 前面我们介绍了计算机领域的发展和职业选择可能,并且已经组建了团队,为我们的开发工作做好了准备.在正式开发之前,我们要先认识工作环境--VIPLE(Visual ...

  7. 《Python数据可视化编程实战》——5.5 用OpenGL制作动画

    本节书摘来异步社区<Python数据可视化编程实战>一书中的第5章,第5.5节,作者:[爱尔兰]Igor Milovanović,更多章节内容可以访问云栖社区"异步社区" ...

  8. 为什么说可视化编程是糟糕的想法?

    可视化编程语言可以让程序员通过操纵图形元素来创建程序,而无需键入文本命令. 众所周知的例子是 Scratch,这是一种麻省理工学院开发的可视化编程语言,用来教孩子们学编程. 该语言的优势在于新手和普通 ...

  9. blender 可视化编程_使用Blender可视化天体物理学数据

    blender 可视化编程 Blender会议不仅是吸引人的艺术和动画展示,而且是Blender和开源软件的非常规用法,已经成为一个奇妙的展示. 今年真正引起我注意的演讲之一是吉尔·奈曼博士(Jill ...

  10. [独家放送]Unity2020规划预览,可视化编程又双叒叕来了!

    你好,我是你的技术探路者郑洪智,你可以叫我大智. 欢迎一起进入2020年,在新的一年里Unity有什么大动作呢?本文带你速览你最关心的Unity2020的核心功能! 你最可能关心的功能有哪些呢? Un ...

最新文章

  1. mysql 查询绑定变量_MySQL高级特性——绑定变量
  2. Scrapy 框架 中间件,信号,定制命令
  3. php 导出csv 转义 逗号转义,在csv php中转义换行符
  4. HTML table标签和其子标签如td,td等不同区域focus然后回车的行为差异
  5. js封装函数_JavaScript基础-如何封装函数来改变元素的位置
  6. 在数组中找重复数、只出现一次的数或丢失数的题目(Leetcode题解-Python语言)
  7. 关于游戏行业目前的形势
  8. Unity3d LookAt参数说明
  9. 高性能、高并发TCP服务器(多线程调用libevent)
  10. 面试了3个‘85前’的嵌入式软件工程师
  11. 我眼中的Web2.0
  12. 接口返回[object,Object]解决方法
  13. 解决办法:自动挂载失效,VirtualBox共享文件夹给Ubuntu虚拟机
  14. inteli211网卡linux驱动,Intel英特尔I210/I340/I350/82575/82580系列网卡驱动5.5.2版For Linux(2021年2月1日发布)...
  15. python爬虫 图片验证码_python爬取验证码图片(待识别)
  16. 微信小程序商店:极乐小程序商店推荐之601~700
  17. python爬取起点中文网小说_爬虫实战——起点中文网小说的爬取
  18. FPGA学习.7——DDS信号发生器
  19. PADS9.5使用笔记(常用功能和疑难问题)
  20. 微信分身 服务器,看了这个,你还敢用分身版微信吗?

热门文章

  1. C++特性:封装、继承、多态
  2. Ring Buffer 实现原理
  3. Linux主流架构运维工作简单剖
  4. Mybatis-学习笔记(6)Mybatis的事务管理机制
  5. spring-第四篇之让bean获取所在的spring容器
  6. D. Array Splitting
  7. 个人作业——案例分析
  8. java switch的应用
  9. include 头文件循环引用问题
  10. laravel php artisan migrate 数据迁移时出现的[HY000][1045]错误