Skelta BPM.NET 2006 初探
Skelta BMP.NET 2006的Activity
Start
此活动是workflow的第一个活动,当设计器打开之后,它会默认显示出来。在工具栏中并不出现,也无法删除。workflow的内容和使用的变量都在这里定义。
Human Activities
这一部分的活动提供人-工作流的交互功能。
- Approval Activity:此活动用来接受批准请求,当一个批准请求需要由一个或一组执行人来进行批准的时候,使用此活动。
- 应用场景:账号审批、订单确认
- Check-List:此活动用来向执行人发送问卷(可以由文本框、单选、复选等组成)。
- 应用场景:技术支持调查、客户意见反馈
- Choice:此活动用来向执行人提供“多选”的功能,在Skelta BPM.NET中,最多可以提供10个选项。在这个基础上,Approve可以看作是一个提供了“二选”的特殊Choice。
- 应用场景:带有“挂起”等扩展功能的审批
- Information:用来向执行人提供信息。信息发送的对象可以基于多种定义于数据库中的字段,信息的主题和内容也可以针对每个执行人来定制。
- 应用场景:向申请者返回审批结果
- Resource Set:如果工作流接下来的一个活动的执行人需要由前一个活动的执行人来指定,那么就可以使用此活动来实现。
- 应用场景:老师根据教学任务的要求来选择助教
- Task:该活动用于向一个或一组执行人指派任务,定义任务类型和相关状态。
- 应用场景:Bug跟踪流程中向开发组指定bug修复任务(任务提供下拉框供开发组选择当前工作状态,bug修复完毕后设为Closed)
- Work:当需要一个自定义活动时,可以使用此活动。它可以配置为使用XML配置文件以及HTML模板,拥有高度的扩展性。
- 应用场景:性能评估工作流中,对不同的评估者显示不同的评估界面
Integration Activities
该系列的活动用来进行工作流与外部应用程序、脚本和数据库的整合
- COM-Object:执行一个COM对象的Run方法。此活动会有一个指定的program id,连同参数一起在活动的属性中定义。Run方法返回的字符串会赋给Output参数,它代表着活动的执行状态。该活动执行完毕之后,会给出返回值的集合,用于条件路由。
- Create-Office-Document:此活动可以从工作流中创建一个Word或者Excel文档。当工作流执行到此处时,它会选择模板,用相关的数据,在指定地点创建一个新的文档。
- InvokeWebService:该活动用来从工作流中调用一个web service。活动的输出可以用来决定工作流的执行路径。
- Script:此活动可以在工作流中执行脚本(Jscript或者VBScript等)。当工作流执行到此处时,它会调用脚本的Run方法。脚本的参考程序集可以从活动的属性中获取。脚本的Run方法所返回的字符串值将赋给Output参数。符合该值的link将被选取以继续工作流的执行。
- Shell:此活动可以在工作流中执行任何命令(包括可执行文件或批处理文件)。当工作流执行到此处时,将会执行shell命令并且捕捉该进程的输出。命令的参数可以通过设置活动的Parameter属性来实现。捕捉到的输出可以用来确定工作流的路径。如果命令的输出结果对条件执行没用,那么可以通过设置Ignore Return Value属性,这样命令将被异步执行。
- File Operations:可以在工作流内执行文件传输(通过本地网络或者HTTP、FTP协议)
- Change Workflow Status:在数据库中更新工作流的状态
- XML Action:此活动用来为活动赋以XML数据。
Engine Activities
这些都是与工作流引擎相关的活动
- Decision:该活动可以向工作流中插入一个判断,其输出可以决定工作流的执行走向。
- Redirection-On:工作流执行到此处时,工作流引擎会在后续活动执行完毕后重定向到指定的URL,执行人可以观察前面活动的结果而不必打开它们的WorkItem Lists。
- Redirection-Off:在工作流中,它应该用在一个Redirection-On活动之后。当此工作流执行完毕后,工作流引擎会停止将客户端重定向到指定的URL。
- For-Loop:这个活动用来开始一段循环,常用于重复执行一个或一组活动。必须与Next Loop活动联合使用。
- Next Loop:该活动可以作为循环的终止活动来使用,它会检查计数器的值是否已经达到某个值。如果没有达到,则将For-Loop活动中设置的Loop Variable进行自增,并且重复执行循环中的活动。
- Logger:此活动可以将信息、警告、错误等记录到logger console中。
- Resource Variable:此活动通过一个变量,来指定一个执行人来完成一个工作流活动。
- Rule:该活动可以设置复杂的规则或表达式,执行过程中,引擎会计算表达式的真值,并将结果赋以true或者false而返回,从而决定工作流的行进路径。
- Set Workflow output variable:更新工作流在数据库中的状态。
- Synchronize:此活动可以同步几个不同活动的执行情况。工作流引擎将等待所有的活动到达该活动指定的状态后,恢复前进。
- Update Parent Variables:更新工作流在数据库中的状态。
- Update Variable:该活动可以用来更新变量的值以备后续活动使用。也可以通过它来初始化For-Loop活动中的变量。
- Workflow:该活动可以在当前工作流中执行一个子工作流。
Scheduler Activities
此处的活动用来设置工作流活动进行的执行计划
- Control Custom Timer:此活动用来在工作流中动态地设置一个Set Custom Timer活动。可以在工作流进程的不同阶段放置多个Control Custom Timer活动来控制同一个Set Custom Timer活动。
- Set Custom Timer Activity:此活动用来在指定的时间与对应的工作流变量下按照计划执行多个任务
- Scheduler:此活动用来计划执行一个任务,可以按周、日或者小时来设定时间。其输出可以连接到另一个活动。
- Timer Trigger:放置此活动可以暂挂工作流的执行。
Communication Activities
这一系列的活动用来向工作流添加通信功能。
- Email:可以向选中的执行人集合发送一封电子邮件。
- Notification:此活动可以融合在工作流进程中,向执行人发送通知(email、IM或者SMS)
- Send SMS:可以向选中的执行人或者指定的电话号码发送短信。
- Wait for Email:此活动可以在一个特定的时间段等待一定数量的email(这两个参数都可以在活动的属性里设置)。它可以将电子邮件(全部或部分)保存在指定的变量中,附件的保存也可以设置。
- Wait for SMS:此活动可以在一个特定的时间段等待一定数量的短信,特性与Wait for Email活动类似。
BPMN Elements
其它一些与BPMN相关的元素
- Gateway Placeholder:作为BPMN Gateway事件的容器
- Intermediate Event Placeholder:用作BPMN Intermediate事件的容器
- Placeholder:用作BPMN事件的容器
- Group Box:作为一组活动的标记,在过程建模中是个很有用的工具
- Lane:用来在过程模型中建立泳道。
- Pool:用来在过程模型中建立池
下图中就是一个拥有两个泳道的池。
Channels与Forms
Channels和forms,是Human-Workflow交互(HWS)的重要概念。
含义
- Channels:在BPM.NET中,Channels通过提供不同的媒介,使得指定的用户可以接触工作流项目。Channels有很多种类,在BPM.NET中称作Channel Type,包括Web、WinForm、Email、IM、PDA、语音和短信。BPM.NET默认提供Web Worklist Channel和Mail Channel两种channels,其它的则需要用户自己通过IChannelProvider接口来自己实现。
- Forms:BPM.NET的Forms是执行者针对Work Item进行操作的界面。Forms要声明自己所支持的channels,然后形成交互界面,供执行者操作。
使用
所有的HWS活动都有一个属性叫做Set Channel,用户可以利用它来指定Channel以及相关联的form,在process designer上都可以完成。
Channels和Forms的自定义
如果要自定义一个Channel或者form,可以自己实现IWorkListChannel和IWorkItemForm接口,其成员可以参见随机文档。开发过程还是比较复杂,就没详细研究。不过如果是对于Email Channel的HTML模板,则可以在Skelta安装目录中的
WorkflowElements\Default\en-US\Templates\OutlookEmailTemplate找到。