Infopath+Designer工作流设计之三工作流设计

Sharepoint Designer打开表单发布的网站,点击文件=>新建=>工作流进入工作流设计向导

启动环节

点击下一步,进入流程步骤设计页,创建一个启动步骤:

该步骤保住的操作有:

  1. 操作选择"设置当前项目中的域",域选择"工作流状态",值为"已启动"
  2. 操作选择"动态生成字符串",点击"动态字符串"在弹出窗口中选择添加查找,然后源为当前项目,域为创建者,确定添加了创建者,同理添加创建时间,共同组成一个字符串,并将该字符串存储在工作流的变量:操作记录(新创建一个工作流变量)

  1. 操作选择"设置当前项目中的域",将先前动态生成的字符串变量:操作记录,重新赋回给当前项目的"流转信息"这个字段,这样的话,当完成这步骤后,infopath表单的流转信息节有数据了,再打开表单,就可以看到该节的内容。

部门审批环节

部门审批的内部处理如下:

如果付费类型为"公司支付",则要完成以下操作:

  • 设置目前工作流状态为"部门经理审批"
  • 产生部门经理审批单,
  • 并收部门经理审批的信息转到InfoPath表单中
  • 记录流程流转信息

如果付费类型为自付,则不只需设置一下是否需部门经理审批的值为否

以下重点介绍如何生成审批单、将审批单上的信息转载到Infopath中以及生成流程的流转信息,其它的操作大多为"设置当前项目中的域",操作相对较简单。

生成部门经理审批单

该操作其实就是给对就的生成一个待办任务,同创建该待办任务的审批单,整个操作由三部分组成

处理者:对应操作的的从…收集段,指给谁发送待办

表单:对应操作的收集….,即待办任务的表单包括哪些栏

输出:该待办的记录的ID,流程中将它保存到一个变量中,方便后续步骤通过该ID读取该待办的具体内容。

点击[此用户],在弹出窗口中选择待办任务的接收者,有多种方式决定接收者,可以直接指定、在通讯录中查找等,由于本流程在申请时,已经选择了部门经理,并存储在[部门经理]这个域中,因此这里选择从工作流中查找。

数据源选择当前项目,域为部门经理,确定后完成

点击数据链接,进入创建待办表单的向导,直接进入下一步

输入待办单的标题信息

通过添加可以创建待办单栏,栏的类型包括了文本、日期、用户、选项等多种数据类型,可以根据实际需要创建这些类型的栏,这里审批结果是一个选项类型的栏,审批意见为一个多文本框类型的栏。

点击完成即创建成功一张表单

点击输出变量,将以上创建的待办任务记录的ID保存到一个流程变量中

转载审批信息

以上步骤给部门经理创建了一条待办任务,当部门经理处理完该任务后,处理的结果并不会自动保存到我们设计的Infopath表单上,因此要手工的将待办任务的数据复制到infopath上,由于各环节的字段均为提升为域属性,因此只需要设置对应的域属性,infopath表单上的对应控件就会有值了

添加一个"设置当前项目中的域",点击域链接,设置为部门经理审批意见

点击值链接,由于其值来自先前待办任务的数据,因此要通过计算得到,这里点击旁边的公式图标,将弹出的查找对话框设置如下,其整个查找框上部的含义为:返回工作流任务(待办记录保存的列表库)的审批结果这个栏的结果,工作流任务列表库中保存了所有人员的待办任务,如何判断要返回哪条记录的审批结果的值呢?上一步骤说到了在创建待办时,会将该待办的ID保存到一个变量中,因此对话框的下部就是一个过滤条件,该条件表示:工作流任务记录ID=变量:collect,整个对话框含义为:返回先前创建的待办任务的审批结果一栏的值。

同样设置审批意见字段的值。

生成流转信息

为了可以方便的查看流程的整个流转情况,这里专门设置了一个字段来保存工作流的流转信息,在每个步骤中向该字段追加信息。由于设置器中不支持直接的追加操作,因此这里使用了一个操作叫创建动态字符串的操作,先在字符串完成该追加操作,再将结果复制到当前项目的流转信息中。

添加一个生成动态字符串,点击动态字符串,在弹出窗口中,第一行使用"添加查找"操作,从工作流数据中得到操作记录这个变量的数据,第二行使用"添加查找"操作,获取待办记录的修改者及修改时间(即待办的审批人及审批时间数据)

再将动态生成的字符串,重新赋回给操作记录这个变量

下面再使用"设置当前项目的域"操作,将流量变量中的操作记录重新复制到当前项目的流转信息这个字段中,完成整个生成流程跟踪信息的操作。

处理审批结果

行政人员安排

结束

修改任务表单

待办任务在编辑时,默认是看不到具体的申请表单,只会在表单下面有一个相关项目的链接,只有点击该链接才可以查看申请人的表单,如下:

为了可以让审批者方便的了解申请人申请的具体情况,可以在流程创建完成后,修改一个对应的待办任务表单,用Designer打开酒店预订流程下的"酒店申请流程-部门经理审批.aspx"文件,以iframe的方式嵌入一个显示申请单的网页,具体代码是:

      

其中用到了个js脚本,主要作用是在表单加载完成后,自动调整一下网页的高度,保存iframe中的网页不会出现滚动条,具体内容为:

view plaincopy to clipboardprint?

<mce:script language="javascript" type="text/javascript"><!--

function autoResize(ifmobj) {

if (document.all(ifmobj.id).readyState == "complete") {

try {

var sHeight = window.frames[ifmobj.id].document.body.scrollHeight;

document.all(ifmobj.id).style.height = sHeight;

}

catch (e)

{ }

}

}

// --></mce:script>

<mce:script language="javascript" type="text/javascript"><!--

function autoResize(ifmobj) {    

if (document.all(ifmobj.id).readyState == "complete") {

try {

var sHeight = window.frames[ifmobj.id].document.body.scrollHeight;

document.all(ifmobj.id).style.height = sHeight;

}

catch (e)

{ }

}

}

// --></mce:script>

工作流截图

 



转载:http://blog.csdn.net/shenglfyu/archive/2009/03/11/3979683.aspx

原文地址:https://www.cnblogs.com/KimhillZhang/p/1529397.html