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号,创建人、创建时间;缺陷的分类信息等。
下一节在对外部引用数据做说明。
页面整体效果如下:
填写表单时,希望“系统分类”、“缺陷接收人”等信息以下拉选单的形式选择,不要手工输入。
“分类”信息和“接收人”信息,已经在MOSS中建立好了。
我们需要在InfoPath中读取MOSS中的列表内容,形成下拉列表。
首先,需要“添加数据连接”,“仅接收数据”,数据源选择“SharePoint”,输入表单库地址,选择表单库或列表,选择读取的字段,给数据连接起名字,完成即可。
步骤如下图:
![](http://blogimg.chinaunix.net/blog/upfile2/100317111039.jpg)
![](http://blogimg.chinaunix.net/blog/upfile2/100317111051.jpg)
![](http://blogimg.chinaunix.net/blog/upfile2/100317111143.jpg)
![](http://blogimg.chinaunix.net/blog/upfile2/100317111151.jpg)
![](http://blogimg.chinaunix.net/blog/upfile2/100317111158.jpg)
表单设计到此基本完成,下面准备将设计好的表单发布到MOSS中的表单库中,以实现在线填写表单的功能。
要实现IE填写表单,需要做如下工作:
1、修改表单的兼容性设置为:“可以在浏览器中打开”
2、发布时要勾选“用户可以通过浏览器填写表单”
3、修改MOSS表单库的“高级设置”——“打开启用了浏览器的文档”选为“显示为网页”
如图:
![](http://blogimg.chinaunix.net/blog/upfile2/100317111323.jpg)
使用发布向导 发布表单:
![](http://blogimg.chinaunix.net/blog/upfile2/100317111510.jpg)
![](http://blogimg.chinaunix.net/blog/upfile2/100317111412.jpg)
表单中,除缺陷的基本信息由“运行班长”在填写表单时填写。
其他各部分信息分别由不同的用户在不同的时间段填写。
这些内容需要以后需要在MOSS工作流中进行修改,因此在发布时,需要勾选“允许用户使用数据表和属性页修改该域中的数据”
经过试验,域(元素)在MOSS工作流中修改会报错,域(属性)正常。
因此在当初设计表单时,除基本信息外都使用了域(属性)。
表单发布成功后,就可以在MOSS中测试IE填写表单的功能,遇到问题可以修改表单再次发布。
测试中可能会遇到以下问题:
- 表单在IE中呈现时,多了两个工具条;
- 设计的按钮不起作用;
- 用工具栏中的按钮提交时,要输入文件名;
- 保存了表单,不自动关闭;
下一步,我们将处理以上问题,实现自动化保存。
第五步 发布InfoPath表单——3、使用按钮“规则”保存表单
InfoPath表单默认在提交时要求输入文件名。在IE中也同样。
我们可以通过按钮规则进行自动命名保存。
思路是:
- 在数据源中预先增加一个“文件名”这样的域属性或域元素。用于临时保存文件名字符串;
- 检查“文件名”字符串是否存在,若不存在,表明是新建的文件,生成字符串;
- 我们采用“日期”加“时间”的格式,避免重名(可能出现的冲突:同1秒内的提交可能被覆盖);
如:20080908-083834 日期-时间 (冲突在用户不算太多的场合可以忽略) - 将字符串,保存在“文件名”域;
- 建立“提交方式”的数据连接,将表单以指定文件名提交。
- 关闭表单。
一、形成文件名字符串
具体操作如下:
双击按钮,进入属性,添加一个“设置文件名”的规则,规则条件为“文件名为空”时执行这条规则。
设置域值为通过函数转换的字符串: translate(translate(substring(translate(now(), ":", ""), 1, 20), "-", ""), "T", "-")
![](http://blogimg.chinaunix.net/blog/upfile2/100317111709.jpg)
- translate(translate(substring(translate(now(), ":", ""), 1, 20), "-", ""), "T", "-")
now() 返回 2008-09-08T11:25:58 固定格式
translate(now(), ":", "") 返回 2008-09-08T112558 去掉冒号
同理去掉减号-
将T换成-
得到20080908-112558 作为文件名
二、使用“提交”连接(建立提交连接)
生成文件名字符串后,需要保存表单到表单库。
InfoPath提供“提交”连接的形式,以指定的字符串作为文件名保存表单。
在上一步的基础上,添加一个新规则。
- 提交之前先更新填写时间。(略)
- 为“工作状态”设置一个初始化息。(略)
- 添加操作为“使用数据连接进行提交”。
- 新建一个连接,步骤如下图。
- 添加一个“关闭表单”的 操作,提交后自动关闭表单。(略)
- 完成后,保存表单。 再次发布。在MOSS中进行测试
第五步 发布InfoPath表单——3、使用按钮“规则”保存表单
三、取消系统工具栏的显示
【工具】菜单——“表单选项”——浏览器
去掉两个选项:
![](http://blogimg.chinaunix.net/blog/upfile2/100317111931.jpg)
第六步:设计SharePoint Designer无代码工作流
1、用Designer打开站点、新建工作流 |
![](http://blogimg.chinaunix.net/blog/upfile2/100317161112.jpg)
第六步:设计SharePoint Designer无代码工作流
2、使用工作流向导![]() |
![](http://blogimg.chinaunix.net/blog/upfile2/100317161555.jpg)
第六步:设计SharePoint Designer无代码工作流
3、从用户处收集数据 工作流中最核心的操作是“从用户处收集数据”,让用户填写指定的信息,如:审批意见、下一审批人之类的信息。 然后再判断用户填写信息,根据条件进行流转。 “用户处收集数据”系统会为用户创建一条任务,并等待任务“完成”。 收集任务 会在工作流中返回该任务ID号,需要使用此ID号查询任务详细信息。 ID号保存在“工作流变量”中。类型为“列表ID” 3.1 收集任务 ![]() 3.2 查询任务中填写的信息 ![]() ![]() |