一步步学习微软InfoPath2010和SP2010--第十一章节--创建审批流程(9)--工作流审批者
还有最后要完成的一个项目。批准者名和emails还是空的。每次表单被提交时,工作流需要发送邮件到某人,这样他们知道该他们采取行动了。在工作流可以被创建发送邮件前,你需要知道批准者们是谁。
对于Contoso’s reimbursement表单项目,要求如下:
1. 因为用户配置文件要随时更新,每个用户都有精确的经理名。用户配置文件服务用来获得启动者的经理名。
2. 经理将被一个人员选取器选出,这样他们可以(需要批准此申请的)选择VP名。
下一步将在表单中植入功能来获得合适的用户名。在第九章节,你了解了使用用户配置文件服务获得用户信息。本表单中,用户配置文件服务用来获取启动者经理名。获得当前登录用户信息的方式之一是只返回登录名。你在本章中已使用过此函数。当你想获得更多用户名详细信息时,要使用用户配置文件服务。
下面练习中,你将为下一个approver名创建新域,并在每步approval流程中填充它。通过approval流程,每次表单被提交,下一个approver名需要被决定。NextApprover域将要被使用。第一个approver是manager。
1. New视图功能区“数据”选项卡,点击“表单加载”按钮。
2. 注意New Form规则是禁用的。点击下拉框,选择“启用”。
一个数据连接已经被创建。它接收关于登录用户来自用户配置文件服务web service的数据。New Form规则第一次查询用户配置文件服务,然后设置Manager域为登录用户的经理。然后设置申请者FullName域为当前用户全名。当表单第一次被提交时,因为下一个approver是manager,你将设置NextApprover域为那个值。
3. 在New(默认)视图中,双击提交按钮,点击“管理规则”。
4. 点击选择Set Fields规则,点击“添加”按钮添加另一个操作,选择“设置域值”。
5. 设置NextApprover域为Manager域值(Requestor Group),点击“确定”关掉所有对话框。
现在第一个提交按钮设置两个域。之前联系中,你创建规则设置FormStatus为Manager Approval。现在,新规则设置NextApprover域为Manager。这个manager域将有个特定的名字,第一封邮件发给他。
6. 允许approver从人员选取器选择next approver的名字。切换回Approvals视图
7. 展开Approvals节和Manager_Approval节看到PickTheVP节。
本节用来作为人员选取器控件。如果你看不到右边的域,点击功能区“数据”选项卡,点击“显示字段”按钮。
8. 拖动PickTheVP到表单,在Manager Approval表单的提交按钮上空间内。空间左边输入Pick the VP:。
注意:人员选取器选中的人是下一个审批者,所以当manager点击提交时,那个人的登录名出现在NextApprover域中。
9. 在Manager Approval节中,点击选中提交按钮,在“规则”窗格,点击选择Approved规则,点击“添加”按钮,选择“设置域值”。
10. 在“域”框中,选择NextApprover域。
11. 点击“fx”按钮,点击“插入域或组”,在PickTheVP节中,选择AccountID域。
注意:Account ID是在人员选取器中选中的人的域\用户名。你想确保当挑选VP时,manager不能提交表单(不在人员选取器中选择)。典型地,你需要验证规则,但是因为验证规则不能创建在人员选取器中,另一个方法是,如果人员选取器为空,则提交按钮禁用。
12. 在Manager Approval节中,选中提交按钮,在“规则”窗格,点击“新建”,选择“格式”。
13. 命名Disabled,设置条件“AccountID为空”,选中“禁用此控件”。
14. 如果表单被拒绝,NextApprover域需要清空。点击选中Rejected规则,点击“添加”,选择“设置域值”。设置NextApprover域为空值,点击“确定”。
表单完成后NextApprover域也需要清空,因为无论它最后是否被拒绝,都没有NextApprover了。
15. 在VP Approval节中,点击选中提交按钮。在“规则”窗格,选择”Set Approver Info规则。
因为这个规则在每个提交的表单上运行。点击“添加”,重复步骤14。
16. 快速发布。
next approver域将在正确的时间有正确的值,它可以被用作栏。有一个next approver名的域比提升所有不同域为栏到SharePoint更加高效。特别是当approval流程变得更长而且更加复杂,含多级审批。谈到SharePoint视图和工作流时思考一下全局。有一个你经常使用做next approver的域是个好的标准的实践。
Next Approver域也可包含SharePoint组名。如当另一级审批需要添加----入发送表单到Accounting部门----SharePoint组Accounting Team。提交上的操作将是设置NextApprover域为Accounting Team。