zoukankan      html  css  js  c++  java
  • 采用Visual Studio 2008 开发工作流模板(二)

    设计工作流模板的任务表单

    上一节已经看到了默认的任务编辑页面,这显然是不符合实际要求,普通的审批页面一般具有一个意见框、一个批准和拒绝的选项。本节讲述如何采用InfoPath来开发自定义的任务操作界面。

    设计表单

    Step1  新建表单。打开InfoPath,选择"表单模板"单选按钮,确认选中"仅启动浏览器兼容性功能"复选框,如图1所示。

    新建表单

    Step2  添加数据源域。在数据源中添加两个字段域,一个名称为"comments",数据类型为"文本";另一个名称为"approval",数据类型为"boolean",如图2和图3所示。

    2添加数据源域

    3 添加数据源域

    Step3  插入布局表格。选择"插入"菜单中的"版式表格"选项,插入一个31列的布局表格,如图4和图5所示。

    插入布局表格

    5 插入布局表格

    Step4  设计表单字段。将审批意见域拖曳到布局表格上,并调整高度。将审批结果域拖曳到布局表格上,并且更改为选项按钮,分别在两个单项框后面添加批准和拒绝文字,如图6所示。

    6 设计表单字段

    Step5  添加"提交"按钮。通过设计任务转到插入控件面板,拖曳一个按钮控件到布局表格中,双击按钮,在属性窗口中将按钮标签改为"提交",如图7所示。

    添加提交按钮

    Step6  添加按钮规则。单击"规则"按钮,在规则编辑窗口中单击"添加"按钮,如图8所示。在添加规则窗口单击"添加操作"按钮,如图9所示。

                

    8 添加按钮规则                          9  "添加操作"按钮

    选择使用数据连结进行提交操作,单击"添加"按钮,如图10所示。在"数据连接向导"窗口中,选择"新建连接"和"仅提交数据"单选按钮,如图11所示。

          

         10 使用数据连接进行提交操作            11  选择"新建连接""仅提交数据"

    单击"下一步"按钮,选择"提交到宿主环境"单选按钮,如图12所示,再单击"下一步"按钮,在弹出的窗口中单击"完成"按钮,然后依次单击"确定"按钮,返回规则编辑窗口。在规则编辑窗口中添加关闭表单操作,如图13所示,最终设计好的表单如图14所示。

           

    12 选择提交到宿主环境                          13  添加关闭表单操作

    14  设计好的表单

    2.发布表单

    Step1  确认表单的安全级别为"完全信任"。通过"工具"菜单调出"表单选项"窗口,在"安全和信任"类别中选中表单的安全级别为"完全信任",如图15和图16所示。

                 

           15 调出"表单选项"窗口                 16  确认表单的安全级别为"完全信任"

    Step2  单击设计任务面板中的"发布表单模板"链接,如图17所示。在"发布向导"窗口中选择"网络位置"单选按钮,单击"下一步"按钮,如图18所示。

                      

                  17 任务面板                           18  "发布向导"窗口

    Step3  指定表单模板的发布位置为项目所在的目录,指定文件名为"ApprovalForm.xsn",单击"下一步"按钮,如图19所示。确保如图20所示的路径输入框为空,单击"下一步"按钮完成表单发布。

    19 指定表单模板的发布位置

    20  路径输入框

    3.修改工作流的配置文件和代码

    Step1  确保表单正确发布到项目目录中,如图21所示。

    21 确保表单正确发布到项目目录

    Step2  修改feature.xml文件。在feature.xml文件的ElementManifests节点下添加如下代码,确保infopath表单能被Visual Studio自动发布。

    <ElementFile Location="ApprovalForm.xsn" />

    最终的feature.xml文件如下所示。

    <?xml version="1.0" encoding="utf-8" ?>

    <Feature  Id="cb022cd6-9eb8-4102-9fb0-103ea0580283"

          Title="CodeArt.WorkflowDemo1 feature"

          Description="My SharePoint Workflow Feature"

          Version="12.0.0.0"

          Scope="Site"

          ReceiverAssembly="Microsoft.Office.Workflow.Feature, Version=12.0.0.0,

    Culture=neutral, PublicKeyToken=71e9bce111e9429c"

          ReceiverClass="Microsoft.Office.Workflow.Feature.WorkflowFeatureReceiver"

          xmlns="http://schemas.microsoft.com/sharepoint/">

      <ElementManifests>

        <ElementManifest Location="workflow.xml" />

       <ElementFile Location="ApprovalForm.xsn" />

      </ElementManifests>

      <Properties>

        <Property Key="GloballyAvailable" Value="true" />

        <!-- Value for RegisterForms key indicates the path to the forms relative to

    feature file location -->

        <!-- if you don't have forms, use *.xsn -->

        <Property Key="RegisterForms" Value="*.xsn" />

      </Properties>

    </Feature>

    Step3  修改workflow.xml文件。在workflow.xml文件的Workflow节点下添加如下属性,确保工作流创建的任务采用infopath表单内容类型。

    TaskListContentTypeId="0x01080100C9C9515DE4E24001905074F980F93160"

    MetaData节点下添加任务的FormURN注册,代码如下所示。

    <Task0_FormURN>urn:schemas-microsoft-com:office:infopath:Task0:-myXSD-2008-10-02T19-07-06</Task0_FormURN>

    FormURN的实际值可以通过infopath表单的"文件""属性"命令获得,如图22所示的ID域即是表单的FormURL

    22 表单模板属性

    Step4  修改greateTaskMethodInvoking事件处理方法,指定TaskType0,代码如下。

    private void createTask1_MethodInvoking(object sender, EventArgs e)

            {

                this.task1Id = Guid.NewGuid(); //生产任务ID

                this.task1Properties.Title = "文档审批";

                this.task1Properties.AssignedTo = "codeart\\user1"; //指定任务操作人

                this.task1Properties.TaskType = 0; //设置任务采用第一个任务表单

                //将任务编辑权限分配给任务操作人

                this.specialPermissions1.Add(this.task1Properties.AssignedTo,

    SPRoleType.Contributor);

            }

    以上操作完成后可以再次部署工作流,启动流程后可以看到如图23所示的任务编辑页面。

    23 任务编辑页面

    4.表单的校验步骤

    InfoPath表单发布后,访问任务页面的时候可能会出现表单加载错误,这个现象大多数情形下是由表单本身引起的,可以先通过SharePoint管理中心的管理表单模板模块进行校验,确保表单校验成功。表单校验步骤如下。

    Step1  访问应用程序管理中的管理表单模板模块,如图24所示。

    24 管理表单模板模块

    Step2  单击"上载表单模板"链接,如图25所示。

    25  "上载表单模板"链接

    Step3  单击"浏览"按钮找到项目目录中发布后的模板,再单击"校验"按钮,确定表单验证状态为"成功",如图26和图27所示。若表单校验不成功,则按照提示信息操作。

    26 验证表单模板

    27 表单验证成功


    转载:http://book.csdn.net/bookfiles/936/10093629438.shtml

  • 相关阅读:
    Effective Java第三版(一) ——用静态工厂代替构造器
    联合主键下的mapper文件对数据库的批量更新
    dart的基本语法(一)
    单例模式
    给hexo博客的NEXT主题添加一个云日历
    使用nginx+tomcat实现动静分离
    nginx(二)
    nginx(一)
    初识Nginx
    给hexo添加宠物
  • 原文地址:https://www.cnblogs.com/KimhillZhang/p/1529746.html
Copyright © 2011-2022 走看看