Teamplate 工作流开发技术总结(1)

本文转自 http://www.cnblogs.com/nehc/archive/2007/11/16/961417.html

1           Teamplate中的几个基本概念

说明:作为开始之前预备知识,首先介绍一下Teamplate中的几个基本概念,包括Model、Process、Task、User等。

1.1               Model

Model即流程模板,是我们为一个业务流程定义的一个模板,在这个模板设计时,我们需要为它定义好所有的业务步骤(Task)、所有可能的流转线、以及各种流转的条件(业务规则),具体怎样设计一个Model,请看下文的怎样设计流程模板。

1.2               Process

Process是根据一个现有的Model创建的一个具有实际意义的工作流程,例如创建好一个采购订单的模板以后,我们就可以在这个模板的基础上创建一个新的采购订单流程。

对于Model和Process对象之间的关系我们可以这么来理解,如果把一个Model看作一个类的话,那么Process就相当于这个类的一个实例,每个Model可以产生多个实例,一个Process从创建到走完在Model中定义好的整个流程后,直到最后结束就是这个Process的整个生命周期。

1.3               Task

TaskModel中有实际意义的每个步骤,例如一个采购订单的Model可以分解为创建订单-订单审批-采购合同-仓库收货-财务付款这几个Task

1.4               User

User 对象放到这里来讲主要是因为在Teamplate本来就是一个基于人员的工作流系统,用户权限无处不在,包括Teamplate中虚拟的每个文件夹,以及文件夹中的每个文档包括ModelProcess对象,以及Model中的每个Task都需要设置用户权限。

Teamplate中有两种类型的User,一种是在Teamplate中创建的用户,另一种是从AD或者Windows本地用户中导入的用户,如果要在应用程序中集成Windows或者AD对用户进行权限设置和验证的话就需要采用后一种类型的用户。
 
 

1           怎样设计流程模板(Model

说明:设计流程模板的意义主要实现将流程设计跟应用程序开发分开,根据具体业务数据实现流程自动流转,无需在应用程序中控制流程的流转。

1.1               流程模板的设计环境:

流程模板的设计在TeamplateIDE环境进行,在Captaris Workflow Client工具中新建一个流程模板或者选择已经存在的流程模板进入IDE环境。

1.2               可以在流程模板中实现的功能:

a)         设计工作流流程模板

根据业务流程的需求设置好对应的处理任务(Task),根据流程流转的规律用链接线(Link)将任务进行链接,并在数据对象的XML对象中定义好在流程流转过程中用于控制流程流转的一些关键字段;

b)        添加流程的业务规则

在需要设置流程流转规则的链接线上加上业务规则,可以使用业务规则向导(通过双击链接线可进入业务规则向导)进行业务规则配置,也可以在流程模板的代码事件中(ReadyCompleteExecuteFailedOverdueReset)直接输入代码;

c)        设置流程任务的执行权限

权限是针对Task对象设置的,选择要设置权限的Task然后在属性栏设置该TaskResponsibleId属性就可以指定这个Task的执行权限。

d)        使用Actions

在流程模板设计过程中可以使用Teamplate提供的几个标准Actions或者Custom Actions实现一些辅助性的功能。目前Teamplate 5.0提供了BizTalkCoreOfficeSharePointRightFax等几个标准Actions。在Task的事件中(ReadyCompleteExecuteFailedOverdueReset)使用这些Actions提供的功能在实际应用中是相当有用的,比如当流程流转时,自动给责任人发送邮件通知,或者当任务过期时自动Share任务等等。具体的这些Actions的用法请查看Teamplate帮助文档的Developer Guide-Actions中的说明。同时我们可以自己开发Custom Actions来实现我们特定的需求,Captaris公司提供了一个开发Custom ActionsSDK包,里面有一个很详细的例子说明怎样开发一个Custom Actions,在5.0的安装程序中可以找到。
 

1           应用程序中嵌入相应流程控制处理

流程模板设计好以后,我们需要开发对应每个Task的执行功能,也就是相关的应用程序,TeamplateTask可以是Windows Form,也可以是Web Form以及InfoPath表单或者其它的方式。因为精量项目是采用的BS构架的系统,所以本文主要就Web Form的方式做一些总结,设置Task的执行界面是在TaskDefaultForm中设置的,另外还需要设置流程模板的IIS Server以及IIS的物理路径,这两个参数是通过IISServerName属性和IISDirector以属性来设置的,下面的说明中我们主要就用户认证,怎样发起一个新的流程,怎样进行工作流的流转这几个问题来做一个说明。

1.1               用户认证

TeamplateAD的集成认证:Teamplate中导入AD用户后可以通过AD做集成认证,具体的方式为通过Teamplate.BLL提供的BSession对象来进行认证,采用BSession.Connect(“”, “”)方法来做用户登录,登录成功后可以获得用户Token,下面是一段用户登录的代码片断:

                     Teamplate.BLL.BSession bSess = new Teamplate.BLL.BSession();

                     bSess.Connect("","") ;

                     string token = bSess.GetToken() ;

                     bSess.Dispose();

Token是加过密的一个用于用户认证的字符串,在下文中我们可以看到怎样来使用这个Token

1.2               新建一个流程

对于一个已经创建好的Teamplate流程模板(Model),现在我们来使用它,首先我们要新建一个流程(Process),创建一个新的工作工作流程是使用Teamplate.BLL提供的BProcess对象的Add()方法来实现的,Add方法参数说明请参考Teamplate的帮助文档中的Workflow API Guide,下面是一段创建一个新流程的代码片断:

                int FolderId = TeamplateLib.GetFolderId("Processes");

                int ModelId = TeamplateLib.GetModelId("Purchase Order");

                int ModelOwner = TeamplateLib.GetModelOwner(ModelId);

                int UserId = TeamplateLib.GetUserId(username);

                BProcess process = new BProcess();

                process.SetSessionToken(token);

               

                int ProcessId = process.Add(this.PONo, FolderId, ModelOwner, ModelId);

                process.Load(ProcessId);

                int TaskID = process.GetNextTaskID(ModelOwner,BProcess.TaskStatus.Ready);

                process.UpdateTask(ProcessId,TaskID,DateTime.Today.AddDays(7),UserId,"Normal");

下面对代码做一些说明:

前面四行代码先不看,第5和第6行代码,先声明一个BProcess对象,然后对它进行SetSessionToken而这个Token就是前面我们登录时获取的那个用户认证字符串!只有对BProcess对象设置了这个Token值后你才有权限使用Add方法新建一个流程,现在应该对Token这个对象有更深的认识了吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值