SharePoint工作流开发点滴(1):一些概念

本文介绍了工作流开发中会用到的一些概念,比如模板、关联、实例、以及工作流生命周期中的各个状态和需要的表单。

  1. 模板(Template),关联(Association)和实例(Instance)模板:部署到站点集中的工作流功能(Feature),用来描述该功能所包含的程序集和表单等信息.关联:将工作流模板与列表(List)或者内容类型(Content Type)联系起来,并向工作流提供初始值或参数.对应的表单叫做Association.实例:在列表或内容类型项上启动的工作流.对应的表单叫做Initiation.

    也就是说,实例是基于关联的,而关联又是基于模板的.一个列表或者内容类型可以拥有许多来自相同工作流模板的关联,但同一时刻同一关联只能启动一个工作流实例.

  2. 钝化(Dehydrated)钝化指将工作流序列化(Serialized)并保存在数据库中.钝化后的工作流将从内存中清除.当工作流等待的事件发生时,工作流将反序列化(Deserialized)并被唤醒,然后继续它的流程.事务性动作(Transacted Action)和批处理动作(Batched Action)直到工作流钝化后才会提交.例如,CreateTask并没有马上创建任务,而是等到OnTaskChanged将工作流钝化之后才创建任务.所以在创建任务之后马上访问任务是错误的.
  3. Method 和 Event HandleMethod用来执行动作,例如CreateTask就是一个Method活动.Event Handle用来将工作流钝化,然后等待一定的事件被触发后唤醒工作流,例如OnTaskChanged就是一个Event Handle活动.Method的Method Invoking在Method要执行的动作之前执行,而Event Handle的Method Invoking却在Event Handle的事件触发之后执行.
  4. Correlation Token将若干相关联的活动映射到同一集合的标识符,例如给CreateTask,OnTaskChanged和CompleteTask指定相同的Correlation Token,则这几个活动被关联到同一个任务.在SharePoint Workflow Actions中,Correlation Token大致按照下表来分组指定:
    工作流 任务 修改
    OnWorkflowActivated  

    OnWorkflowItemChanged

    OhWorkflowItemDeleted 

    SetState

    SendEmail

    UpdateAllTasks

    CreateTask  

    CreateTaskWithContentType

    UpdateTask

    DeleteTask

    CompleteTask

    RollbackTask

    OnTaskChanged

    OnTaskDeleted

    OnTaskCreated

    EnableWorkflowModification  

    OnWorkflowModified

  5. InfoPath表单
    表单类型 宿主ASPX 需要执行的动作 Event Handle 接收数据的属性
    Association CstWrkflIP.aspx 建立工作流模板和列表(或者内容类型)之间的关联
    Initiation IniWrkflIP.aspx 启动工作流实例 OnWorkflow Activated SPWorkflowActivationProperty.InitiationData
    Task WrkTaskIP.aspx 更改了任务 OnTaskChanged OnTaskChanged.AfterProperties
    Modification ModWrkflIP.aspx 修改工作流 OnWorkflowMosified OnWorkflowMosified.ContextData

    Association表单不接受数据,也不会存在相应的Event Handler,因为此时工作流实例还没有启动,便没有钝化和唤醒一说,不过Associatin中的数据却可以在SPWorkflowActivationProperty.AssociationData中获取.

发表评论

电子邮件地址不会被公开。 必填项已用*标注