jPDL流程定义语言.docx
l.jPDL流程定义语言分析JPDL的X件格式与流程定义.<?xml version="1.0 encoding=nUTF-8?><start><transition to="Vrify supplier” ><start>stat nam="Vrify suppler”<transition nam="Supplir ok to=Check SUPPIi工 data" /><transition nam="Supplir not ok to=Error /></Stat<dCiSiOn nam="ChCk SUPPIi工 data><transition nam="nok" to=Error /><transition nam=”ok” to="Compltd” /><cl CiSiC)nnd nam="Ce)mpltd” />nd nam="Errc)工” />/process1.1. Process PrOCeSS属性列表:属性类型默认值可选/必 选?描述namestring必选流程在用户交互中显示名称或者标 签key数字字符 与下划线假如省略,key会根据 name替换所有不是 数字的子符与下划可选区分不一致流程定义的属性.一个流 程定义有多个版本能够使用相同的 key.在多个版本中key:name结构务必相同.可选/必属性 类型 默认值描述由1开始,新版本比当version integer 前最高版本的optional 流程版本号 version 要高. Process嵌套标签列表:标签描述description描述activities(下面的所有标签)一系列类型节点能够嵌套到里面.至少有一个start节点.12 JPDL节点标签介绍1.2.1.全局标签 on中的属性:属性类型人可描述sync |continue async sync 可选XClUSiV指定同步,异步或者互斥的.event string-3指TE 的 Event, start,end, task 或者者其他的 custom可选event. on中能够嵌套的标签(可选):标签描述timer计时器,当计时器发动的时候,所有引用该timer的event listeners将会被 通知.event-listener event listener 的实现对象.(USer guide 6.5.1)hql定义HQL query读取数据库并将结果储存到process variable中.sql定义SQL query读取数据库并将结果储存到process variable中.java配置当前运行节点运行的class.assign将接收到的VaIUe分配到目标位置.script执行一个 script.mail指定发送email的内容,与多个接收者.1.2.1.1. tns:transition transition中的属性:属性类型默认值是否可选描述sync Igasyncsync可选使用流程设计工具时,图象大小与坐标信息.XClUSiVnamestring可选该transition的名称tostring可选该transition的目的地.transition中能够嵌套的标签(可选):标签描述description 描述event-listener event listener 的实现对象.(USer guide 6.5.1)hql定义HQL query读取数据库并将结果储存到process variable中.sql定义SQL query读取数据库并将结果储存到process variable中.java配置当前运行节点运行的class.assign将接收到的VaIUe分配到目标位置.script执行一个 script.mail指定发送email的内容,与多个接收者.1.3. User code在JPDL中,许多标签引用一个对象,其中的接口将会被调用。用户代码的配置:属性类型 默认值是否可选描述属性类型默认值是否可选描述14 .classexpr)其中 全类名。初始化只会进行一次,用户对象class string之一是务必的会被作为流程定义的一部分进行缓存。classexpr)其中 表达式的值会当做目标对象被获得。表达 eXPr stnng之一是务必的式会在每次使用时被执行O用户代码的配置中的元素(可选)元素数目描述field0*property0.*field与property的属性描述一个配置值,在用户类使用之前注入到成员变量中。描述一个配置值,在用户类使用之前通过一个setter方法进行 注入。属性类型默认值是否可选描述name string必填名称field与property包含的元素:field与property元素都拥有一个子元素,表示将被注入的 值。元素数目描述string0.1a java.lang.Stringint0.1a java.lang.Integerlong0.1a java.lang.Longfloat0.1a java.lang.Floatdouble0.1a java.lang.Doubletrue0.1Boolean.TRUEfalse0.1Boolean.FALSEObje0.1会通过反射初始化的对象基本类型 string, int, long, Aoatand double 的属性:属性类型默认值是否可选描述value text必填text值会被解析成期望的类型 调用用户代码,以实现自定义行为的活动。 custom的属性:指明是否根据 property name, type 跟 objectauto-writestring可选name, type 自动绑定 member field 与 setterproperty.trueoncacheenabled false Offl disable可选指明user code是否应该缓存.classstring可选class名称.sync Icontinueasync可选指定同步,异步或者互斥的.XClUSiVexprstring可选提供object的表达式factorystring可选factory object 的名称.gstring可选使用流程设计工具时,图象大小与坐标信息.langstring可选声明语言methodstring可选factory method 名称namestring可选节点名称,名称应该在整个流程中是唯一的.默认值 CUStom嵌套的标签标签 描述description描述.factory描述 factory obect.constructor描述非默认的constructor的输入参数.argfactory方法的输入参数.field向object注入成员字段的值.property通过setter方法注入一个值.一个子标签务必定义它的值.invoke调用一个方法.On全局标签,定义某个节点的在on能够嵌套的标签的功能(timer, hql, event-listener 等等).transition全局标签,向外的转移 example<start ><transition to=print dots ><start><custom nam="print dots"class = org.jbpm.examples . custom.PrintDots><transition to="nd” ><custom>nd nam="nd” ><process>从Custom节点的PrintDos行为类,能够看出custom节点能够在实现custom节点行为的时候,操纵流程.在这种情况下,PrintDots节点在打印后会在等待,明白收到信号为止.public class PrintDots implements ExternalActivityBehaviour private static final long serialVrsionU工D = IL;public void XCUt(ACtiVityEXCUtiOn XCUtion) String XCUtiC)n工d = XeCUtie>n gt工d ();String dots =.;SyStm.out.println(dots);execution .WaitForSignal(); )public void signal (ACtiVityEXCUtiOn XCUtiOr, String SignaINamrMaPString, ?> Paramtrs) XCUtiOn . tak(SignaINaIn);)1.3.2. event-listenerevent-listener是用户代码,因此它能够像第2.3.1节“custom”中一样进行配置。 任何自动活动(包含event-listener)在事件中,能够指定下面的额外属性:属性 类型默认值是否可选描述nabld| disabld| tru I propagation 手【on I offdisabled 可选指定事件监听器应该也被 传播的事件调用。 envnt-listener嵌套的标签标签 描述description描述.factory描述 factory obect.constructor描述非默认的constructor的输入参数.argfactory方法的输入参数.field向object注入成员字段的值.property通过setter方法注入一个值.一个子标签务必定义它的值.invoke调用一个方法. example流程图如下:<on Vnt="start”Vnt-Ii stonerclass = org. jbpm.XamPIS .VntIistn工.Le)gListn工”<fi Id nam=" msg"><string VaIU=" Start on Prc)C