jBPM5用户手册中文版.docx

上传人:b****5 文档编号:7251167 上传时间:2023-01-22 格式:DOCX 页数:29 大小:399.07KB
下载 相关 举报
jBPM5用户手册中文版.docx_第1页
第1页 / 共29页
jBPM5用户手册中文版.docx_第2页
第2页 / 共29页
jBPM5用户手册中文版.docx_第3页
第3页 / 共29页
jBPM5用户手册中文版.docx_第4页
第4页 / 共29页
jBPM5用户手册中文版.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

jBPM5用户手册中文版.docx

《jBPM5用户手册中文版.docx》由会员分享,可在线阅读,更多相关《jBPM5用户手册中文版.docx(29页珍藏版)》请在冰豆网上搜索。

jBPM5用户手册中文版.docx

jBPM5用户手册中文版

jBPM用户手册

目录

jBPM用户手册-1-

第一章概述-3-

第二章安装-8-

第三章流程-10-

第四章BPMN2.0-21-

第五章API-22-

第六章人工任务-23-

第七章领域-规范流程-33-

第八章持久化-34-

第九章控制台-39-

第十章监视-42-

第1章 概述

本章节将介绍jBPM5的各种组件。

组件将带您快速的了解业务流程的生命周期和阶段。

这些阶段包括建模、部署、执行和监视。

1.建模

jBPM允许用户通过图形的方式修改业务流程。

用户和开发者可通过三种方式修改BPMN2.0业务流程定义。

1.1.DroolsFlowforeclipse插件

DroolsFlow支持创建,调试流程。

1.2.jBPM5foreclipse插件

目前仍在开发中,仅支持创建流程。

完成后的版本将完全支持BPMN2.0规范。

1.3.基于WEB的Oryx编辑器(EXT实现)

Oryx编辑器整合到Guvnor,它是一个存储流程的知识库。

Oryx编辑器支持查看、更新和创建流程。

2.部署

Guvnor是一个知识库,用来存储流程、域模型、业务规则等。

它提供一个基于WEB的控制台用来查找、修改和测试你的知识库内容。

3.执行

3.1.流程引擎

流程引擎是一个基于JAVA语言开发轻量级工作流引擎。

v内置支持BPMN2.0规范的流程

v插件化的数据持久层与事务配置

v审计和历史日志记录

v基于通用的流程引擎

目前流程引擎还没有实现BPMN2.0所有结点类型与属性,但大部分通用的结点类型已支持。

下图列出所有jBPM5已支持的元素:

 

下面列出所有BPMN2.0定义的元素:

流程对象

事件

*StartEvent(None,Conditional,Signal,Message,Timer)

*EndEvent(None,Terminate,Error,Escalation,Signal,Message,Compensation)

*IntermediateCatchEvent(Signal,Timer,Conditional,Message)立即捕获事件

*IntermediateThrowEvent(None,Signal,Escalation,Message,Compensation)

*Non-interruptingBoundaryEvent(Escalation,Timer)非中断边界事件

*InterruptingBoundaryEvent(Escalation,Error,Timer,Compensation)

活动

*ScriptTask(Java、MVEL)JAVA或MVEL脚本表达式语言

*Task

*ServiceTask

*UserTask

*BusinessRuleTask

*ManualTask

*SendTask

*ReceiveTask

*ReusableSub-Process(CallActivity)可复用的子流程

*EmbeddedSub-Process嵌入的子流程

*Ad-HocSub-Process点对点的子流程

*Data-Object

关口

*分支

*Exclusive(Java,MVELorXPathexpressionlanguage)排斥

*Inclusive(Java,MVELorXPathexpressionlanguage)包含

*Parallel并行

*Event-Based

*合并

*Exclusive排斥

*Parallel并行

*Lanes

数据

*Javatypelanguage

*Processproperties

*EmbeddedSub-Processproperties

*活动properties

连接对象

*Sequenceflow时序流

 

3.2.人工任务服务WS-HT

人工任务服务是BPM业务流程管理的解决方案一个重要组成部分。

某些任务可以自动执行而不需要与人交互,但有些任务需要与人交互。

jBPM5中的actors代表人的抽象,也就是说不一定是人,可以是阿猫阿狗。

jBPM5默认提供了一个与actors交互的实现,WS-HT。

WS-HT也支持组设置,升级,分配规则等。

3.3.监视

流程监听器Processlisteners可监听流程引擎运行时环境发生的各种事件,如流程实例启动、结点实例完成等。

这些信息可用来创建历史日志进行报表静态分析或供BAM业务活动监控进行动态分析。

3.3.1.基于WEB的流程管理控制台

http:

//localhost:

8080/jbpm-console

用户名/密码:

krisv/krisv

通过此控制台可以管理流程实例。

进入流程Overview可以启动流程,查看流程,停止流程。

进入个人任务可以进行流程操作。

进入报表可以查看流程报表。

 

第2章 安装

参考

Guvnor的使用:

http:

//localhost:

8080/drools-guvnor

使用视频:

若有安装问题,可这样子:

Email:

jbpm-dev@lists.jboss.org

IRC:

#jbpmatirc.codehaus.org

jBPM用户论坛

http:

//community.jboss.org/en/jbpm?

view=discussions

FAQ:

1.脚本不能下载组件?

检查网络,或直接手动下载后放到jbpm-installer/lib文件夹。

2.下载的组件不能解压?

文件有问题,重新下载。

3.清除安装?

antclean.demo

4.重新启动报异常?

手动人工服务结束进程,再重新启动。

这是脚本缺陷导致的。

5.控制台或Guvroy报错?

检查${jboss.home}/server/default/log。

如不能解决,发到论坛。

 

第3章 流程

v业务流程是一张流程图表,描述一系列执行步骤的顺序。

它由多个结点组成,结点之间互相连接。

v结点代表总流程的一个步骤,

v箭头代表结点之间的连接,它指定如何从一个结点流向另外一个结点。

vBMPN2.0已经预定义了一组结点元素。

本章节介绍如何定义和使用结点。

4.创建流程

创建流程有三种方式:

vEclipseBPMN2.0图形编辑器插件

v文本编辑器

v直接创建通过流程API

流程文件扩展名:

bpmn bpmn2。

图形编辑器插件需要打开属性面板配置元素属性。

XML形式:

xmlversion="1.0"encoding="UTF-8"?

>

//www.jboss.org/drools"

typeLanguage="

expressionLanguage="http:

//www.mvel.org/2.0"

xmlns="http:

//www.omg.org/spec/BPMN/20100524/MODEL"RuleTask

xmlns:

xsi="http:

//www.w3.org/2001/XMLSchema-instance"

xsi:

schemaLocation="http:

//www.omg.org/spec/BPMN/20100524/MODELBPMN2

xmlns:

g="http:

//www.jboss.org/drools/flow/gpd"

xmlns:

bpmndi="http:

//www.omg.org/spec/BPMN/20100524/DI"

xmlns:

dc="http:

//www.omg.org/spec/DD/20100524/DC"

xmlns:

di="http:

//www.omg.org/spec/DD/20100524/DI"

xmlns:

tns="http:

//www.jboss.org/drools">

Process">

--nodes-->

--connections-->

BPMNDiagram>

BPMNPlanebpmnElement="com.sample.hello">

BPMNShapebpmnElement="_1">

Boundsx="16"y="16"width="48"height="48"/>

BPMNShape>

BPMNShapebpmnElement="_2">

Boundsx="96"y="16"width="80"height="48"/>

BPMNShape>

BPMNShapebpmnElement="_3">

Boundsx="208"y="16"width="48"height="48"/>

BPMNShape>

BPMNEdgebpmnElement="_1-_2">

waypointx="40"y="40"/>

waypointx="136"y="40"/>

BPMNEdge>

BPMNEdgebpmnElement="_2-_3">

waypointx="136"y="40"/>

waypointx="232"y="40"/>

BPMNEdge>

BPMNPlane>

BPMNDiagram>

API方式:

为了屏蔽内部API,不推荐使用。

重要的流程已经定义在org.jbpm.workflow.core和org.jbpm.workflow.core.node包中。

你可以通过工厂来创建流程。

示例在源码包的junittests中。

packageorg.jbpm.process;

importorg.jbpm.JbpmTestCase;

importorg.jbpm.ruleflow.core.RuleFlowProcessFactory;

publicclassProcessFactoryTestextendsJbpmTestCase{

publicvoidtestProcessFactory(){

RuleFlowProcessFactoryfactory=RuleFlowProcessFactory.createProcess("org.drools.process");

factory

//header

.name("Myprocess").packageName("org.drools")

//nodes

.startNode

(1).name("Start").done()

.actionNode

(2).name("Action")

.action("java","System.out.println(\"Action\");").done()

.endNode(3).name("End").done()

//connections

.connection(1,2)

.connection(2,3);

factory.validate().getProcess();

}

}

更多代码:

5.使用流程

5.1.创建知识库

KnowledgeBuilderkbuilder=KnowledgeBuilderFactory.newKnowledgeBuilder();

kbuilder.add(ResourceFactory.newClassPathResource("MyProcess.bpmn2"),

ResourceType.BPMN2);

KnowledgeBasekbase=kbuilder.newKnowledgeBase();

5.2.创建会话启动流程

流程启动需要显式调用startProcess方法。

StatefulKnowledgeSessionksession=kbase.newStatefulKnowledgeSession();

ksession.startProcess("com.sample.hello");

参数com.sample.hello代表流程ID。

startProcess(StringprocessId,Mapparameters)方法的Map参数可传入额外的参数,这些参数是键值对。

注意这些参数将被复制到流程实例,作为流程的顶级变量。

顶级变量是指变量的作用或是顶级的。

5.3.结点类型的细节解释

流程有如下属性:

ID:

惟一

NAME:

显示名称

VERSION:

 版本

Package:

 命名空间

Variables:

 变量,用于传递数据

Swimlanes:

 泳道(专用通道),指定执行人工任务的actor

ConnectionLayout连接布局

Manual :

 人工

Shortestpath :

 最短路径

Manhattan :

 曼哈顿

BMPN支持结点类型如下:

开始事件与结束事件,一个流程必须有一个开始事件,一个或多个结束事件。

结束事件的Terminate如果为TRUE,那么将结束整个流程,否则若有多个结束事件只会结束对应结束事件的路径。

如T2-E2.

|-T1-E1(Terminate=false)

S-+

|-T2-E2(Terminate=false)

RuleTask代表需要执行一组规则集。

规则定义在多个分离的文件中,格式要求为Droolsruleformat。

规则可以成为标准规则流组的一部分通过在头部使用ruleflow-group属性。

ruleflow-group的执行可认为是一个队列。

新来的必须等前面的执行完才会执行。

DivergingGateway 分支结点,一进多出。

Gateway不好翻译,所以省略。

ANDparallel与,并行, 两个都要满足(同步)

XORorexclusive 异或,排斥,只选择其中一个

ORorinclusive或,包含,至少只要有一个满足即可(不同步)

ConvergingGateway合并结点,多进一出。

ANDparallel与,并行, 两个都要满足(同步)

XORorexclusive 异或,排斥,只选择其中一个

ReusableSub-Process 可复用子流程

Waitforcompletion等待完成

On-entryandon-exitactions:

绑定入口与出品action.

Parameterin/outmapping:

in表示输入参数out表示输入参数和返回,只有当Waitforcompletion为true时,out才可以使用。

ScriptTask代表一个可执行的脚本。

支持Java,MVEL方言。

脚本绑定到Action.

Action:

绑定的Action.

TimerEvent定时器事件

Timerdelay延迟时间ms

ErrorEvent异常事件

FaultName异常处理器名

FaultVariable异常变量

.MessageEvent消息事件,没有输入

EventType监听事件类型

VariableName事件数据

Scope

internal流程内部事件external外部事件

.UserTask用户任务(人工任务)

ActorId责任人,多个人用逗号“,”分隔

GroupId组,多个组用逗号“,”分隔

Skippable表示这个任务是否可忽略,即不执行就结束。

Swimlane泳道

On.entry/on-exitactions:

绑定入口、出口Action

Parametermapping传入参数

Resultmapping返回结果

Content:

任务数据

.Sub-Process子流程

.MultipleInstances多实例子流程,特殊的子流程,允许执行多次

ServiceTask(WorkItemnode)代表一个抽象的任务。

可通过它扩展任务。

Additionalparameters扩展参数定义

Data

变量,顶级、子级,继承树

约束:

包括代码约束和规则约束

Actions

Action可以访问全局,流程变量,知识库上下文预定义变量,访问运行时,启动流程,分发事件,插入数据。

Events

事件类型-事件监听(消息事件)-事件处理(action)

事件分发:

内部事件流程管理

外部事件action

Timers

定时器

更新流程

//createthesessionandstarttheprocess"com.sample.process"

KnowledgeBuilderkbuilder=...

StatefulKnowledgeSessionksession=...

ProcessInstanceprocessInstance=ksession.startProcess("com.sample.process");

//addanewversionoftheprocess"com.sample.process2"

kbuilder=KnowledgeBuilderFactory.newKnowledgeBuilder();

kbuilder.add(...,ResourceType.BPMN2);

kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());

//migrateprocessinstancetonewversion

Mapmapping=newHashMap();

//toplevelnode2ismappedtoanewnodewithid3

mapping.put("2",3L);

//node2,whichispartofcompositenode5,ismappedtoanewnodewithid4

mapping.put("5.2",4L);

WorkflowProcessInstanceUpgrader.upgradeProcessInstance(ksession,processInstance.getId(),"com.sample.process2",mapping);

 

第4章 BPMN2.0

目前jBPM5没有完全实现BPMN2.0规范。

因此本章略过。

 

第5章 API

本章是代码,前面已经贴过,不再多说。

讲解了知识库、会话、流程的关系及如何创建。

 

第6章 人工任务

人工任务规范

jBPM5使用UserTask结点表示人工任务(需要与actor交互的任务)。

UserTask任务结点支持定义任务类型、actors和任务关联的数据。

通过TaskService可管理UserTask。

为了使用人工任务,你必须定义UserTask结点。

一个UserTask表示一个需要actor执行的自动化任务。

人工任务其实可以简单认为是任何类型的外部服务。

外部服务需要被调用,可看成特殊类型的workitem实现。

人工任务惟一的特色是支持泳道来简化给用户分配任务。

UserTask结点属性:

*Id:

结点惟一标识

*Name:

结点名称

*TaskName:

任务名称

*Priority:

优先级(整数)

*Comment:

任务注释

*ActorId:

actor,多个使用逗号","分隔

*Skippable:

任务可跳过(不执行就结束)

*Content:

任务关联的数据

*Swimlane:

泳道,可以简化分配多个人工任务给同一个actor

*Waitforcompletion:

是否等待人工任务执行完成,若为False,则创建完人工任务后继续流程。

*On-entryandon-exitactions:

绑定入口、出品事件处理器-action

*Parametermapping:

参数

*Resultmapping:

结果

*Timers:

定时器

*ParentId:

父人工服务ID

6.泳道

说明:

这个译法对于大家来讲,不明白怎么回事?

但名词而已,纯靠前辈误导,慢慢误导就理解

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1