一步一步学习sharepoint2010 workflow 系列第二部分:sharepoint无代码工作流 第4章 SharePoint Designer工作流中的任务处理(Task processing in SPD )
通过引入任务处理到你的工作流,你可以大大提高用户和工作流之间的交互。这是因为任务处理可以确定任务分配给用户, 工作流可以进入空闲状态等待任务完成。用户很容易忘记工作流等待他们的输入。通过使用任务列表,你可以提供一个位置, 用户可以轻松找到自己未完成的任务。
SharePoint Designer 有三个主要任务相关的动作来帮助促进这个过程。分配待办事项要做的正是这个。它分配一个任务给一个用户, 然后等待这个任务完成。如果工作流需要去从用户收集信息,然后等待任务完成,分配一个表单给组和从用户收集数据动作能帮助 这个任务处理到下一个阶段。
对于更复杂的工作流需求,SharePoint Designer提供另一个动作叫启动一个任务处理动作。这个动作让设计者去调用任务处理替换基本任务处理, 你可以添加动作去应对任务相关的时间,如任务到期,删除和完成。
本章探讨SharePoint Designer工作流任务处理,将涵盖核心任务相关动作。还包含如果自定义任务处理在启动一个任务处理动作中。
4.1SharePoint Designer任务动作
SharePoint Designer工作流有几个单独的动作可以添加任务处理功能。你可以使用这些动作去创建任务、分配任务给用户、等待任务完成和当任务完成后响应。分配项动作给你这个功能。其他动作像从用户收集数据动作能方便的收集从用户获取的信息。大部分动作只需要很少时间进行配置。让我们来看看三个主要的开箱即用的SharePoint Designer工作流任务动作:
图4.1
4.1.1 Assigning To-do items(分配待办事项)
分配待办事项动作是SharePoint Designer中最简单的任务动作。你做的是创建一个任务分配给一个或多个人,然后工作流进入空闲状态,等待每个人完成任务后,继续工作流。这个动作有两个参数,任务本身和分配任务的个人或团体(图4.2)
图4.2
当你点击待办事项,向导框将出现,并提示你任务标题和描述值 图(4.3)
图4.3
你可以设置这个任务的标题和描述,但没有其他字段。标题和描述不能从其他工作流数据动态获取, 所以这个动作是只对简单任务,因为这些值必须在设计阶段键入静态文本。 然后你发布工作流包含这个动作,工作流将在这个任务中将在任务列表中创建一个任务分配给用户。 在此时,分配到任务的人无法编辑任务。他们只能完成这个任务。当用户点击任务列表中的任务项, 他们获得一个弹出表单,使用一个按钮去完成任务(图4.4)
图4.4
当所有的任务都点击完成按钮后,工作流将继续工作。
4.1.2 为调查使用表单分配给组(Using the Assign a Form to a Group action for a survey)
表单分配给组动作行为像一个调查。使用此动作和默认SharePoint调查功能不同的是,这个工作流将等待所有调查答复后再继续。 这些问题的每个答案存储在单独列的新内容类型中。这个动作接受两个参数:第一个定义问什么问题;第二个指定哪些分配哪些用户。 这些分配的用户将要求做出调查的回应(图4.5)
当你点击自定义表单,另一个向导弹出风格类似分配待办事项动作。这次不同的是,你被提示输入内容。(图4.6)
图4.6
然后你发布这个表单并且用户打开他们的任务,他们将看到他们需要填充字段以完成任务。(图4.7)
图4.7
4.1.3 使用从用户收集数据任务
从用户收集书籍动作是类似分配表单给组动作,此外它允许在表单中录入数据通过工作流去访问。 在表单中输入的数据保存到一个新内容类型的人物列;数据也存储到工作流变量。(图4.8)
图4.8
4.2 在SharePoint Designer工作流中自定义任务处理(Custom task processes in SharePoint Designer workflows)
我们已经讨论简单任务,哪些任务是分配给用户的和哪些任务是要工作流等待其完成的。这些任务的烦恼就是他们不支持复杂需求。 例如,如果你的工作流需要去允许一个任务重新分配给其他人,或者如果你需要去设置一个任务的截止日期,然后当任务过期后反应... 在这些情况下,自定义任务处理是很有用的。一个自定义任务处理工作从一个单一任务分配给一个或者多个人。 主要的区别是你可以在任务的生命周期包括任务更新,过期和调用,你可以响应事件。
在SharePoint Designer工作流可以创建自定义任务处理,通过启动自定义任务处理动作。 这个动作需要三个参数:任务处理实例,启动任务项,分配任务的用户(图4.9)
图4.9
一个新的自定义处理的设置选项卡(图4.10),任务的名称是任务X。在这个设置选项卡上你可以添加功能到任务处理。 我们将涵盖三个主要区域在这个设置选项卡上:自定义区域,任务表单字段区域和任务结果区域。
图4.10
注意自定义区域(图4.10),你可以点击进入三个区域。你可以修改整体任务处理来响应事件,如取消或完成。 其次,你可以响应任务事件,如任务分配,过期,删除,或完成。最后,你可以设置任务完成所必须的条件。 这三部分包含所有你添加动作的时间,以纳入特殊的业务需求。
在选项卡上另外有帮助的项是任务表单字段区域,可以添加自定义字段给任务编辑表单。 任务编辑表单是任务分配后,他们点击自己的任务呈现的。他们会看到默认任务字段和添加的自定义字段。
你可以使用任务结果部分为你的任务去指定自定义任务结果。一个任务结果是一个任务完成后的状态。 例如,批准和拒绝是默认的结果。你可能想自定义一个任务结果叫延期。如果添加延期的任务结果, 用户将看到第三个按钮在任务编辑表单上,在批准和拒绝按钮之后。当点击这个按钮, 任务完成,你的工作流将任务标记这一结果。
本节的其余部分将涵盖三个区域的任务处理设置。我们还将讨论分配阶段的问题,当工作流首次启动,我们如何结合表单给最终用户分配任务。当你建立工作流,这是很有用的,你不知道谁适合分配,最好由用户来决定。
为了解释自定义任务处理的设置,将用一个例子,资本开支的请求。用于资本性支出的要求, 当一个部门或个人需要使用公司的一些资本去成立新的分支机构,或者去投资基金。 资本支出很少是简单的,这时需要自定义任务处理来帮助完成。因为你可以添加特殊的业务逻辑引导开支请求的批准,从开始到结束。
要设置这个例子,首先创建一个新的基本列表叫Capital Expendiure Requests.添加两个新列给列表,一列叫Request Description 的多文本字段和一列叫Dollar Amount 的货币类型。然后在SharePoint Designer中,创建一个新的列表工作流叫Expenditure Request Approval 并选择列表为Capital Expendiure Requests.你在工作流里只添加一个启动自定义任务处理的活动。第二个参数为当前项目和分配一个用户去审批开支请求。注意,当你分配一个用户,你将被提示填写电子邮件模板。当任务处理开始,用户将收到电子邮件。在这个阶段,如果你希望你还可以设置一个任务的到期时间。当完成后,你的工作流看起来应该像图4.11.当设置到这里,单击第一个参数。这里将加载任务处理设置选项卡,后面的章节将详细讲解这些设置。
图4.11
这个例子将涵盖自定义任务处理设置选项上的三个区域。首先,我们讨论如何改变整体任务过程从自定义区域。 然后,我们自定义一个任务编辑表单并返回到自定义区域去讨论如果改变单个任务的行为。 最后我们通过设置自定义任务结果和分配阶段去完成例子。
4.2.1 自定义区域:更改整体任务处理
随着Capital Expenditure Requests列表的创建,Expenditure Request Approval 工作流的设置,和启动自定义任务处理活动的添加,现在在自定义任务处理中放入业务逻辑。首先,看看整体任务处理的事件环境。在自定义任务处理设置页面的自定义节,点击标题为更改整体任务处理行为(Change the behavior of the overalltask process)的链接。
图4.12
让我们首先注意任务处理完成事件。在资本开支请求系统,你希望审批者能够去审批,延期,或拒绝请求。按照表4.1去设置事件
表4.1
图4.13
图4.14
接下来,当开支请求列表项的变化.你不想用户提交请求批准后更新。如果请求时更新或删除, 你希望请求者和审批者被通知这个请求被取消。
若要进行此设置,拉一个并行块(点击Ribbon上的并行块)放入任务处理运行事件。接下来,添加两个步骤到这个并行块然后添加事件到每个步骤:任务处理项等待改变动作,等待删除动作。当任务处理正在运行的事件是有用的,因为如果请求是在任务处理的任何地方编辑,工作流将反应,执行等待改变和等待删除动作。并行块很方便因为你可以同时监听多个事件。因为你要监听两个事件(编辑和修改),你需要此并行块。
你添加并行块,步骤和等待动作后,需要发送邮件给请求者和审批者。之后的动作看起来像图4.15
图4.15
4.2.2 任务表单字段区域:自定义任务表单编辑
在继续修改任务处理之前,你需要配置任务编辑表单.你需要这个表单提示用户输入使用资金的时间。 在下一节你会使用到这个日期,将其分配到DateFundsAvailable变量。在自定义任务处理设置选项卡, 他们在任务表单字段(图4.16)。
图4.16
要做到这点,点击新建按钮。将弹出界面,要求你指定字段名称,描述和数据类型,添加一个新字段叫Date Funds Available 并设置它为日期类型。不要发布;当你去做的时候,审批者将收到一个新字段在任务编辑表单的顶部(图4.17)
图4.17
4.2.3 自定义区域:改变单个任务的行为
你可以继续配置任务处理。你添加动作回应审批者的任务。要做到这点,你可以在改变单个任务选项上添加动作。 要获取这个选项卡,点击改变单个任务行为的链接在自定义区域。在这个选项卡,你可以看到5个事件,可以添加业务逻辑 当任务第一次分配,进入等待状态,过期,将被删除,和完成。 见图4.18
图4.18
对于资本开支请求工作流,让我们放置动作到这些事件。对于第一个事件,你要请求过期后做出反应。 如果审批人不批准或者拒绝请求,你可以让请求升级到审批者经理。拖放升级任务动作到 任务过期时间(图4.19)。这个动作自动计算出谁审批报告,并重新分配任务给人员。
图4.19
当任务删除时它也是重要的响应。那里没有停止用户的全部控制当从任务列表中删除任务,并且工作流也需要 适当的删除回应逻辑。当一个任务删除事件内部,添加设置工作流变量动作,并选择ApprovalStatus变量分配它一个新状态。 设置变量为Canceled。最后,添加结束任务处理动作去取消任务处理并结束工作流(图4.20)
图4.20
表4.2
图4.21
4.24 任务结果区域:自定义任务结果
资本开支请求的最后一步是建立一个自定义任务的结果。如前所述,默认的2个结果 中文版本是批准(英文版本是Approved)和拒绝(Rejected) 一个任务结果是任务完成设置的状态。在资本开支请求下,任务完成后,结果为批准,延迟,或拒绝(Approved、Deferred、Rejected)
注意:任务结果节设置选项卡。默认2个结果存在。要添加第3个结果 请点击新建,并将其命名. (图4.22)
图4.22
当第三个结果被审批者选择,名称将被存储到任务结果变量。名称是按钮上的名字。 请注意,当用户审批任务,一个新选项在任务编辑表单可用。用户可以延迟请求到下一个日期,当哦你工作流将重新启动。
图4.23
图4.23显示结果,多了两个按钮将在第9章介绍。
当点击Defer按钮,任务状态设置为完成,任务结果设置为Deferred(图4.24)。点击“发布”按钮 测试你的自定义任务处理 。
图4.24
因为自定义任务处理等待任务的完成,它将响应这个按钮。在当任务完成事件,如果-否则块将 决定审批者deferred(延迟)这个请求,它将设置ApprovalStatus为Deferred。 然后回到整体任务处理事件,当任务处理完成事件将看到ApprovalStatus变量和发送邮件给请求者去通知他们 的请求被延迟(deferred).之后,工作流将完成,工作流状态将被设置为Deferred(图4.25)
图4.25
4.2.5 分配阶段
当你首次设置自定义任务处理,你分配任务处理给指定的人员。如果不知一个人需要去审批开支请求呢? 如果在设计阶段你不知道谁审批,或者你希望用户可以指定审批呢?例如,你肯能有几个团队使用相同的工作流。 最有可能的,是每个团队有不同的经理。在这种情况下,你想要发起工作流的发起人,以确定哪些经理应该 审批该过程。
图4.26
这个分配阶段,资本开支请求将被指定三次,首先2次串联。注意图4.26的两个用户是分配到第一个阶段。 然后这两个用户审批他们的请求,请求将进入针对的第3个用户审批。用户能指定请求时平行还是顺序的。 在开始自定义任务处理动作,而不是指定个人分配任务,你可以指定分配阶段(图4.27 和4.28)
图4.27
图4.28
图4.29
本章结束
本人声明