workflow 对象
workflow模板 vs. Association vs. 实例
我们经常会被一些名字混淆着:模板,Association,和实例。 如果你没有阅读过其他相关的书籍和资料也没关系,但你得弄明白接下来的内容。
理解和清楚这些混淆的内容是理解其他文档和这一系列sharepoint workflow 文章的关键。
首先,我们有一个模板。它就是发布在site collection中的sharepoint worlflow 的“特征”(Feature)。(一个“特征” Feature 是一个自定义的sharepoint 单元,如:web parts 或者 content类型)。workflow 特征使用这些forms和程序集,就好像一个结构,它储存在一个site collection 中心仓库,任何list和content可以查看它。但是,仅仅是查看,一个list是不能直接使用template的。 workflow是否自动启动? tasks应该保存在哪里? 我们需要一个特别的layer去定义一个模板的这些信息。
进入association,连接到template的列表,我们创建一个association。 一个association为模板保存了自定义的信息,并且把这个模板绑定到一个列表或者content类型。当开始运行template或者类似默认审批者(Approvers)这样的自定义workflow设定时,自定义信息就包含一个association标题。理解这些的关键是一个列表或者content类型能够拥有同一个模板的多个associations。
例如:你可以把Expense Approval和 Publish Approval (两个workflow)绑定到approval workflow 模板,每一个使用它们自己的设定和默认值,但是有一点,它们必须要有不同的名字。当我们启动一个workflow时,我创建一个association的workflow实例(不是一个模板),每一item每一次都可以运行一个association的实例。因此仅能有一个expense approval实例运行在每个list item上面,publish approval 实例也一样。但是两个都是基于 approval 模板的。因此你在visual studio中开发的是一个定义了一些特征的workflow模板。Association form 定义指定了创建association的一些可以自定义的association数据。
Initiation form 从一个association收集数据创建一个新的实例,并且使用这些数据预组装初始值。
另外一些重要的sharepoint workflow的对象是:workflow task,workflow history item,workflow modification
一旦一个workflow已运行,它可以调用任何sharepoint对象模型的代码。因为sharepoint workflow关注更多的是基于人的process。workflow的一个重要动作是在特定的association的shareponit task 列表中创建tasks。 workflow的tasks就像普通的sharepint task items一样,不同的是它们关联了创建它它们的workflow,并且能够在它们被改变或者被删除时通知它们的父workflow,以便进行适当的动作。用户可通过workflow task form编辑一个workflow task,workflow也可以响应这些编辑后的值,并且可以把task标记为完成。使用workflow的部分好处是可视化process,workflow可以记录事件日志到workflow 的history list。history items 列出了与workflow 相关数据的特殊列。例如:实例id,association id 等等。这些items将根据对应的实例id显示在相应的workflow状态页面里,但是一些workflow在progress中有时候需要调整,如:需要加入一个新的approver,due date 需要修改,或者修改一个像 max limit 的参数。 为了让用户可以修改在progress中的workflow,sharepoint有一个叫做workflow modificaitons的东西。 这个modification对象提供了一个和worflow沟通的渠道,一旦注册了一个workflow,你就可以在调用modification时唤醒这个workflow,一个modification form 收集modification需要的数据,一旦workflow被唤醒,它就可以完成任何修改。通常,在你需要修改一个正在运行的workflow但不又想修改tasks时使用modification.
理解这些基本的sharepoint workflow的概念,将会帮助你理解创建workflow时每个部分是1.怎么联系起来的。总的来说,下面是一个workflow的生命周期:
2.开发者开发一个workflow template。
3.发布这个template到一个site collection。
4.关联一个workflow template 到一个list 或者 content 类型来创建一个新的association。
5.对一个item开始一个workflow association的实例。
6.运行workflow,创建一些tasks和history items
7.Workflow的owner在任何时候通过modification修改此workflow
浙公网安备 33010602011771号