Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7305951
  • 博文数量: 444
  • 博客积分: 10593
  • 博客等级: 上将
  • 技术积分: 3852
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-09 15:26
文章分类

全部博文(444)

文章存档

2014年(1)

2013年(10)

2012年(18)

2011年(35)

2010年(125)

2009年(108)

2008年(52)

2007年(72)

2006年(23)

分类: 系统运维

2010-03-17 11:09:20

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

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

目  录

第一步:需求分析                            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

          完整访问路径:

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

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 最终工作流步骤
阅读(2551) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-03-17 17:17:51

问题2:InfoPath表单嵌入页面应该有种方法。 我是用框架嵌入的。 框架需要放在XSLT视图的(dvt_1.rowedit)模板代码内,具体可以在代码中找到 table的开始位置,增加一个新的标签,再增加一个