leonheart 发表于 2015-9-27 10:33:32

SharePoint工作流开发点滴(1)


[*]模板(Template),关联(Association)和实例(Instance)  模板:部署到站点集中的工作流功能(Feature),用来描述该功能所包含的程序集和表单等信息.
  关联:将工作流模板与列表(List)或者内容类型(Content Type)联系起来,并向工作流提供初始值或参数.对应的表单叫做Association.
  实例:在列表或内容类型项上启动的工作流.对应的表单叫做Initiation.
  也就是说,实例是基于关联的,而关联又是基于模板的.一个列表或者内容类型可以拥有许多来自相同工作流模板的关联,但同一时刻同一关联只能启动一个工作流实例.

[*]钝化(Dehydrated)  钝化指将工作流序列化(Serialized)并保存在数据库中.钝化后的工作流将从内存中清除.当工作流等待的事件发生时,工作流将反序列化(Deserialized)并被唤醒,然后继续它的流程.
  事务性动作(Transacted Action)和批处理动作(Batched Action)直到工作流钝化后才会提交.例如,CreateTask并没有马上创建任务,而是等到OnTaskChanged将工作流钝化之后才创建任务.所以在创建任务之后马上访问任务是错误的.

[*]Method 和 Event Handle  Method用来执行动作,例如CreateTask就是一个Method活动.
  Event Handle用来将工作流钝化,然后等待一定的事件被触发后唤醒工作流,例如OnTaskChanged就是一个Event Handle活动.
  Method的Method Invoking在Method要执行的动作之前执行,而Event Handle的Method Invoking却在Event Handle的事件触发之后执行.

[*]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
  
[*]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 Handle,因为此时工作流实例还没有启动,便没有钝化和唤醒一说,不过Associatin中的数据却可以在SPWorkflowActivationProperty.AssociationData中获取.
     
     
  
  
     
     

页: [1]
查看完整版本: SharePoint工作流开发点滴(1)