工 作 流 管 理 系 统
AS WfMS.Designer
属性说性
陈振双
目 录
2.2可重新定义头(Redefinable Header)... 17
2.3适应类型声明(Conformance Class Declaration)... 18
5.4实现选择(Implementation Alternatives)... 30
3.7SchemeWorkingIntervalTime. 45
一、原理综述
1.关于规范
许多不同的工具可用于业务过程的分析、建模、描述及建档。工作流过程定义接口定义了一个公用的交换格式,它支持不同产品工作流过程定义之间的转换。
该接口也定义了开发和运行环境之间的形式区分,使得由一种建模工具产生的过程定义,可以作为许多不同工作流运行产品的输入。
由一个构造工具生成的工作流过程定义,能被不同的工作流运行产品解释。过程定义在产品之间转换,或者存储在一个分离的资源库中,通过公用的交换格式访问。
提供一种描述及访问已建立的工作流定义和工作流过程元数据模型的公共方法。该元数据模型确定过程定义中共同使用的实体(entities)。许多属性描述该有限实体集的特征。基于该元数据模型,开发者的特定的工具能借助公共交换格式转换模型。
XPDL的关键基础之一是其用于各种工具处理信息的扩展性。XPDL可能从不支持各种工具要求的额外信息。基于工作流过程定义中描述的有限数量的实体(“最小元模型”), XPDL支持许多不同的方法。
XPDL最重要的基础之一是在公共表示方法中使用的支持开发商特殊属性的一般结构。
本文档描述了用于定义过程定义内所含的对象及其属性的元模型,XPDL语法直接和这些对象及其属性相关。
2.元模型
元模型描述过程定义中包含的顶层实体,它们的关系及其属性(含有一些用于仿真和监控而非流程制定的关系及属性);也定义了各种各样与过程模型相关的分组过程约定,以及跨各种不同过程定义或模型的公共定义数据的使用。
顶层实体如下图所示:
上述每一实体,都有一描述其特征的相关的属性集。后续章节将更详细的叙述这些实体及其属性。
3.实体概述
元模型确定用于过程定义交换的基本实体集。顶层实体如下所述:
3.1工作流过程定义
过程定义实体提供流程内用于其它实体的上下文信息。它是流程自身及其提供管理相关信息(创建日期、作者等),以及流程运行期间有关信息(初始参数、执行的优先级、校验的时限,通报的人、仿真信息等)的容器。
3.2工作流过程任务(活动、步骤)
过程定义由一个或多个任务组成,每个任务是流程内一个独立的逻辑工作单元。一个任务表示由一个资源组合处理的操作(由参与的任务指定) 与/或 计算机应用(由参与的应用指定)。其它可选信息与任务有关,诸如由工作流管理系统自动地确定的关于是否启动/完成的信息,或相对于其它任务竞争资源的优先级,亦或系统服务的发生等,也可以定义工作流任务相关数据的特定用法。对于确定的流程定义,任务的范围是局部的(即使是下述的关于子流程任务的描述)。
任务可以是一子流程――既然如此,对于一个(独立定义的)流程定义的执行,它是一个容器,该独立流程可能在同一工作流服务内本地运行,或(可能使用过程协作接口)是一个远程服务。子流程内的过程定义包含其自身的任务、内部转移(迁移,连接)资源及应用分配(尽管这些可从公共资源继承)定义。 In- 和out-参数允许调用和被调用流程间交换必要的工作流相关数据。
任务可以是一Block任务――任务集合,或者任务及转移的映射。任务集内的任务和转移和所属流程共享命名空间。
最后,虚拟任务是一骨架任务,它的完成没有操作处理(因之无相关资源或应用),仅简单用于在进入转移与/或流出转移中作路径判别。
3.3工作流参与者说明
它提供了流程定义中可作为各类任务执行者的资源的描述。指派完成一特定任务的特殊资源被定义为任务的一个属性,以及将任务和可分配给它的资源集联系起来的参与者设定。工作流参与者的声明不必是一个人,也可以确定为一组具有一定技能或责任的人、或非人的机器自动机资源。元模型包含一些可定义为工作流参与者的简单资源类型。
3.4资源库
资源库说明参与者可以是人、程序或机器。在更复杂的流程中参与者的声明可以引用资源库,在参与者是人时可以组织模型。应指出的是本规范未定义或要求资源库。
3.5工作流应用说明
它提供IT应用的描述,或工作流服务支持的,亦或完全自动化的、与每个任务相关的处理、任务内由一应用设定属性(或属性集)确定的可调用接口的描述。这样的应用可以是普通的行业工具,企业内确定的服务部门,或工作流管理系统框架内实现的本地过程。
工作流应用定义反映出工作流引擎与应用或接口,包括任意传递参数之间的接口。
3.6工作流相关数据
它定义在流程运转期间各个流程实例内创建及使用的数据。在流程运转期间,该数据对任务或执行的应用有效,且用于在任务间 与/或 为条件表达式计算(诸如转移或参与者设定)传递持久化信息或中间结果。工作流相关数据是特殊类型。XPDL包含各种各样基本及复杂数据类型的定义(包括date, string等)、任务、调用的应用 与/或 转移条件可引用工作流过程相关数据。
3.7系统及环境数据
是指由工作流管理系统或局部系统环境维护的数据,但可被工作流任务访问,或被工作流管理系统以与工作流相关数据同样的方式在计算条件表达式时使用。
3.8数据类型与表达式
元模范(及与XPDL相关)采用了许多标准数据类型(string, reference, integer, float, date/time, 等); 这些数据类型和工作流相关数据、系统或环境数据,亦者参与者数据有关。表达式可以由这些数据类型形成以支持条件计算。数据类型可以通过用XML Schema或外部来源中定义的数据引用进行扩展。
4元素
4.1流程和包
如同在上述图表所示,过程模型包含各种各样的实体――其范围较单一的过程定义广泛。特别是参与者、应用及工作流相关数据的定义可以从许多过程定义中引用。元模型假定使用和工作流管理系统相关的、拥有各种各样类型构成过程定义实体的共用过程定义库。在公共定义库本身内以及支持对将流程定义数据从定义库内高效的转入/转出的支持,引入概念“包”,作为源自许多不同过程定义共用数据实体分组的容器,以免在每一单独的过程定义内重新定义。
“包”提供一个容纳来自工作流过程定义实体(作者,版本,状况,等等)的许多公共属性的容器。包内包含的每一过程定义将自动继承源自包的任何公共属性,除非它们在过程定义中分别进行局部重新定义。
在一包内,一些实体的定义范围是全局的,包内所含的工作流过程定义(以及与之相关的任务和转移)都可引用这些实体。这些实体是:
l 工作流参与者定义
l 工作流应用声明
l 工作流相关数据
包引用允许在包内使用,或在引用的外部包中所引用的顶层实体中包含的对象内使用:
l 子流程引用的流程标识
l 工作流参与者定义
l 工作流应用声明
为达到任何必要的全局唯一性,在同一资源地址空间内跨不同包的命名和标识符管理规范由用户/开发商自己定义。在流程指定期间,采用的规范是按下述搜索顺序作名称引用:
l 流程标识―― 首先在同一流程模型内(包括任何在不同服务中远程运行的流程定义应用), 然后在任一引用的外部流程模型内。
l 应用/参与者―― 首先在同一流程模型内,然后在任一引用的外部模型内。
在包内工作流相关数据命名必须是唯一的;这些数据是作为参数在过程之间传递的,在本版本的规范中,将使用语义复制。过程设计者/管理者的剩余责任就是在支持子流程操作(包含任何所需的远程过程互用性)的过程定义/模型内保证一致的名称/数据类型用法。
4.2过程元模型
为了过程定义交换,元模型确定了基本实体和属性集。关于过程定义下述实体必须定义,或者明确地在过程定义层,或者直接继承,亦或从环境包中交叉引用:
l 工作流过程任务
l 转移信息
l 工作流参与者定义
l 工作流应用声明
l 工作流相关数据
这些实体包含支持流程公共描述机制的属性,它们将在后续的章节中予以叙述。
4.3包元模型
多过程定义结合在模型定义中。包作为分组的容器――许多独立的过程定义,与之相关的实体数据――适用于所有包含的过程定义(以及仅有一次需求的定义)。包的元模型包含如下实体类型:
l 工作流过程任务
l 转移信息
l 工作流参与者定义
l 工作流应用声明
l 工作流相关数据
* 实体可在工作流过程定义中重新定义
包的元模型确定了的用于交换、存储及过程模型的实体和属性。它规定了将单个流程和对参与者定义、应用声明及工作流相关数据的实体定义联系起来的各种各样的继承规则,可以在包一级定义而非在单个过程定义级被定义。
包定义允许定义许多共用过程定义属性,这些属性适用于包内所含的所有单一过程定义,这样的属性也可以从单个过程定义删除(如果它们在单个过程定义级被重新设定,则这一局部属性值优先于包级定义的公共值)。
4.4过程仓库
过程定义导入/导出接口采用 放到/取自 一与工作流管理系统相关的某种形式的工作流定义库的操作。导入/导出接口由放入或取出定义库含有XPDL的交换文件实现。这个接口定义允许在单过程定义级与包级导入/导出过程定义数据。
定义库和工作流控制功能之间的内部接口由开发商自行定义,不作为本标准的一部分,而采取将静态仓库用法(对于持久化数据,在建的过程定义数据)与动态仓库用法(对于在运流程实例的变化管理)分离(例如通过版本控制)的方式。
过程定义库的本地存储结构不是WfMC标准的组成部分。包的应用仅是旨在简化可复用数据结构的导入/导出。采用简单的过程仓库结构,单一的过程定义级操作,在一导入包内的共享信息在导入接口中可以被复制到每一独立过程定义(对于过程定义导出类似于重新打包)。
4.5.元素概览
下表给出XPDL内定义的主要元素概览:
l 第一行包含所有所有主要元素的公共属性及元素。所有主要元素具有id、name、Description 和 Extended Attributes属性;
l 第二行主要元素各自的特有属性;
l 第三组有可能的对其它元素的引用组成;
l Documentation和Icon元素包含执行引擎使用的表现信息;
l 第五组包含流程仿真和流程优化信息 (BPR-相关信息)。
更多的元素和预定义属性可加入模型中以便建立未来的适应性标准。所有元素的简短描述和语义在后续章节中给出。
说明 | Package | Workflow Process | Activity | Transition | Application | Data (workflow Relevant Data) | Participant |
编号 | Id | Id | Id | Id | Id | Id | Id |
名称 | Name | Name | Name | Name | Name | Name | Name |
描述 | Description | Description | Description | Description | Description | Description | Description |
扩展属性 | Extended Attributes | Extended Attributes | Extended Attributes | Extended Attributes | Extended Attributes | Extended Attributes | Extended Attributes |
| XPDL Version (版本) | Creation Date (创建时间) | Automation Mode (自动模式) |
|
| Data Type (数据类型) | Participant Type (参与者类型) |
| Source Vendor ID | Version (版本) | Split (分支) |
|
|
|
|
| Creation Date (创建时间) | Author (作者) | Join (合并) |
|
|
|
|
| Version (版本) | Codepage | Priority |
|
|
|
|
| Author (作者) | Country Key | Limit |
|
|
|
|
| Codepage | Publication Status | Start Mode (开始模式) |
|
|
|
|
| Country Key | Priority | Finish Mode (完成模式) |
|
|
|
|
| Publication Status | Limit | Deadline |
|
|
|
|
| Conformance Class | Valid From Date (时限开始) |
|
|
|
|
|
| Priority Unit (优先级单位) | Valid To Date (时限结束) |
|
|
|
|
|
| Responsible | Parameters (参数) | Performer | Condition (条件) | Parameters (参数) | Initial value (初始值) |
|
|
| Responsible | Tool (工具) | From 活动编号 (从。。开始) |
|
|
|
|
|
| Subflow (子流程) | To 活动编号 (到。。结束) |
|
|
|
|
|
| ActivitySet |
|
|
|
|
| External Package |
| Actual Paramete (实际参数) |
|
|
|
|
文档 | Documentation | Documentation | Documentation- |
|
|
|
|
图标 | Icon | Icon | Icon |
|
|
|
|
单位 | Cost Unit
| Duration Uni t | Cost |
|
|
|
|
时间段 |
| Duration | Duration |
|
|
|
|
等候时间 |
| Waiting Time | Waiting Time |
|
|
|
|
工作时间 |
| Working Time | Working Time |
|
|
|
|
二、基本模型属性
1.公共元素属性
1.1.扩展属性
扩展属性可用于所有实体。允许开发商扩展本规范的功能以便满足个别产品的需要。开发商可在ExtendedAttribute中加入自目录。
对于最终用户,扩展属性,一般不需要修改。
| 描述 |
Name | 用于确定扩展属性 |
Value | 特定产品要求的值 |
1.2形式化参数
形式化参数可用作工作流过程和工作流应用的属性,它们在调用期间及控制返回时被传递 (e.g一调用应用)。如下是调用参数:
| 描述 | |
Datatype | 形式化参数的类型 | |
Description | 形式化参数的文本表述 | |
ID | 参数的标识符 | |
Index | 参数的索引 | |
Mode | IN | 输入参数 |
OUT | 输出参数 | |
INOUT | 输入输出参数 |
形式化参数—属性
1.2.1 参数传递语义
参数传递语义定义如下:
任一只读形参(IN)调用时由相应实参(一表达式)初始化,此即传值(pass-by-value)语义。
(a) 任一读/写形参有相应的实际传递实参初始化,实参必须是工作流相关数据实体的标识符。 在过程完成时,形式化输出参数的之值被拷回原实参中(必须是工作流相关数据实体的标识符)。此即拷贝-恢复语(copy-restore)义
(b) 任意只写形参(OUT)被初始化为零值 (字符串将设为空串,复杂数据类型将每个元素设为零)。在过程完成时,形式化输出参数被拷贝回原实参中(必须是工作流相关数据实体的标识符)。此即零-恢复(zero-restore)语义。
1.2.2 同步语义
拷贝和恢复被处理为原子操作;为避免流程实例中对工作流相关数据并行操作的冲突,这些操作是串行的。在返回调用时,若拷贝和恢复间没有加锁,返回参数值将冲掉局部值(特定工作流相关数据项。
1.2.3 形式化实参映射
调用时从实参到形参的映射由一参数映射列表定义。实参按顺序一对一映射到形参,亦即第一个实参映射到第一个形参,第二个实参映射到第二个形参等。定义中要求类型兼容,运行时工作流系统可强制转换,例外情况是局部定义的,非本规范组成部分。当实参是一表达式时,表达式被工作流引擎求值并缓冲,缓冲区的目录被用于形参-实参映射。如何完成缓冲和映射超出本文档范围。
2.包属性
在一包内定义几个过程是可能的,共享同样的工具及参与者。建议每个业务过程创建一包,其中包含所有必要的工作流过程以及与之相关的工具和工作流参与者,虽然并非必需的。也可以在一包内只定义一个过程定义的一部分或几个过程的公共部分(例如一工作流参与者清单或工作流应用清单)。
| 描述 |
Applications | 工作流应用声明列表。 |
Conformance Class | 包中过程定义的结构限定。 |
Data Fields | 包中定义的工作流相关数据列表。 |
Extended Attributes | 可加入包中的开发商定义的扩展。 |
External Packages | 对另一定义在不同文档中的包的引用 |
Id | 用于标识包 |
Name | 用于标识包的文本 |
Package Header | 确定包特征的一组元素 |
Participants | 包中用于执行流程的资源列表。 |
Redefinable Header | 一组既可用于包又可用于流程的元素及属性 |
Script | 确定表达式中所用的脚本语言 |
Type Declarations | 包中所用的数据类型列表 |
Workflow Processes | 组成包的工作流过程列表。 |
2.1包头定义
包头定义中保存有包的所有重要信息,诸如:XPDL版本、开发商ID等。
| 描述 |
Cost Unit | 仿真数据所用的单位(通常按货币单位) |
Created | 包的创建日期 |
Description | 对包的文字说明 |
Documentation | 帮助/说明文档的路径及文件名 |
Priority Unit | 用用户定义语义的字串 |
Vendor | 模型定义的来历,包含开发商产品名称及版本号 |
XPDL Version | 规范的版本 |
包定义头—属性
2.2可重新定义头(Redefinable Header)
可重定义头涵盖那些可在工作流定义头中定义的属性,且可在任何过程定义头中重新定义。 重定义时,应把握范围标准。
| 描述 |
Author | 包定义作者姓名 |
Code page | 文本部分代码页 |
Country key | 基于ISO 3166的国家代码。可以是3为数字的国家代码,或两位字符国家代码 |
Publication Status | 工作流过程定义的状态 UNDER_REVISION RELEASED UNDER_TEST
UNDER_REVISION:状态表明正在定义; UNDER_TEST:状态表明正在测试。在上面两种状态下,该工作流模型都不能被正式使用; RELEASED:的状态表明该工作流模型已完全定义好,可以被使用。
|
Responsible(s) | 工作流参与者――为此工作流负责;运行时连接到工作流参与者实体的主管人。工作流参与者为本模型定义的工作流负责(通常是一组织单元或一人)。假设负责人是运行时的主管人。 缺省值:起始参与者 |
Version | 本包的版本 |
可重定义的头– 属性
2.3适应类型声明(Conformance Class Declaration)
适应性类的声明允许对适应性类作描述,而该描述在本模型定义中是有限制的。除非它在过程定义级局部被重新定义,适应性类型声明适用于所有包含的过程定义。
| 描述 | |
Conformance Class | FULL-BLOCKED | 网络结构(模型)限制在适当的SPLIT/JOIN及LOOP嵌套 |
LOOP-BLOCKED | 网络结构(模型)限制在适当的循环嵌套 | |
NON-BLOCKED | 网络结构(模型)无限制,缺省 |
适应类型声明–属性
NON-BLOCKED:这种一致性类型实际上就是对信牌驱动模型的网状结构无任何的限制,不要求各种配对(详见下面的说明)。
LOOP-BLOCKED:这种结构要求出循环意外,信牌驱动模型的网状结构中不能有回路。
FULL-BLOCKED:这种要求非常严格。所有的JOIN和SPLIT节点必须配对(它们还必须是相同类型的,即同为AND-或XOR-类型);一个内置块的开始和结束节点中的SPLIT和JOIN也要配对;在AND-SPLIT中可以没有条件(即全选);在XOR-SPLIT中,假如有一个转移有条件,则必须有一个没有条件或OTHERWISE的转移。
2.4脚本
Script元素确定XPDL表达式中所用的脚本语言。文本表达式形如xsd : string。例如可以实参?(ActualParamete)或常量(Cost)中使用一个表达式。
一个由格式化的XML(诸如:MathML)组成的表达式可用于Xpression元素内(诸如转移条件)。
| 描述 |
Type | 确定表达式中所用的Script语言。为了跨实现的一致性,通常采用标准的语言建议选用所述字串的一种: text/javascript, text/vbscript, text/tcl, text/ecmascript, text/xml。 |
Version | Script语言的版本 |
Grammar | 是对语言语法定义文档的引用,可以是XML 大纲、DTD或BNF. |
脚本– 属性
2.5外部包引用
外部包引用允许引用另一包定义内的定义或其它系统提供给工作流管理系统的接口(诸如:已有的组织机构描述管理工具)。
| 描述 |
Extended Attributes | 为满足执行需要可选的开发商定义的扩展。 |
href | 模型标识符。逻辑引用一模型 |
外部包引用– 属性
3.应用声明
工作流应用声明是过程定义或环境包内所有应用、需要的工具以及由工作流过程定义声明的调用列表。可以定义工具(亦或事实上仅为名称),这意味着工具的真实定义是不必要的,可以交由对象管理处理。采用这个方法的原因是多平台环境的处理,因为不同的程序(或功能)不得不处理每种平台的调用。XPDL源自对具体执行或环境的抽象 (因而这些方式在流程定义时不必关心)。
| 描述 |
Description | 应用的简短描述 |
Extended Attributes | 为满足实现需要由开发商定义的可选扩展。 |
External Reference | 对外部定义的应用的引用。 |
Formal Parameters | 通过调用接口与应用交换的参数列表。 |
Id | 用于标识工作流应用 |
Name | 标识应用的文本(可以理解为一般工具的名称) |
工作流应用声明 – 属性
3.1调用参数
一个工作流应用声明可以有(调用)参数的定义,也可在其它实体内使用。
拷贝调用IN被看做一个原子操作;同样处理恢复调用OUT;这两个操作之间无同步行为。
4.工作流过程定义
工作流过程定义给出组成工作流元素的详细说明。它分别包含任务、转移(可选)、应用以及过程有关数据实体的定义或声明。属性可予定义,诸如有关管理数据的作者、版本,有关运行时数据的优先级,有关BPR和仿真数据。
一个工作流过程可以作为形如子流程的一个任务实现,此时,其参数被定义为过程的属性。
一个包含输入参数且输入参数并非由一子流程调用实例化的工作流过程定义,其所有输入参数的初始化方法是本地定义的。这样,任何与实例化过程定义相关的工作流相关数据――包括在参数列表内, 将被初始化为指定的“缺省值”(如果定义的话)。未作为输入参数传递的或未初始化为“缺省值”者,结果未定。同样,子流程正常终止后,未返回值与调用流程者,其值未定。
总之,定义的实体标识符及其名称的范围是环境实体,其标识符在该范围内是唯一的。对于过程标识符及其名称是环境包。
<xsd:element name="WorkflowProcess">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=“xpdl:ProcessHeader"/>
<xsd:element ref=“xpdl:RedefinableHeader" minOccurs="0"/>
<xsd:element ref=“xpdl:FormalParameters" minOccurs="0"/>
<xsd:group ref="xpdl:DataTypes"/>
<xsd:element ref=“xpdl:DataFields" minOccurs="0"/>
<xsd:element ref=“xpdl:Participants" minOccurs="0"/>
<xsd:element ref=“xpdl:Applications" minOccurs="0"/>
<xsd:element ref="xpdl:ActivitySets" minOccurs="0"/>
<xsd:element ref=“xpdl:Activities" minOccurs="0"/>
<xsd:element ref=“xpdl:Transitions" minOccurs="0"/>
<xsd:element ref=“xpdl:ExtendedAttributes" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
<xsd:attribute name="Name" type="xsd:string"/>
<xsd:attribute name="AccessLevel">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="PUBLIC"/>
<xsd:enumeration value="PRIVATE"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="WorkflowProcesses">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=“xpdl:WorkflowProcess"
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
| 描述 |
AccessLevel | 流程的访问级别,可以是PUBLIC或PRIVATE.。若为PUBLIC,则该流程可被外部系统或应用调用;若为PRIVATE,仅能作为子流程任务调) (见 5.4.3 节) |
Activities | 组成过程热任务列表。见4.3节 |
ActivitySets | 独立的任务及转移列表 |
Applications | 工作流应用声明列表。见3节 |
Data Fields | 工作流有关数据列表。见8节 |
Extended Attributes | 为满足实现需要开发商定义的可选扩展。见1.1节 |
Formal Parameters | 可传递到过程的参数列表。见1.2节 |
Id | 用于表示工作流过程 |
Name | 用于表示工作流过程文本 |
Participants | 过程执行中的资源列表。见7节 |
Process Header | 定义过程特征的元素组(集) |
Redefinable Header | 包和过程都用的一组元素和属性 |
Transitions | 连接过程任务的转移的列表。见6节 |
工作流过程定义—属性
4.1.工作流过程定义头
工作流过错定义头保存有关过程定义的所有信息,诸如过程版本、优先级、有效期限等。
| 描述 |
Created | 工作流过程定义创建的日期 |
Description | 对过程的简述 |
Duration | 执行任务期望的持续时间,以DurationUnit.为单位 |
Duration Unit | 描述适用于整数持续时间(无单位标记)的缺省单位,可能的取值为: Y – 年 M – 月 D – 天 H – 时 m – 分 s – 秒 |
Limit | 为时间管理的期望持续时间(例如启动一逐步升级的过程等),以DurationUnit为单位。从过程启动的日期时间算起。达到期望时限后的结果定义不含在本文档中(亦即由开发商定义)。假设在此种情况下至少提醒流程的责任人。 |
Priority | 过程的优先级类型 缺省:从模型定义继承 |
Time Estimation | 等待时间、工作时间与持续时间的组,用于仿真 |
Valid From | 激活工作流过程定义的日期,空串表示系统日期 缺省:从模型定义继承 |
Valid To | 工作流过程定义失效的日期。空串表示无限有效 缺省:从模型定义继承 |
Waiting Time | 执行任务所需预备的时间量(时间估计) (等待时间由分析环境提供,且可被运行环境置换,以DurationUnit为单位 |
Working Time | 指任务的执行者完成该任务所需的时间量(时间估计) (工作时间分析时需用,且由运行参数的计算通过) ,以DurationUnit为单位 |
工作流过程定义头 – 属性
4.2工作流过程可重定义头
| 描述 |
Author | 工作流过程调用的作者姓名 |
Codepage | 文本部分所用的代码页 缺省:从模型定义继承 |
Country key | 基于ISO 3166的龟甲代码,可以是3位数字或2位字符。 缺省:从模型定义继承 |
Publication Status | 工作流过程定义的状态 缺省:从模型定义继承 UNDER_REVISION RELEASED UNDER_TEST |
Responsible(s) | 工作流参与者――对本流程负责(通常为一组织机构单元或一人)。 It 假设流程运转期间责任人为主管人。 缺省:从模型定义继承 |
Version | 工作流过程定义的版本 |
工作流过程可重定义头—属性
4.3任务组(集)
任务组是独立的任务及转移集合。转移仅指向同一组内的任务,没有流入和流出该任务组的转移。任务组可当作块任务执行。
| 描述 |
Activities | 组成过程的任务列表 |
Id | 用于标识工作流过程 |
Transitions | 连接过程任务的转移列表 |
5.工作流过程任务
工作流任务定义用于定义组成工作流过程的每一基本任务。可定义属性规定任务的控制信息,执行选择,执行者分配,运行时相关信息――诸如优先级,BPR中的特定数据,以及仿真情况(和工作流制定时不用的信息)。此外,也可描述对数据访问的限定及转移评判 (e.g分叉和 接合)。强制属性用于描述任务的标识符和类型;少量的其它属性是可选的,但对所有任务类型用法相同;其它属性的用法取决于任务类型,如下表所示:
对于任务标识符及名称,其范围是工作流过程环境。
任务描述用于描述几种不同的任务类型。所有这些任务共享同样的(共同的)通用任务属性,但其它属性、特殊的参与者、应用分配以及工作流相关数据的使用为各任务类型所特有。下表确定了不同任务类型其它属性/实体类型的用法:
Entity Types (usage within Activity Type) | 任务类型(Activity Type) 执行类型(Implementation Type) | 路由 Route | 块任务BlockActivity | ||||
None | Application | Subflow | |||||
Transition Restriction | Normal | Normal | Normal,加上任务内子流程调用/返回 | Normal ; 在Route任务中的任意额外控制执行 | Normal; 在同一上下文中引用任务;任务组(ActivitySet )中不到任务 | ||
Participant Assignment | Normal | Normal | N/A | N/A | N/A | ||
Application Assignment | None | Yes | N/A | N/A | N/A | ||
Use of workflow Relevant Data | Normal | Normal | 可用于参数传递 | 可用于路由控制条件 | 可用于路由控制条件 | ||
用法注意事项:
转移约束,子流程和路由将在有关转移的章节中叙述。通常,正常的转移约束可以在过程环境内任务边界级予以描述,反之,则特殊的流转条件 (子流程,或一路由任务内在部分)操纵任务的内部(但可以在过程定义环境中引用任务)。下图展示了任务及其变化的一般结构:
其中实现类型为NONE者,工作流任务是手工控制的,其完成需要明确地通告工作流管理系统。 这样的任务可以典型地包含承担某些非自动任务的参与者的说明,且完成时通知超级用户。
工作流相关数据可以(潜在地) 在任何任务中引用,虽然其在手工任务中的使用未在过程定义中描述。其中子流程类型的任务,任何传递到调用(子)过程的 IN 类参数必需在调用过程/任务中已声明为工作流相关数据,或者继承自环境包。(类似放的要求适用于需返回调用流程的OUT参数)。路由及块任务不直接操作工作流相关数据,但可以在接合/分叉控制逻辑里条件表达式中引用这些数据。
| 描述 |
BlockActivity | 执行一任务组的任务 |
Deadline | 定义截止时间,以及到达截止时间时采取的动作(action) |
Description | 关于任务的文字说明 |
Documentation | 描述任务的帮助文件的地址 |
Extended Attributes | 为满足个别实现需要的可选的扩展 |
Finish Mode | 描述任务结尾系统如何操作 |
Icon | 表示任务的图标地址(路径及文件名) |
Id | 用于表示工作流过程任务 |
Implementation | 一个“正规的”任务,若非路由任务是强制的,在“no”和“subflow”中任选其一 |
Limit | 给于时间管理目的期望的持续时间(例如启动一个逐步升级的程序等) ,以DurationUnit为单位,从过程启动日期/时间算起,到达期限的后果本规范未定义(由开发商自行定义)。 |
Name | 用于标识工作流过程任务的文本 |
Performer | 指向工作流参与者实体,可以是一表达式。 缺省值:任意参与者 |
Priority | 一个描述任务执行时初始有限级的值。若该值为定义,而过程定义中定义了优先级,则使用其中定义的值。 一般情况下,优先级被设为自然数,从0开始,数值越大,优先级越高(亦即0..n) |
Route | 一种“哑”任务 |
Simulation Information | 一个任务的仿真估算,无缺省值 No default. |
Start Mode | 描述如何出发任务的执行 |
Transition Restrictions | 提供进一步的对转移的约束和上下文相关语义的描述 |
过程任务—属性
5.1路由任务
路由任务是一种“哑”任务,允许阶梯状表示转移条件(例如:形如"IF condition-1 THEN TO Activity-1 ELSE IF condition-2 THEN TO Activity-2 ELSE Activity-3 ENDIF")。一些开发商可能直接实现层状转移条件而不要求类似路由的任务,其它则可能有这样的要求。其中可能的开发商和流程设计者被鼓励使用路由结构,如来自流出任务的异或分叉层次条件。某些转移组合不能被从一个任务流出的单纯转移列表或一个任务的单纯流入转移列表表示,这些情况需要使用一个或多个哑任务,如下例:
l 来自一任务流出转移的异或(XOR)和与(AND)分叉条件组合。
l 到一任务的异或(XOR)和与(AND)接合条件组合。
l 线程子集的转移调用条件与(AND)接合,且单线程带有条件。
一个路由任务既无执行者也无应用,其执行也不影响工作流相关数据或应用数据。
为了仿真之用,下述仿真数据值应予设定:持续时间为0,费用为“0”,工作时间为“0”,等待时间为“0”。 至于优先级(Priority)和实例化(Instantiation ),其最大值应予设定。
5.2块任务
块任务执行一任务组(ActivitySet)或独立的任务/转移图(模型)。从块任务开始执行到组中的第一个任务,一直在组内继续,直到达到一退出任务(一五流出转移的任务)。执行后返回到块任务的后继任务。
5.3执行控制属性
这些是对于任务执行控制提供各种各样任务特定性质定义的任务属性。自动控制模式定义了触发和终止一个任务时的自动程度,有两种自动控制模式:
· 自动模式(Automatic mode)由工作流引擎全部控制,亦即任何流入转移条件一满足,工作流引擎就自动继续执行任务。同样地,任务的完成以及前进到任一后续任务,条件逻辑自动发生,直到最终调用应用的终止。
· 人工模式( Manual mode) 需要使任务开始或结束的明确的用户交互。这样的系统中,任务的启动 与/或 完成是显然的用户动作的结果。
可分别定义对于一个任务的开始(start)与结束(end)的自动控制模式.
| 描述 |
Start Mode | 描述如何触发一个任务的执行 |
Automatic | 隐性地由系统触发。缺省 |
Manual | 显性地由最终用户触发 |
Finish Mode | 描述任务末尾时系统如何操作 |
Automatic | 意味着当调用应用结束控制时自动返回。缺省 |
Manual | 最终用户必须显性地终止任务 |
执行控制—属性
5.4实现选择(Implementation Alternatives)
对于工作流引擎控制下的数据,任务的执行是原子的。这意味着在系统崩溃、异常终止或任务取消时,工作流相关数据和工作流控制数据要回滚(自动或借助其它途径),并请求一个适当的补偿任务。 (对于审计数据不必如此)。 本版本的规范不含任何对数据同步与恢复的控制定义(例如工作流执行与子流程或执行的应用之间)。
一个任务可有下表所述3种执行方式之一:
| 描述 |
No implementation | 由人工程序执行(亦即不需工作流支撑) |
Tool | 由一个或数个支撑应用执行 |
Subflow | 由另一过程执行 |
执行选定—属性
5.4.1 无实现(No Implementation)
无实现意即本任务的执行不是由调用的应用或程序支撑的。由两种可选方式:
人工任务(手动任务),“完成模式”是人工确定的。
隐性任务,依据过程处理的需要,工作流引擎自身知晓的任务(例如:由开发商定义的扩展属性)。譬如,工作流中,启动流程和终止流程时生成及清除隐藏数据的“前处理”与“后处理”任务, (例如,图像与档案之间的关联)。此时,“开始模式”与“结束模式”都是自动确定的。
5.4.2 工具(Tool)
指任务由一个或数个工具实现。工具可以是一应用程序(关联到工作流应用实体)。
| 描述 | |
Actual Parameters | 传递给子流程的参数列表。 | |
Description | 文字描述 | |
Extended Attributes | 为满足某些实现需要的可选扩展 | |
Id | 用于标识应用或程序的标识符,与类型有关 | |
Type | APPLICATION | 工具(Application)标识符 |
PROCEDURE | 程序(Procedure)标识符 |
Tool—属性
5.4.3 子流程(subflow)
任务被重定义为子流程。子流程可异步或同步执行。子流程的标识符可从环境包声明中继承。
异步执行方式下,被引用流程的实例初始化后将继续处理子流程后继任务的分支逻辑,无返回参数。若需同步已初始化的子流程,须借助其它途径,诸如事件,本文中不作描述。此类子流程称之为“链式(或分叉式)(Chained or forked)”子流程操作。
同步执行方式下,须待该子流程执行完毕后,方继续其后继分支逻辑的处理,在子流程完成后,调用流程和被调用流程间可返回参数。此类子流程称之为“分级(hierarchic)”子流程操作。
| 描述 | |
Actual Parameters | 传递给子流程的参数列表。 | |
Execution | ASYNCHR | 异步执行 |
SYNCHR | 同步执行 | |
Id | 用于标识所调用的过程 |
子流程—属性
5.5执行者的关系
任务和执行者之间的关系由参与者分配属性给定,它提供与工作流参与者实体之间的连接 ,缺省值:任意参与者。
在执行者属性中所用的工作流参与者标识符既可在工作流过程定义环境中声明,也可继承自包环境。
工作流管理系统在运行时需处理对一执行者集的表达式求值为空,以及执行者不唯一的问题,执行者的定义可以来自外部资源库或机构模型。前后述两种情况都发生的解决方案不在本规范的范围内。
l 第一种情况(空集),引擎可以稍后再试,或者发信息通知流程管理者。该方法是局部的,非本规范的正式组成部分。
l 第二种情况(不唯一)可能源自执行者依据职责/技能确定(称之为角色)或者为一组织单元,其本身是一组参与者的容器。此类情况所采用的解决之道是局部的,非本文档的正式组成部分。普遍情况如下:
n 其中一个任务包含可并行执行的多个工作项,各工作项可呈现给许多执行者。
n 另一种情况是任务根据一局部负载平衡算法进行分配,或者工作列表呈现给许多潜在的执行者而分配给第一个接受者(工作流引擎有必要提供适当的行为。)
n 将任务分配给一个组织单元(如一部门)也可能导致任务呈现给组织单元内的所有成员,而将任务分配给第一个接受的参与者,或者允许部门经理将任务改派给一个制定的部门成员。
在所有的情况下,在元模型和XPDL中表述的参与者分配仅涉及任务及其定义的参与者(包括表达式的使用,以及定义的功能Functions) ,不区分定义的参与者是原子的(如一个人)或非(如一个团队)。有关工作流引擎的局部行为,资源库或机构模型的处理未加定义。
5.6截止期限(最终期限)
| 描述 |
Execution | 定义截止期限到达时产生的系统行为。 ASYNCHR:截止时间是异步发生的。是以显性的与分叉操作,其中任务继续进行,另一线程开始追踪命名的异常转移。由于该任务继续运行,可能引发另一截止期限。 SYNCHR:任务异常结束,然后接着执行命名的异常转移。 |
DeadlineCondition | 一个表示截止期限时间的表达式。该表达式是依赖执行的,且至少包含:
与任务开始的相关时间 (2天)
固定时间 (January 1)或 (January 1, 2002 )
利用工作流相关数据计算出的时间 (varName days) |
ExceptionName | 截止期限到达时发生的异常的名称 |
截止期限用于产生关于规定的时间周期到期时的异常。
截止期限到期时,产生一异常条件,且伴随着适当的异常转移。 若截止期限是同步的,则继续异常路径前任务将被终止。若截止期限是异步的,然后一个隐性的与分叉被执行,一个关于适当异常转移的新处理线程被启动。异步异常可能引发副作用,应警慎使用。一些副作用 将在本节后边讨论。
截止期限条件是依赖执行的,其条件可以是相对的或绝对的,且可使用工作流相关数据。
若块任务或子流程发生同步截止期限,停止该任务,包括停止块中所有线程,或子流程及其所有线程,以及嵌套的子流程。从模型的角度来看,可认为是“立即终止”。如果一个引擎背离这种模式,诸如允许一运行中(in-process)的人工任务完成,应在文档中描述该行为。
异步异常是一个强大的工具,允许立即提示,及通过改变工作流相关数据实现平滑的过程终止。但异步异常也能造成竞争条件和可能的副作用。例如,当处理异步异常时,正在运行的任务可能完成。此外,由于隐性分叉被执行,后续控制可能是复杂的,若异步异常处理接合到达截止期限处理线程的回退。流程设计者必须注意,应恰当处理竞争条件,以避免不必要的副作用。
5.7仿真信息
实例化属性定义高吞吐量时任务可激活多少次(例如多少个体可获取角色。可以是一次或多次(multiple)。
| 描述 | |
Cost | 平均费用 | |
Duration | 期望的完成任务的周期,以DurationUnit为单位 | |
Instantiation | 定义任务可被激活的容量:一次或多次(multiple) | |
ONCE | 任务近能激活一次,缺省 | |
MULTIPLE | 任务可被激活多次 | |
Time Estimation | 预期的周期 (工作时间、等待时间,期望周期之和),以DurationUnit为单位 | |
Waiting Time | 平均等待时间,以DurationUnit为单位 | |
Working Time | 平均工作时间,以DurationUnit为单位 |
仿真信息—属性
5.8转移约束(限制)
| 描述 |
Join | 定义任务的流入转移是JOIN-ed |
Split | 定义任务的流出转移是SPLIT-ed |
转移约束—属性
5.8.1 接合(Join)
接合描述一个活动有多个流入转移的语义。
| 描述 | |
Type | AND | 接合该任务实例所有流入转移的并发线程:要求同步。同步的线程数量可能取决于前面与分叉(AND split(s))的条件的结果。 |
XOR | 接合可选线程:不要求同步 |
接合—属性
与接合(AND join)可被视为任务的“汇聚前提”;任务不被初始化,直至所有流入路径转移条件为真。
异或接合(XOR join)被初始化,当任一流入转移条件为真时。
5.8.2 分叉(SPLIT)
分叉描述一个任务存在多条流出转移的语义。
| 描述 | |
Transition Refs | 从任务流出的转移列表,每个转移由ID标识 | |
Type | AND | 定义由任务流出转移表现的许多可能的并发线程。 若转移有条件,则并行执行的实际线程数量取决于与每一转移关联的条件,它们是同时计算的。 |
XOR | 任务流出转移的标识符列表,提供可选的执行转移。 那条转移路径被选中取决于每一单条转移的条件――以列表中定义的顺序计算。 如果计算至一条无条件转移或带有OTHERWISE的条件转移,将结束条件列表计算。 |
分叉 -- 属性
带有条件的与分叉转移可分别参照"条件与", "多选或", 或这"非排它或"。实际并发的线程数量由执行时条件的计算结果确定。在与分叉之后,过程实例(或过程实例的线程)依据转移条件计算结果分裂成许多各自执行的线程。 (注意:不需要标识符列表,因为该任务的所有流出转移都参与计算,且与顺序无关)。
如果在与分叉(AND_SPLIT)中存在一带有条件OTHERWISE的转移,则执行两步计算,第一步计算所有的转移,内含OTERWISE条件的转移除外,若无一 (含无条件者)为真,然后,对带有OTHERWISW条件的转移执行同样的程序 (从一个任务流程的转移只允许一个转移的条件带OTHERWISE子句)。
OTHERWISE二选一用于保证过程执行无未定义状态(亦即一个任务的流出转移至少一个将发生)。
6.转移信息
转移信息描述工作流执行期间任务间可能的转移,以及允许或禁止转移的条件,更多的控制和结构约束可在任务定义中表述。
A过程定义可看做任务节点间边的网络 (亦即工作流过程图)。所有的边有任务对给定:
(From node,to node).
任务网络的边可以标上转移条件(Transition conditions)。对于一个确定的边,转移条件为真时允许转移;若未定义路由条件,则如同一永真的条件转移。
一个任务若有多个流入或流出转移 ("正常的", 见下述部分),则在任务定义实体中需提供更多的表述控制流向约束和条件计算语法的选项(AND/XOR ,SPLIT/JOIN的派生)。
循环可通过一个回到一个任务的转移来体现――该任务在通向那个转移的一条路径(path)上。典型地,循环中至少有一个任务有多个流出转移,这些转移中的一个或多个含有跳出循环的条件。
对于转移信息中定义的标识符和名称,其范围是工作流过程定义环境。
可能定义或同步多个(并发或选择)控制线程(分叉,接合)以及转移与任务间的顺序 (层次转移/条件)。
<xsd:element name="Transition">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=“xpdl:Condition" minOccurs="0"/>
<xsd:element ref=“xpdl:Description" minOccurs="0"/>
<xsd:element ref=“xpdl:ExtendedAttributes" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
<xsd:attribute name="From" type="xsd:NMTOKEN" use="required"/>
<xsd:attribute name="To" type="xsd:NMTOKEN" use="required"/>
<xsd:attribute name="Name" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Transitions">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=“xpdl:Transition" minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
| 描述 |
Condition. | 给于工作流相关数据表示的转移条件 (例如: 'Contract' = 'SMALL' OR 'Contract' <$20,000). 缺省:真(TRUE) |
Description | 关于转移的简短文字描述 |
Extended Attributes | 为满足特殊实现需要的可选扩展 |
From | 确定转移的FROM源(任务标识符) |
Id | 用于表示该转移 |
Name | 用于表示装得以文字 |
To | 确定转移的TO目标(任务标识符) |
转移信息—属性
6.1条件
| Description | |
Type | 定义转移条件类型,有效值如下: | |
CONDITION | 表示满足其条件则执行转移 | |
OTHERWISE | 表示无满足条件执行则该缺省转移 | |
EXCEPTION | 表示发生异常且其条件被满足时则执行该转移 | |
DEFAULTEXCEPTION | 表示发生异常且无条件被满足时则执行该转移 | |
Xpression | 由XML标记表述的条件表达式 |
条件—属性
6.1.1 异常条件
Exception和DEFAULTEXCEPTION 类型允许用户定义仅当异常产生时采用的转移。EXCEPTION类型等价于CONDITION 类型和DEFAULTEXCEPTION类型再配上OTHERWISE。条件可以包含Exception名称或一较复杂的表达式。除截止期限外,异常以引擎特定的方式产生。如同正常转移一样,异常转移仅在源任务完成后发生。异常一般表示非正常完成。
7.工作流参与者
工作流参与者是如下类型之一:资源集、资源、组织单元、角色、人或系统。角色和资源以抽象参与者的意义使用,此定义是实际执行者和任务之间的抽象级别,不得不做。运行期间,这些抽象定义被求值并分配给正确的人与/或程序.
在最小的资源库或组织机构模型内,工作流定义实体标识符的范围是其被定义的实体环境(工作流过程定义或过程模型定义。
外部资源库或组织机构模型可包含基本的附加信息,作为此处所表现的基本参与者的补充。
| 描述 |
Description | 描述工作流参与者的短文 |
ExternalReference | 对外部定义的参与者的引用,见1.3节 |
Extended Attributes | 为满足个别实现需要的可选扩展 |
Id | 用于表示工作流参与者 |
Name | 表示执行者的文本 |
Participant Type | 工作流参与者实体类型定义 |
工作流参与者—属性
1参与者实体类型
参与者实体类型属性表征参与者是一个个体、一个组织单位或抽象的资源(如机器)。
| 描述 | |
Type | RESOURCE_SET | 一组资源 |
RESOURCE | 确定的资源代理 | |
ROLE | 此类允许执行者通过一个角色或技能组寻址。 本上下文中一个角色是指在一个组织机构内具有一种职责(功能)的人。作为职责不必唯一,应定义一个协调者(用于管理或异常处理)和与角色关联的人员列表 | |
ORGANIZATIONAL_UNIT | 组织机构模型内的一个部门或其它单元 | |
HUMAN | 与系统交互的人,通过一个表现为一到参与者的用户接口的应用 | |
SYSTEM | 自动代理 |
参与者实体类型—属性
8.工作流相关数据
工作流相关数据表示工作流过程或包定义的变量。它们典型地被用于保存决策数据(用于条件中)或引用数据值 (参数), 它们在任务或子流程间传递。可以区别于工作流应用数据――它们完全由调用的应用管理和访问,而不能被工作流管理系统访问。工作流相关数据列表定义了工作流过程所需的所有数据对象。DataType属性显性地说明了工作流管理系统需要的所有信息,以便定义适当的数据对象存储数据,这些由工作流过程的任务实例处理。
工作流相关数据可以在工作流过程或包内定义,其作用范围不同,前者仅能被过程内部定义的实体访问,而后者也可被用于定义一个过程实体的参数。
其中传递到被调用子流程的参数,不在当前模型定义的范围内 (例如支持远程过程调用),它是流程设计者的责任――保证已有的跨参数集的兼容性。
| 描述 |
Data Type | 流程变量的数据类型 |
Description | 描述数据定义的短文 |
Extended Attributes | 为满足个别实现需要的可选扩展 |
Id | 用于表示工作流相关数据 |
Initial Value | 运行时预设置的数据 |
Is Array | 表示是否是一个数组 |
Length | 数据长度 |
Name | 用于标识工作流相关数据的文本 |
工作流相关数据—属性
9.数据类型
数据类型由一组可用作工作流相关数据定义、形式化参数以及工作流过程组成部分的标准类型组成。也可以在TypeDeclaration内声明一种新的数据类型,标准数据类型可用的地方它亦可用。数据类型可从下述类型集中选择一种。
| 描述 |
Array Type | 固定大小的数据组,同一数据类型 (暂不支持) |
Basic Type | 简单类型: STRING, INTEGER, FLOAT, DATETIME, BOOLEAN, |
Declared Type | 对TypeDeclaration 元素中声明的数据类型的引用(暂不支持) |
Enumeration Type | 一个变量或参数 的一组法定的值 (暂不支持) |
ExternalReference | 外部文档中定义类型的引用,(暂不支持) |
List Type | 一个无限制的数据组,同一数据类型 (暂不支持) |
Record Type | 类型可以不同的一组成员 (暂不支持) |
SchemaType | 采用XML schema定义的数据类型(暂不支持) |
Union Type | 一组成员,然仅有一个被用作数据实例(暂不支持) |
9.1基本数据类型
| 描述 | |
Type | STRING | 字符串 |
FLOAT | 浮点型 | |
INTEGER | 整数型 | |
|
| |
DATETIME | 日期 | |
BOOLEAN | 布尔型 | |
|
|
基本数据类型—属性
三、扩展模型属性
1.包
1.1Type
类型,分为以下模式:
GENERAL:一般流程
COMMON:公共流程
SYSTEM:系统流程
此属性一般不用设置。
1.2MainWorkflowProcessId
MainWorkflowProcessId包内的主流程编号。
此属性必须设置,系统一般默认包内的第一个流程。
2.流程
2.1SchemeType
计划类型,为流程的周期性启动制定设置。分为以下模式:
None:无周期性设置。
EveryYear:每年启动一次
EveryMonth:每月启动一次
EveryWeek:每周启动一次
EveryDay:每天启动一次
EveryHour:每小时启动一次
EveryMinute:每分钟启动一次
1.2SchemeIntervalTime
表示周期性启动计划间隔时间,与SchemeType配合使用。
Year:表示间隔,此处无意义。
Month:表示第几个月,范围0-12
Month:表示第几个月,范围0-12
Week:表示月内第几周范围0-4。(如果月没有设置,表示年内第几周 0-52)
Day:表示月内第几天,范围0-31。(如果设置了Week,表示周内的第几天,范围0-7)
Hour:表示第几个小时,范围0-23。
Minute:表示分钟,范围0-59。
Second:表示秒,范围0-59。
IsMonthLastDay:表示月的最后一天。设置此属性是Day属性不再设置。
3.活动
3.1ActivityMode
活动模式类型,为活动的类型。一般不用专门设置,建模时,系统初始该类型。
分为以下模式:
Start:表示开始类型的活动。一个流程中一般只有一个开始类型的活动。
End:表示结束类型的活动。一个流程中一般只有一个开始类型的活动。
Manul:人工型活动。表示需要参与者参与的活动。
3.2BeforeFormula
公式,为活动实例创建好以后,初始化以前执行。
公式采用JavaScript编码规范。
内嵌的数据(工作流相关数据)表示为:[‘DataFieldId@@DataFieldName’]。
DataFieldId:表示数据字段标号,可以为空。为空时采用数据字段名称
DataFieldName:表示数据字段名称。
例如:
[‘2cbbcbe9-3789-4336-afea-2ce398db7cc1@@boolDfCanFinish’] = true;
[‘@@boolDfCanFinish’] = true;
[‘@@stringDfSubject’] = ‘关于。。。等同志的任职的说明’;
3.3AcitiveFormula
公式,为活动实例创建好以后,活动开始后执行。
参照上一节。
3.4AfterFormula
公式,为活动实例创建好以后,活动完成后执行。
参照上一节。
3.5N
表示分支-合并模式中,M/N的表达,即在合并时,有N条路由到达即可满足条件,推进流程。
3.6MultiInstanceN
表示多实例分支-合并模式中,M/N的表达,即在多实例合并时,有N条多实例路由到达即可满足条件,推进流程。
3.7SchemeWorkingIntervalTime
表示该活动实例,计划用多长时间完成,如果超时,则发送超时催办。
设置内容参照流程属性SchemeIntervalTime。
3.8Notify
表示该活动实例,通知模式,例如如果超时,发送超时催办时发送给谁的设定。
与上一节SchemeWorkingIntervalTime配合使用。
以下属性,设置为True时表示采用,为False时表示不采用。
HasStartNotifyFlowOwner:活动开始时,通知流程所有者。
HasStartTimeNotifyParticipant:活动开始时,通知活动参与者。
HasStartTimeNotifyStarter:活动开始时,通知流程启动者及拟稿人。
HasCompleteNotifyFlowOwner:活动完成时,通知流程所有者。
HasCompleteNotifyParticipant:活动完成时,通知活动参与者。
HasCompleteNotifyStarter:活动完成时,通知流程启动者及拟稿人。
HasExceptionNotifyFlowOwner:活动异常时,通知流程所有者。
HasExceptionNotifyParticipant:活动异常时,通知活动参与者。
HasExceptionNotifyStarter:活动异常时,通知流程启动者及拟稿人。
HasOverTimeNotifyFlowOwner:活动超时时,通知流程所有者。
HasOverTimeNotifyParticipant:活动超时时,通知活动参与者。
HasOverTimeNotifyStarter:活动超时时,通知流程启动者及拟稿人。
HasEmail:表示Email通知。
HasSms:表示短信通知。
HasTelephone:表示电话通知。
3.9Paticipants
表示该活动的参与者设置。
3.9.1 BenchMark
表示相对标记。
属性分为以下模式::
NONE:无相对标记
PRIOR:指上一步活动实例。
START:流程的开始活动实例。
MULTINSTANCESTART:多实例对内的多实例活动类型的实例。
3.9.2 BenchMarkParticipant
表示相对的参与者,与BenchMark属性配合使用。
属性分为以下模式:
None:无相对参与者。
Self:指相对自己。
DirectManager:指相对直属领导。
AssistantDepartmentManager:相对部门副经理。
DepartmentManager:相对部门经理。
AssistantChildCompanyManager:相对子公司(分公司)副经理。
ChildCompanyManager:相对子公司(分公司)经理。
AssistantCompanyManager:相对公司副经理。
CompanyManager:相对公司经理。
LocateGroup:相对本组。
LocateRole:相对本角色。
LocateDepartment:相对本部门。
LocateChildCompany:相对本子公司。
LocateCompany:相对本公司。
LocateDepartmentDutyId:相对本部门职责。
LocateChildCompanyDutyId:相对本子公司职责。
LocateCompanyDutyId:相对本公司职责。
3.9.3P articipantType
表示参与者类型。
属性分为以下模式:
ORGANIZATIONAL_UNIT:表示组织,如部门,公司等。
HUMAN:指个人。
ROLE:指角色。
RESOURCE:指资源。
SYSTEM:指系统。
DUTY:指职责。
GROUP:指分组。
CUSTOM:暂无意义。
3.10Tools
表示该活动的应用设置。
3.10.1 ToolExecuteType
表示工具应用执行类型。
属性分为以下模式:
Before:活动实例初始化的时候执行。
Active:活动实例活动的时候执行。
After:活动实例完成的时候执行。
Exception:活动实例发生异常的时候执行。
Roolback:活动实例回滚的时候执行。
3.11DataFields
表示该活动的专有相关数据设置。
参照工作流相关数据。
4.应用
4.1ApplicationType
应用类型,为应用的类型。
分为以下模式:
WEBPAGE:表示页面。
WEBSERVICE:表示WEBSERVICE。
JAVASCRIPT:表示JAVASCRIPT。
FORM:表示windows Form类型。
DOTNETAPI:表示DOTNETAPI。
WINAPI:表示WINAPI。
WINCOM:表示WINCOM。
APPLICATION:表示APPLICATION应用程序。
4.2ApplicationExecuteType
应用执行类型,为应用的执行类型。
分为以下模式:
AUTOMATIC:表示自动执行。
MANUAL:人工执行
4.3ApplicationFile
应用文件路径。
4.4ApplicationClass
应用调用的类。
4.5ApplicationFunction
应用调用的函数。
4.6ReturnFormalParameter
返回值形参定义。