1.工作流就是指某个业务逻辑的流程,我们在工作流的平台上面,把它的流程中的各个步骤完全显示出来。在Captaris WorkFlow中,工作流是由一个个Task(任务)组成(微软的WF应该叫活动,应该是Activity)。例如:提交一个单子,老总审批,部门执行,这些连贯性的步骤就组成了一个工作流程,而其中每一个步骤就一个Task。
2. 完成一次工作流的任务就可以称为一个Process,不同的工作流分别对应就一个Model。Folder 代表文件夹(在Captaris WorkFlow中是虚拟的,不存在真实的硬盘空间中),可以将不同的工作流(cw)放在文件夹中。文件夹的创建:右击项目,可以看到workflow,点击…按钮,点击此按钮后,弹出对话框,框中有Make New Folder。显示如下图(此图要在项目创建以后才有):
Deployment –> Deploy Folder 就是工作流存放的文件位置。
3. 在Captaris Workflow 中,Task分为Window Task,System Task,Web Task和Event Task(微软的Activity类型好像很多)。这些Task 下面具体会讲到。
4. 打开vs2005,新建一个项目,就可以看到Captaris WorkFlow。如下图:
5. 点击确定以后, 会弹出如下窗体:
用户必须输入User和Password,(开发一般都是admin)选择Log on to 和Server。
User 可以是Captaris Workflow中自创建的用户,例如:admin,也可以是域用户。如果是自创建的用户,Log on to 选择 (Workflow default), 如果是域用户,选择所属的域名。
Server是开发应用程序连接的服务器,可以是本地(localhost)也可以是远程的。
6. 点击OK以后,就可以看到一个工作流的项目了。cw后缀的就是进行工作流开发的文件。返工单的工作流如下图:
刚才提到的Window Task,System Task,Web Task和Event Task在左边的工具栏都可以看到了。
7. 一般来说,开发工作流,在解决方案中除了包括工作流的项目,还应该包括一个宿主项目,可以是一个winform项目,也可以是一个web的项目,当然用控制台也是可以的。如下图:
如果有用到工作流中的类,需要修改继承,将*.aspx.cs文件中继承的命名空间
改为
8. 建立完宿主项目,就必须建立它和工作流项目之间的关联。Web Task 使用在Web平台上面。它有一个Web Form URL属性,它对应着一个aspx页面,如图:
也可以将某一个aspx页面拖拽到对应的Web Task上,拖拽后,Web Task的颜色会发生变化,结果也如上图显示,比较图如下图:
9. 除了上面说的属性,还有其它属性。Image Id属性用来显示图片,Name属性相当一个标识符(就像TextBox中的id),Description用来显示Web Task 文本的内容(相当于TextBox中的Text)Responsible Id属性是关于权限的属性(这个单独介绍),Allow Reset属性允许Web Task做Reset的操作,就是重新操作工作流中对应的步骤。
10. 控件,可以用来保存工作流的一些状态。例如在返工单工作流中保存了返工单号,工作流进程编号,邮件服务器,邮件标题,邮件内容等待。如下图:
工作流在部署完成后,如果添加新的XML,或者XML的新内容都将对工作流进程产生影响。
11. Web Task的事件有六种,Complete,Execute,Failed,Overdue,Ready,Reset事件。看英文就基本明白这些事件的意思了。Overdue是延迟事件,就是说当对应的Web Task在规定的时间内没有完成,便会触发。
12. 除了刚在工具箱里的控件外,还可以手头添加其它控件,例如:发邮件控件,设置延迟时间的控件。点击Captaris Workflow,如下图:
点击Custom Workflow,如下图:
选择所需的Action,点击OK,在左边的工具栏可以显示,如下图:
Set Task Due Date 控件可以设置延迟的时间,设置完会触发Overdue事件。
参考文件:C:"ProgramFiles"Captaris"CaptarisWorkflow"Help"Captaris_Workflow_Visual_Studio_Integration.chm
In the help file, there is a step by step explanation in the section -> Custom Actions -> Core Actions -> Set Task Due Date
Send Email 控件用户发送邮件,将其拖拽到相关的Task对应的事件即可。
13. Window Task 和Web Task 基本相同。System Task是直接执行的,不需要通过web页面或者winform窗体,它可以作为一个工作流的完结,它的Ready事件中可以用来创建子工作流。
例子:根据用户选择的部门经理创建子工作流进行各部门经理审核。由于不确定用户选择部门经理的个数(每个部门经理审核都是一个Task),所以只能动态创建Task。此时,创建一个新项目的工作流,作为子工作流。
父工作流在 这个System Task的Ready事件中创建上面建好的子工作流。(Model.NewProcess()为创建的方法,这其实是创建子工作流的一个进程)
14. 开发完需要部署,右击项目名称,点击Deploy,如下图:
每修改一次工作流的内容都需要Deploy才算成功。