一步步学习微软InfoPath2010和SP2010--第十章节--与SharePoint Designer工作流的InfoPath集成(2)--工作流初始化

        当创建工作流时,首先要考虑的因素是决定怎样触发工作流。

         启动选项:工作流中决定工作流如何出发的这个设置称为启动选项。它包括:

1.      允许手动启动此工作流

        选中时,允许用户点击按钮显式启动工作流。与之相关的是“需要管理列表权限”复选框,选中时只有某些人可以手动启动工作流。管理列表是个特殊的权限,默认下是设计与完全控制权限级别的一部分。

2.      创建项目时自动启动工作流

        选中时只要项目添加到列表或库,就自动启动工作流。

3.      更改项目时启动工作流

        选中时,每次项目被修改就会触发工作流。

        你可以选择多个启动选项。


附加:管理列表权限

        到底什么是管理列表权限,我如何找到它?它是设计和完全控制权限级别的一部分,但是这里有个快速创建(只用于)管理列表的自定义权限级别:

1.      从网站集的根网站,点击“网站操作”,选择“网站权限”。

2.      点击“权限级别”,点击“添加权限级别”。

3.      选中“管理列表”。

4.      点击“创建“。

        现在你有一个自定义权限级别。在列表或库中拥有此权限的人可以手动启动(选中复选框“需要管理列表权限”的)工作流。

        理解下面工作流初始化概念是重要的:

1.      如果工作流手动启动,作为发布过程的一部分,一个InfoPath表单被自动创建。这个表单称为初始表单,因为它用于工作流初始化。默认地,初始表单只包含两个按钮:启动和取消。如果你想从启动工作流的人获得更多信息,需要添加初始化参数。

2.      初始表单参数是添加到初始表单的域。这类域和在SharePoint列表中创建的栏目类型(如文本、日期和选项)相似。当这些参数被创建时,它们自动出现在InfoPath初始表单中。

         典型地,工作流并不手动触发;它们完全自动化且在后台运作。SharePoint站点用户不需要知道它们如何运作,它们在做什么。并且,用户不必去担心忘记运行工作流。初始表单只会在用户手动启动工作流时使用。

        在我们这个例子公司内,所有的公司政策都是在单个文档库储存的文档。一些人负责编辑政策,大多数公司职员可以看到只读的文件。当政策编辑者决定编辑完成,政策需要经过批准流程才能被公众看到。政策编辑者有选择任何指定政策审批者的自由。对于Contoso公司政策,他们使用SharePoint内置的内容审批设置。因此,当文档被审批时,内容审批自动设置为已批准。

       下面练习中,你将创建简单的批准工作流。使用文档作为例子,它可以被证实,工作流对于任何SharePoint项目都适用,无论是列表项目、(库中的)文档或者电子表单或者提交的InfoPath表单。

       准备:在浏览器中打开SharePoint站点,准备新建文档库。也用SharePoint Designer 2010打开SharePoint站点。

1.      新建文档库Policies,输入描述This library contains all of the company policies。其它默认,点击创建。


2.      点击“库设置”,在“常规设置”,点击“版本控制设置”。在“提交的项目是否需要审批”下选择“是”,点击“确定”。


3.      在工作流创建之前,看一下内置的内容审批功能。在库中新建文档,命名Dress Code Policy.docx保存。

        注意到审批状态栏目为待定。


        现在是时候创建工作流。

4.      在SharePoint Designer,左侧导航窗格点击工作流。

5.      在功能区点击“列表工作流”,然后选择Policies。

6.      命名为Policy Approval。输入描述Manually initiated approval workflow on the policies library,点击“确定”。


7.      在功能区,点击“启动窗体参数”,点击“添加”。

8.      使用人员选取选项,命名为Approvers,输入描述Select one or more people who should approve this document。在“信息类型域”,选择“人员或组”,点击“下一步”。


9.      使用下表中值填写域设置。完成后,点击“完成”,点击“确定”。



10.  现在启动参数已经创建,你需要一个审批流程。在功能区,点击“操作”在“任务操作部分”,选择“开始审批流程”。

        这类操作称为Task Process Designer。


11.  点击“这些用户”来选择审批者。

12.  这个案例中,参与者也是审批者,所以启动窗体参数Approvers将被选中作为参与者。点击“参与者”旁边的“地址”图标,双击“工作流查找用户”。

13.  在“数据源”域,选择“工作流变量和参数”。在“源中的域”选择参数:Approvers,然后在“”,选择“登录名(以分号分隔)”。点击“确定”关闭“查找用户或用户组”对话框,点击“确定”关闭“选择用户”对话框。

14.  在“标题”域,输入Policy for approval,在“说明”输入Please take a look at this policy, and approve or reject it。在“每个任务的持续时间”域,输入数字1(默认天),点击确定。

        小贴士:当每个任务的持续时间是1天时,如果被分配的任务没有在一天内完成,被分配者将收到自动“过期”邮件。

15.  点击功能区的“发布”按钮。

16.  回到浏览器的Policies库,点击Dress Code Policy文档下拉框,点击“工作流”。

17.  在“开始新工作流”节,点击Policy Approval。

        启动窗体呈现一个文本框,可以选择被指派的审批者。


18.  填写一个或更多人,点击“启动”。

        重要:如果SharePoint服务器向外发送邮件设置被正确设置的话,工作流邮件将自动发送到批准者和启动者。

        工作流第一次启动时,一个和工作流同名的新栏目被添加到库中。在Policies库中,注意有个新栏Policy Approval。工作流已经启动了,所以它显示“进行中”。当你点击“进行中”链接时,你被带到工作流状态页面。这显示了当前任务被分配给谁,以及工作流历史,它列出“工作流中到现在发生的每个活动”。现在启动表单已经被创建(步骤17表单被填写),它可以简单自定义,因为它是一个InfoPath表单。
         在下面练习中,你将自定义policy approval工作流的启动表单这样它看起来更加优美。
1. 在Policy Approval工作流编辑页,点击面包屑导航的“Policy Approval”。


2. 在“窗体”部分,点击“Policy Approval.xsn表单。


         注意:任何时候如果工作流选中了手动启动选项,当它发布时,启动表单被生成,它将和工作流同名。
3. 光标放在Approvers上的空行,输入Policy Approval Workflow。


4. 在功能区“文件”选项卡,使用“字体样式”部分,改变字体为“标题”。并居中。

5. 在“页面设计”选项卡,“主题”部分,点击选择主题“体育场-沙洲”。

6. 现在发布表单。点击左上角“快速发布”按钮,发布前保存表单到硬盘。


7. 发布成功后点击“确定”,退出InfoPath。
8. 上载另一个文档到Policies库,手动启动工作流。你将看到新的修改过的启动表单。
        小贴士:注意不必重新发布工作流来应用新发布的InfoPath表单。

        为了在工作流中创建内容审批,如果文档被批准,则自动设置内容审批为“已批准”;否则,设置为“被拒绝”。这要求添加一个新条件到工作流。
        下面的例子,你将添加此功能到库的内容审批。当没有工作流时,接收到需要审批的项目的通知的唯一方法是在列表或库设置SharePoint通知。使用这个解决方案,只有指定审批者将收到邮件。
1. 定位光标在“启动批准流程”操作之下的线上,输入if(如果),按下Enter键。这将展示所有可选条件列表,选择“当任何值等于值”。


        你要设置的第一个条件是核实项目被批准。发生在第一个操作中的批准流程有一个变量。你将使用它。
2. 点击第一个蓝色值名,点击fx按钮,选择“工作流变量和参数”作为数据源,选择“IsItemApproved”作为域名,点击“确定”。


3. “等于”之后,第二个值选择“是”。
4. 选择第一个条件,在功能区,点击“Else-if分支”按钮。
        现在你有个结构,但是操作需要在语句中每个条件后添加。

5. 放置光标到第一部分(开始键入或使用功能区中的“插入”组。)。在功能区,点击“操作”按钮,选择“设置内容审批状态”。
6. 设置审批状态为“已批准”。使用批注This policy has been approved.
7. 在Else语句下,添加另外一个操作“设置内容审批状态”,设置状态为“已拒绝”,使用批注This policy has been rejected。


8. 发布工作流。
9. 添加新文档到库,然后手动触发工作流。点击库中文档下拉框,选择“工作流”。点击“Policy Approval”工作流。输入一个审批者名,启动流程。在Policies库中,点击Policy Approval栏的“进行中”。
10. 点击标题打开工作流任务。本案例中是Policy for approval。


11. 点击批准按钮。回到Policies库。


        审批状态栏已经被设置为已批准,并且Policy Approval栏也显示已批准。使用内容审批的好处是每个公司政策可以被政策编辑者处理,但是修改不被公众看到,只要项目被批准。
        这是相当简单的例子,展示了启动表单的样子以及如何自定义。然而,在现实世界,工作流被创建、修改、再次发布,然后再修改,它们经历了许多交互。当工作流被修改时,显示表单发布行为是重要的。
       下面的练习中,你将添加新的启动表单参数。当新的参数被添加时,InfoPath启动表单相关空间不自动修改。你将学会如何在现实世界,多次更改工作流。一个High Priority复选框将被添加,这样到期日根据优先级变化。
1. 在SharePoint Designer中Policy Approval工作流内,点击启动“表单参数”按钮,点击“添加”。
2. 命名为High Priority。输入描述Is this a high priority approval?。在“信息类型”域,选择“是/否(复选框)”,点击“下一步”。


3. 选择默认值“否”。点击“完成”,点击“确定”。
        如果政策是高优先级,批准人物将在一天内到期,否则五天。
4. 在功能区点击“局部变量”,点击“添加”。
5. 命名Due in Days。定义类型为“数字”,点击“确定”。


6. 在工作流启动审批流程操作之上,添加新的条件“如果任何值等于值”,数据源选择“工作流变量和参数”,源的域选择“参数:High Priority”,点击“确定”。


7. “等于”之后,选择“是”。
8. 在功能区,点击“Else-if分支”按钮。
9. 如果审批是高优先级的,审批者有一天完成任务;否则有5天。在Else-if分支第一部分,插入“设置工作流变量”操作,变量选择“变量:Due in Days”,设置为1.
10. 在Else下,设置相同变量为5.在“”操作中,点击链接“参数:Approvers”。


        注意:工作流运行中,变量是暂时储存值的方法。现在我们获得了天数的值,并将其保存在变量中,需要时可以使用它。
11. 在“每个任务的持续时间”旁点击“fx”按钮。数据源选择“工作流变量和参数”;域选择变量“Due in Days”,点击“确定”。


12. 再次点击“确定”,点击“发布”按钮。
         一个错误消息出现,这是本练习重点。错误信息指示你添加了high-priority启动表单参数,但是新域还不在启动表单上。点击“确定”关闭消息框。


        你有两个不同方法解决此错误,都需要使用工作流设置对话框
13. 在功能区,点击“工作流设置”按钮
        注意“窗体”部分,“文件名”下,Policy Approval.xsn需要更新。
        一种方法是简单删除表单。下次工作流被发布时,会自动生成。另一种方法是打开表单,手动添加high-priority域到表单。当你遇到此错误时,你只需权衡你的选项:要对表单做多少自定义,和自从上次发布到现在多少域被修改了?重做自定义更快(本案例是标题和颜色),还是保留现有表单,手动添加(或移除)修改的域更快?我们选择第二个选项:修改表单。
14. 点击名字打开表单Policy Approval.xsn。


15. 下面信息弹出警告你一个域被修改了,点击“确定”。


16. 在表单布局,在Approvers行下插入新行,拖动high-priority域到新行。输入Is this a high priority approval?。
17. 点击“快速发布”保存,并关闭InfoPath


18. 在SharePoint Designer中“工作流设置”选项卡,再次发布工作流。这次没有错误出现。
        现在工作流被改善,以不同方式测试一下。再添加新文档,手动启动policy approval工作流。选择high priority,注意相关任务到期日期自动设置为一天(从分配任务日期算起)。否则,每个审批者有5天。
        在之前的例子中,你了解了当自定义关联了工作流的InfoPath表单时,当表单域改变时它不会自动更新。权衡你的选项,决定删除InfoPath表单并让SharePoint Designer自动重建更高效,还是打开表单修改布局来添加或移除域更高效。
        重要:设置批准文档的人必须有权限批准列表项目。Polices库的安全设置推荐:
1. 给所有公司职员读取权限。
2. 给政策编辑者参与讨论权限。
3. 给政策批准则设计权限,或者包含批准项目权限的自定义级别。
        小贴士:如果批准者没有权限批准项目,工作流仍可以通过使用工作流的“扮演”步骤完成。但是这超出了本章节范围。

原文地址:https://www.cnblogs.com/crazygolf/p/3856912.html