不同的审批中,不同的操作将以指定次序发生。而且,不同操作会根据表单是批准还是拒绝相应发生。然而,无论表单是批准还是拒绝,当前登录用户的名字和当前日期都会被保存。根据你定义的规则,下面是表单的行为:
1. 无条件
当提交按钮被点击时,发生下列操作:
A. Approver域被设置为当前登录用户名。
B. Approval Data域被设置为当前日期。
2. 批准
当表单被批准时,FormStatus值被设置为VP Approval。VP将是下一个批准表单的人,并且VP approval节在manager approval之下。
3. 拒绝
当表单被拒绝时,FormStatus值被设置为Rejected。
下面练习中,你将创建操作规则,当提交按钮被点击时执行。
准备:设计模式打开ContosoReimbursementform.xsn,切换到Approval视图。
1. 双击选中“提交”按钮,点击功能区“管理规则”。
2. 点击“新建”选择“操作”,命名Set Approver Info。
3. 在“运行这些操作”,点击“添加”,选择“设置域值”。
4. 点击“域”框旁的域选取器。
5. 在Manager_Approval节,选择ManagerApprover域,点击“确定”。
6. 点击“fx”按钮,点击“插入函数”。
7. 选择userName函数,点击“确定”,并点击“插入公式”窗口的“确定”。
8. 点击“确定”关闭规则详细信息。
9. 再次点击“添加”,选择“设置域值”。重复步骤4-7,ManagerApprovalDate域值Today()。
10. 在“规则”窗格,点击“新建”,选择“操作”,命名Approved,条件ManagerApproval等于Approved(已批准),点击“确定”。
11. 添加一个设置域值操作。FormStatus设置为VP Approval,点击确定。记住是大小写敏感的。
12. 点击“新建”按钮创建另一个操作规则,命名Rejected,设置条件FormStatus等于Rejected。
注意:正如步骤11,不需要点击“fx”按钮,可以直接输入文本。
13. 设置完所有值,表单需要提交并关闭。点击“新建”,选择“操作”。命名Submit and Close。无条件。创建两个操作:提交表单到SharePoint(Submit Data),并关闭表单。
现在提交按钮有5个规则。
自动化这个表单幕后需要很多操作。所有这些复杂性对于填表人都是透明的。Approval流程易于理解且非常简单。
在下面的练习中,你将复制Manager Approval节来创建另一个approvals。
1. 切换到Approvals视图,选择Manager Approval节,在左下角点击“节”,按下Ctrl+C复制这个节。
2. 按下右箭头知道光标在节右边,粘贴。
3. 在新节的标题,改变Manager为VP。现在所有的VP域需要使用,而不再是manager域。右击VP节左下角的“节”,选择“改变绑定”。
4. 控件需要绑定到VP Approval节,而不是Manager Approval,选择VP_Approval节,点击“确定”。
现在每个单独控件需要改变绑定。
5. 在VP Approval节,右击Approve选项,选择“改变绑定”。在VP_Approval节,选择VPApproval域,点击“确定”。
6. 使用步骤5的方法,改变下列控件的绑定。
7. 已计算值Approved by域有点不同。点击选中这个控件,按下Alt+Enter打开属性。XPath域为空,所以计算值需要重新创建。如果XPath不为空,清空。点击旁边的“fx”按钮。
8. 创建下列公式,连接VPApproval、 By:和VPApprover,点击两次“确定”。
现在Approve选项需要重新设置默认值。
9. 选中Approve选项,打开属性,选中“默认情况下选中此按钮”,点击“确定”。
现在规则需要稍微修改下。
10. 双击选中Approve选项。点击“管理规则”按钮,有个规则Disabled。点击链接打开规则条件。
11. 修改条件中的文本为VP Approval。
12. 修改approval节中六个控件,格式规则与manager approval规则相同,除了条件是“VP Approval”。
13. 提交按钮也要修改。在VP Approval节中,选中提交按钮。在“规则”窗格中,点击“Set Approver Info”规则。在“运行这些规则”处,点击Set a field’s value: ManagerApprover =username()。
14. 更改ManagerApprover为VPApprover,点击“确定”,再次点击“确定”保存操作。
15. Approval Date同样操作,选择VPApprovalDate。
16. Approved和Rejected规则后的条件也需要修改。在VP_Approval节中,改变每个规则后的条件,这样选择VPApproval域。
17. 在VP Approval节中,点击选择提交按钮。选中Approved规则,设置FormStatus为Completed。
当Manager填写完approval信息时,你不想看到VP Approval节。
18. 选中VP Approval节。
19. 创建格式规则Hidden。条件是FormStatus等于Manager Approval,选中“隐藏此控件”复选框。
表单审批过程几乎完成。表单第一次提交后,它自动在下次打开时切换到Approvals视图。最后只读视图需要配置。在这个视图上看审批过程。
作为表单生命周期的一部分,你不想任何表单的数据在表单完成已批准后被修改。因此你使用只读视图和表单加载规则,当表单状态为已完成时,它自动切换到那个视图。这维持了数据的完整性。
下面练习中,你将复制approvals视图到read-only视图。
1. 按下Ctrl+A,复制。
2. 在功能区,选择Read Only视图,粘贴。
3. 在“页面设计”选项卡,“视图”部分,点击“属性”。
4. 在“常规”选项卡,选择“只读”复选框,点击“确定”。
5. 点击“文件”菜单,点击“快速发布”。
现在只读视图真正只读了。记住当最后一个审批者批准表单时,提交按钮设置FormStatus为Completed。如果FormStatus等于Completed或Rejected时,表单加载规则自动切换到只读视图。
小贴士:只读视图中,如果你使用了附件控件,附件将不能打开和查看。解决办法是不选中只读复选框,而是每个控件单独设置为只读。
自由发布和测试表单。