zoukankan      html  css  js  c++  java
  • SharePoint Designer + InfoPath 无代码工作流设计实例

    SharePoint Designer + InfoPath 无代码工作流设计实例(更新至 工作流设计)
    实例名称: 发电厂设备缺陷管理
    服务器环境: Windows 2003 企业版 + SharePoint Server 2007 企业评估版 + SQL Server 2005
    设计工具: SharePoint Designer 2007 做页面修改和工作流设计 + InfoPath 2007 做表单

    相关界面见另贴http://bbs.winos.cn/thread-43283-1-1.html
    本文将我的设计过程与大家分享,设计中遇到很多困难,不会解决的只好换了比较笨的办法。
    希望借此机会得到大家的指点,为以后的设计充电。

    目  录

    第一步:需求分析                            1#

    第二步:MOSS环境设置,用户、用户组权限设置   2#

    第三步:创建表单库和相关列表                 3#

    第四步:设计InfoPath表单

          1、设计数据源结构                      4#

          2、设计表单页面结构                    6#

          3、创建数据连接                        8#

          4、将外部数据关联到表单                11#

    第五步:发布InfoPath表单

          1、发布前的准备工作                    19#

          2、发布表单                            20#

          3、使用按钮“规则”保存表单             23# 25# 26#

    第六步:设计SharePoint Designer无代码工作流

          1、用Designer打开站点,新建工作流       52#

          2、使用工作流向导                       53#

          3、从用户处收集数据                     54#

     


    第一步:需求分析
    用户类型:运行班长、检修班组、检修专责、运行专责、生产部专责
    处理对象:《设备缺陷通知单》(以下简称“缺陷单”)
    现状:运行值班员 手工填写缺陷单,发给检修班组,检修班组领取缺陷单,处理缺陷,处理好后填写处理意见,交给运行班长验收。一个缺陷单处理结束。
    若检修班组接到缺陷单,无法处理时,要申请择机处理。择机处理时,需依次经过 检修专责、运行专责、生产部专责审批。批准后的缺陷单暂时挂起,等具备检修条件后再处理,处理好后填写处理结果,交运行验收。
    若检修班组接到缺陷单,发现缺陷不是本班缺陷,应转给其他班组继续处理。

    根据需求,设计工作流程图如下:

    第二步 MOSS环境设置,用户、用户组权限设置
    MOSS的部署和设置在这里不做过多的说明。

    本文需要一个MOSS站点完成 “缺陷单”表单库的存储 以及工作流的关联
    本文使用了子站点,不是必须的,完全个人喜好。跟站点下的默认内容较多,怕混淆,建了子站点便于管理。
    子网站权限采用继承方式,用户和权限统一在根网站下设置。

    说明:本文使用的服务器名称为:DC1

             站点端口:8080

             子站点:EDM

              完整访问路径: http://dc1:8080/EDM

     
    第三步 创建表单库和相关列表

    1、需要创建一个表单库用了存储缺陷单,创建“表单库”,命名为 EDList
    2、为能够使缺陷单能够按不同分类进行统计,需创建相关分类字典列表,创建“自定义列表”如下:

    类型为:自定义列表

    名称       创建时输入的名称
    分类-机组  TypeJZ
    分类-缺陷  TypeQX
    分类-设备  TypeSB
    分类-责任  TypeZR
    分类-值别  TypeZB
    分类-专业  TypeZY

    以上分类,从不同角度对同一个缺陷单进行标示,便于将来统计。

    需要特别说明的是:
    为了方便以后的引用(提高可度性),在创建表单库或自定义列表时,都输入英文名称,避免MOSS将中文转码。

    同理:表单库中的字段也可以同样方法设置,创建时输入英文名,回头再改成中文。

    这样,内部存储为英文名,显示为中文。



    3、为了在InfoPath表单中可以以列表的方式选择“缺陷单的接收人”,还需要建立一个辅助列表,用来存储用户名和用户账户的对照关系。
    创建类型为自定义列表,名称为:缺陷接收人 EDRecvUser

    4、为实现自动识别 缺陷单 填写人所属的“专业”“值别”等信息,需要建立一个辅助列表,用于对照 用户账户 与专业、值别的关系。
    创建类型为自定义列表,名称为:用户列表 UserList

    整个网站结构如下图:
    第四步 设计InfoPath表单——1、设计数据源结构
    需要在MOSS工作流中修改的字段,增加时需要选择为“域(属性)”,不需要在外部修改的字段可以为“域(元素)”
    图中浅色图标样式为“域(元素)”,深色图标为“域(属性)”
    第四步 设计InfoPath表单——2、设计表单页面结构

    页面以“节”分块显示不同工作进度下的信息。
    通过判断相应字段是否为空,控制节是否显示。

    页面中部分元素 是从MOSS中读取的,回显到表单中,如:ID号,创建人、创建时间;缺陷的分类信息等。
    下一节在对外部引用数据做说明。

    页面整体效果如下:
    第四步 设计InfoPath表单——3、创建数据连接

    填写表单时,希望“系统分类”、“缺陷接收人”等信息以下拉选单的形式选择,不要手工输入。
    “分类”信息和“接收人”信息,已经在MOSS中建立好了。
    我们需要在InfoPath中读取MOSS中的列表内容,形成下拉列表。

    首先,需要“添加数据连接”,“仅接收数据”,数据源选择“SharePoint”,输入表单库地址,选择表单库或列表,选择读取的字段,给数据连接起名字,完成即可。

    步骤如下图:
    第四步 设计InfoPath表单——4、将外部数据关联到表单
    第五步 发布InfoPath表单——1、发布前的准备工作

    表单设计到此基本完成,下面准备将设计好的表单发布到MOSS中的表单库中,以实现在线填写表单的功能。

    要实现IE填写表单,需要做如下工作:
        1、修改表单的兼容性设置为:“可以在浏览器中打开”
        2、发布时要勾选“用户可以通过浏览器填写表单”
        3、修改MOSS表单库的“高级设置”——“打开启用了浏览器的文档”选为“显示为网页”
    如图:
    第五步 发布InfoPath表单——2、发布表单

    使用发布向导 发布表单:
     
    需要注意一点:
        表单中,除缺陷的基本信息由“运行班长”在填写表单时填写。
        其他各部分信息分别由不同的用户在不同的时间段填写。
        这些内容需要以后需要在MOSS工作流中进行修改,因此在发布时,需要勾选“允许用户使用数据表和属性页修改该域中的数据”

    经过试验,域(元素)在MOSS工作流中修改会报错,域(属性)正常。
    因此在当初设计表单时,除基本信息外都使用了域(属性)。


    表单发布成功后,就可以在MOSS中测试IE填写表单的功能,遇到问题可以修改表单再次发布。

    测试中可能会遇到以下问题:

    • 表单在IE中呈现时,多了两个工具条;
    • 设计的按钮不起作用;
    • 用工具栏中的按钮提交时,要输入文件名;
    • 保存了表单,不自动关闭;


    下一步,我们将处理以上问题,实现自动化保存。
    第五步 发布InfoPath表单——3、使用按钮“规则”保存表单


    InfoPath表单默认在提交时要求输入文件名。在IE中也同样。

    我们可以通过按钮规则进行自动命名保存。

    思路是:

    • 在数据源中预先增加一个“文件名”这样的域属性或域元素。用于临时保存文件名字符串;
    • 检查“文件名”字符串是否存在,若不存在,表明是新建的文件,生成字符串;
    • 我们采用“日期”加“时间”的格式,避免重名(可能出现的冲突:同1秒内的提交可能被覆盖);
      如:20080908-083834  日期-时间           (冲突在用户不算太多的场合可以忽略)
    • 将字符串,保存在“文件名”域;
    • 建立“提交方式”的数据连接,将表单以指定文件名提交。
    • 关闭表单。


    一、形成文件名字符串

    具体操作如下:

    双击按钮,进入属性,添加一个“设置文件名”的规则,规则条件为“文件名为空”时执行这条规则。
    设置域值为通过函数转换的字符串:  translate(translate(substring(translate(now(), ":", ""), 1, 20), "-", ""), "T", "-")

    公式:
    1. translate(translate(substring(translate(now(), ":", ""), 1, 20), "-", ""), "T", "-")
    复制代码

    now() 返回 2008-09-08T11:25:58        固定格式
    translate(now(), ":", "") 返回  2008-09-08T112558       去掉冒号
    同理去掉减号-
    将T换成-
    得到20080908-112558    作为文件名
    第五步 发布InfoPath表单——3、使用按钮“规则”保存表单

    二、使用“提交”连接(建立提交连接)


    生成文件名字符串后,需要保存表单到表单库。

    InfoPath提供“提交”连接的形式,以指定的字符串作为文件名保存表单。

    在上一步的基础上,添加一个新规则。

    •   提交之前先更新填写时间。(略)
    •   为“工作状态”设置一个初始化息。(略)
    •   添加操作为“使用数据连接进行提交”。
    •   新建一个连接,步骤如下图。
    •   添加一个“关闭表单”的 操作,提交后自动关闭表单。(略)
    • 完成后,保存表单。 再次发布。在MOSS中进行测试

    第五步 发布InfoPath表单——3、使用按钮“规则”保存表单

    三、取消系统工具栏的显示


    【工具】菜单——“表单选项”——浏览器
    去掉两个选项:

    第六步:设计SharePoint Designer无代码工作流

    1、用Designer打开站点、新建工作流

    第六步:设计SharePoint Designer无代码工作流

    2、使用工作流向导

    第六步:设计SharePoint Designer无代码工作流

    3、从用户处收集数据

    工作流中最核心的操作是“从用户处收集数据”,让用户填写指定的信息,如:审批意见、下一审批人之类的信息。
    然后再判断用户填写信息,根据条件进行流转。

    “用户处收集数据”系统会为用户创建一条任务,并等待任务“完成”。
    收集任务 会在工作流中返回该任务ID号,需要使用此ID号查询任务详细信息。
    ID号保存在“工作流变量”中。类型为“列表ID”

    3.1 收集任务

    3.2 查询任务中填写的信息

    3.3 最终工作流步骤
  • 相关阅读:
    cocos代码研究(20)Widget子类LoadingBar学习笔记
    cocos代码研究(19)Widget子类ImageView学习笔记
    cocos代码研究(18)Widget子类Slider学习笔记
    cocos代码研究(17)Widget子类RadioButtonGroup学习笔记
    cocos代码研究(16)Widget子类RadioButton学习笔记
    cocos代码研究(15)Widget子类CheckBox学习笔记
    cocos代码研究(14)Widget子类Button学习笔记
    LeetCode:路径总和【112】
    LeetCode:平衡二叉树【110】
    LeetCode:二叉树的层次遍历||【107】
  • 原文地址:https://www.cnblogs.com/Bany/p/1777396.html
Copyright © 2011-2022 走看看