SharePoint工作流开发点滴(1) - 一些概念
2007-01-04 09:15 Windie Chai 阅读(1962) 评论(1) 编辑 收藏 举报- 模板(Template),关联(Association)和实例(Instance)
- 钝化(Dehydrated)
- Method 和 Event Handle
- Correlation Token
- InfoPath表单
模板:部署到站点集中的工作流功能(Feature),用来描述该功能所包含的程序集和表单等信息.
关联:将工作流模板与列表(List)或者内容类型(Content Type)联系起来,并向工作流提供初始值或参数.对应的表单叫做Association.
实例:在列表或内容类型项上启动的工作流.对应的表单叫做Initiation.
也就是说,实例是基于关联的,而关联又是基于模板的.一个列表或者内容类型可以拥有许多来自相同工作流模板的关联,但同一时刻同一关联只能启动一个工作流实例.
钝化指将工作流序列化(Serialized)并保存在数据库中.钝化后的工作流将从内存中清除.当工作流等待的事件发生时,工作流将反序列化(Deserialized)并被唤醒,然后继续它的流程.
事务性动作(Transacted Action)和批处理动作(Batched Action)直到工作流钝化后才会提交.例如,CreateTask并没有马上创建任务,而是等到OnTaskChanged将工作流钝化之后才创建任务.所以在创建任务之后马上访问任务是错误的.
Method用来执行动作,例如CreateTask就是一个Method活动.
Event Handle用来将工作流钝化,然后等待一定的事件被触发后唤醒工作流,例如OnTaskChanged就是一个Event Handle活动.
Method的Method Invoking在Method要执行的动作之前执行,而Event Handle的Method Invoking却在Event Handle的事件触发之后执行.
将若干相关联的活动映射到同一集合的标识符,例如给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 |
表单类型 |
宿主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中获取.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述