大森林
寻找小麻雀
 

workflow 对象

workflow模板 vs. Association vs. 实例

我们经常会被一些名字混淆着:模板,Association,和实例。 如果你没有阅读过其他相关的书籍和资料也没关系,但你得弄明白接下来的内容。

理解和清楚这些混淆的内容是理解其他文档和这一系列sharepoint workflow 文章的关键。

首先,我们有一个模板。它就是发布在site collection中的sharepoint worlflow 的“特征”(Feature)。(一个“特征” Feature 是一个自定义的sharepoint 单元,如:web parts 或者 content类型)。workflow 特征使用这些forms和程序集,就好像一个结构,它储存在一个site collection 中心仓库,任何listcontent可以查看它。但是,仅仅是查看,一个list是不能直接使用template的。 workflow是否自动启动? tasks应该保存在哪里? 我们需要一个特别的layer去定义一个模板的这些信息。

进入association,连接到template的列表,我们创建一个association 一个association为模板保存了自定义的信息,并且把这个模板绑定到一个列表或者content类型。当开始运行template或者类似默认审批者(Approvers)这样的自定义workflow设定时,自定义信息就包含一个association标题。理解这些的关键是一个列表或者content类型能够拥有同一个模板的多个associations

例如:你可以把Expense Approval Publish Approval (两个workflow)绑定到approval workflow 模板,每一个使用它们自己的设定和默认值,但是有一点,它们必须要有不同的名字。当我们启动一个workflow时,我创建一个associationworkflow实例(不是一个模板),每一item每一次都可以运行一个association的实例。因此仅能有一个expense approval实例运行在每个list item上面,publish approval 实例也一样。但是两个都是基于 approval 模板的。因此你在visual studio中开发的是一个定义了一些特征的workflow模板。Association form 定义指定了创建association的一些可以自定义的association数据。 

Initiation form 从一个association收集数据创建一个新的实例,并且使用这些数据预组装初始值。

另外一些重要的sharepoint workflow的对象是:workflow taskworkflow history itemworkflow modification

一旦一个workflow已运行,它可以调用任何sharepoint对象模型的代码。因为sharepoint workflow关注更多的是基于人的processworkflow的一个重要动作是在特定的associationshareponit task 列表中创建tasks workflowtasks就像普通的sharepint task items一样,不同的是它们关联了创建它它们的workflow,并且能够在它们被改变或者被删除时通知它们的父workflow,以便进行适当的动作。用户可通过workflow task form编辑一个workflow taskworkflow也可以响应这些编辑后的值,并且可以把task标记为完成。使用workflow的部分好处是可视化processworkflow可以记录事件日志到workflow history listhistory items 列出了与workflow 相关数据的特殊列。例如:实例idassociation id 等等。这些items将根据对应的实例id显示在相应的workflow状态页面里,但是一些workflowprogress中有时候需要调整,如:需要加入一个新的approverdue date 需要修改,或者修改一个像 max limit 的参数。 为了让用户可以修改在progress中的workflowsharepoint有一个叫做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,创建一些taskshistory items

7.Workflowowner在任何时候通过modification修改此workflow

posted on 2008-07-15 17:38  大森林  阅读(178)  评论(0)    收藏  举报