jPDL流程定义语言.docx
《jPDL流程定义语言.docx》由会员分享,可在线阅读,更多相关《jPDL流程定义语言.docx(53页珍藏版)》请在三一办公上搜索。
1、1. JPDL分析JPDL的文件格式以及流程定义. 1.1. Processl Process属性列表:属性类型默认值可选/必选?描述namestring必选流程在用户交互中显示名称或标签key数字字符和下划线如果省略,key会根据name替换所有不是数字的子符和下划线.可选区分不同流程定义的属性.一个流程定义有多个版本可以使用相同的key.在多个版本中key:name结构必须相同.versioninteger由1开始,新版本比当前最高版本的version要高.optional流程版本号l Process嵌套标签列表:标签描述description描述activities(下面的所有标签)一系
2、列类型节点可以嵌套到里面.至少有一个start节点.1.2. JPDL节点标签介绍1.2.1. 全局标签1.2.1.1. tns:onl on中的属性:属性类型默认值是否可选描述continuetns:continueTypesync|async|exclusivesync可选指定同步,异步或互斥的.eventstring可选指定的Event.start,end,task或者其他的custom event.l on中可以嵌套的标签(可选):标签描述timer计时器,当计时器发动的时候,所有引用该timer的event listeners将会被通知.event-listenerevent lis
3、tener的实现对象.(user guide 6.5.1)hql定义HQL query读取数据库并将结果保存到process variable中.sql定义SQL query读取数据库并将结果保存到process variable中.java配置当前运行节点运行的class.assign将接收到的value分配到目标位置.script执行一个script.mail指定发送email的内容,以及多个接收者.1.2.1.1. tns:transitionl transition中的属性:属性类型默认值是否可选描述gtns:continueTypesync|async|exclusivesync可选
4、使用流程设计工具时,图象大小和坐标信息.namestring可选该transition的名称tostring可选该transition的目的地.l transition中可以嵌套的标签(可选):标签描述description描述event-listenerevent listener的实现对象.(user guide 6.5.1)hql定义HQL query读取数据库并将结果保存到process variable中.sql定义SQL query读取数据库并将结果保存到process variable中.java配置当前运行节点运行的class.assign将接收到的value分配到目标位置.s
5、cript执行一个script.mail指定发送email的内容,以及多个接收者.1.3. User code在JPDL中,许多标签引用一个对象,其中的接口将会被调用。用户代码的配置:属性类型默认值是否可选描述classstringclass|expr 其中之一是必须的全类名。初始化只会进行一次, 用户对象会被作为流程定义的一部分进行缓存。exprstringclass|expr 其中之一是必须的表达式的值会当做目标对象被获得。表达式会在每次使用时被执行。用户代码的配置中的元素(可选)元素数目描述field0*描述一个配置值,在用户类使用之前注入到成员变量中。property 0*描述一个配置
6、值,在用户类使用之前通过一个setter方法进行注入。field和property的属性属性类型默认值是否可选描述namestring必填名称field 和property 包含的元素:field 和property 元素都拥有一个子元素, 表示将被注入的值。元素数目描述string01a java.lang.Stringint 01a java.lang.Integerlong01a java.lang.Longfloat01a java.lang.Floatdouble01a java.lang.Doubletrue01Boolean.TRUEfalse01Boolean.FALSEobj
7、e01会通过反射初始化的对象基本类型string, int, long, floatand double 的属性:属性类型默认值是否可选描述valuetext必填text值会被解析成期望的类型1.3.1. customl 调用用户代码,以实现自定义行为的活动。l custom的属性:属性类型默认值是否可选描述auto-writestring可选指明是否根据property name,type跟object name,type自动绑定member field和setter property.cachetrue|on|enabled|false|off|disable可选指明user code是否
8、应该缓存.classstring可选class名称.continuetns:continueTypesync|async|exclusive可选指定同步,异步或互斥的.exprstring可选提供object的表达式factorystring可选factory object的名称.gstring可选使用流程设计工具时,图象大小和坐标信息.langstring可选声明语言methodstring可选factory method名称namestring可选节点名称,名称应该在整个流程中是唯一的.l custom嵌套的标签标签描述description描述.factory描述factory obec
9、t.constructor描述非默认的constructor的输入参数.argfactory方法的输入参数.field向object注入成员字段的值.property通过setter方法注入一个值.一个子标签必须定义它的值.invoke调用一个方法.on全局标签,定义某个节点的在on可以嵌套的标签的功能(timer,hql,event-listener等等).transition全局标签,向外的转移l example 从Custom节点的PrintDos行为类,可以看出custom节点可以在实现custom节点行为的时候,控制流程.在这种情况下,PrintDots节点在打印后会在等待,知道收到
10、信号为止.public class PrintDots implements ExternalActivityBehaviour private static final long serialVersionUID = 1L; public void execute(ActivityExecution execution) String executionId = execution.getId(); String dots = .; System.out.println(dots); execution.waitForSignal(); public void signal(Activity
11、Execution execution, String signalName, Map parameters) execution.take(signalName); 1.3.2. event-listenerevent-listener 是用户代码,所以它可以像第2.3.1节“custom”中一样进行配置。任何自动活动(包括event-listener)在事件中, 可以指定下面的额外属性:属性类型默认值是否可选描述propagationenabled|disabled|true|false|on|offdisabled可选指定事件监听器应该也被传播的事件调用。l envnt-listener
12、嵌套的标签标签描述description描述.factory描述factory obect.constructor描述非默认的constructor的输入参数.argfactory方法的输入参数.field向object注入成员字段的值.property通过setter方法注入一个值.一个子标签必须定义它的值.invoke调用一个方法.l example流程图如下: LogListener 维护一系列的日志:public class LogListener implements EventListener / value gets injected from process definitio
13、n String msg; public void notify(EventListenerExecution execution) List logs = (List) execution.getVariable(logs); if (logs=null) logs = new ArrayList(); execution.setVariable(logs, logs); logs.add(msg); execution.setVariable(logs, logs); 接下来,我们启动流程:ProcessInstance processInstance = executionService
14、.startProcessInstanceByKey(EventListener);流程实例执行到wait节点,所以我们提供一个让流程继续执行到end的信号.Execution execution = processInstance.findActiveExecutionIn(wait);executionService.signalExecutionById(execution.getId();一系列的log信息入下:start on process definition, start on activity wait, end on activity wait, take transiti
15、on1.3.3. assignment-handler in task一个AssignmentHandler 可以通过编程方式来计算一个任务的分配人和候选人。public interface AssignmentHandler extends Serializable /* sets the actorId and candidates for the given assignable. */void assign(Assignable assignable, OpenExecution execution) throws Exception;Assignable 是任务和泳道的通用接口。所以
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- jPDL 流程 定义 语言

链接地址:https://www.31ppt.com/p-1845344.html