none
如何让infopath2010表单显示工作流状态 RRS feed

  • 问题

  • 大侠好。

    我这里是一个sharepoint2010服务器场,用户在填写inforpath2010表单(与浏览器兼容)后点提交,该表单就会被提交到服务器场中的一个表单库里去。由于表单库设置了允许内容类型管理和提交的项目需要内容审批,并启用了sharepoint自带的审批工作流。所以表单会在被提交后,会触发表单库呢的工作流启动,当相关的审批人员都批复了后,改表单的审批状态就由pending变成了approved.

    那么如何把审批状态值放入到inforpath表单中去呢,使表单被打印出来时就会有审批状态在内,这样可以让相关部门来存档。

    请大侠帮我想想看有什么办法可以实现吧。

    谢谢啦


    chengli

    2012年4月1日 11:08

答案

  • Hi chengli,

    经过我的尝试,如果直接去取审核工作流的状态的话,是取不到的。但是在Infopath 2007 中是可以得到的。在Infopath2010中,这个列被忽略了。所以,你可以用一个变通的方法。

    1.在你的列表中创建一个新列,用来存储SharePoint 审核工作流的状态。

    2.用SharePointdesigner 创建一个新的工作流在这个列表上,当一个item 创建或者修改时,将审核工作流的状态更新到这个你自己新建的列。

    3.新创建的工作流需要以下动作。

        a.延迟一分钟(确保你获得你的审核工作流状态是及时的准确的)

        b.设置你的新建列的值为当前审核工作流的值。

    这样相当于你把审核工作流的状态保存到一个普通列上,你在Infopath 2010 中就可以使用这个普通列了。

    你可以参考如下英文连接。

    http://sharepointsource123.blogspot.com/2011/10/infopath-2007-workflow-status-column.html

    Thanks,

    Jack


    2012年4月4日 4:52
    版主
  • 谢谢大侠指点。

    infopath2007确实能抓取到这个值,很方便。如果infopath2010中也能抓取到就太好了。

    由于我缺乏使用SP的经验,所以我用了另一个变通的方法,就是把工作流的task list作为数据辅助源,抓取task list里面的值,如下图所示:

    可是这样也带来一系列的问题:

    1 虽然做到了打开表单后可以显示审批状态(也可以显示多人审批状态),可是如果把这数据辅助源设置为每次表单打开都检索的话,表单打开会很慢。

    2 为了提高打开速度,我设置了一个按钮,按下时才检索这个数据源。速度是提高了很多,但发现如果每次用infopath来打开这个表单的话,审批人和审批状态都是空白的,需要按按钮才能显示,但保存退出后再次打开又是空白。不过如果用网页打开此表单的话,审批状态可以一直显示着。很奇怪。

    3 task list 日后会越来越大,检索速度势必会越来越慢,特别是超过5000行后。如果解决这个隐患呢。另外如何让表单永久保留审批状态,即使task list删除了相关task。

    请大侠指点迷津, 万分感谢。


    chengli

    2012年4月9日 7:05

全部回复

  • Hi chengli,

    经过我的尝试,如果直接去取审核工作流的状态的话,是取不到的。但是在Infopath 2007 中是可以得到的。在Infopath2010中,这个列被忽略了。所以,你可以用一个变通的方法。

    1.在你的列表中创建一个新列,用来存储SharePoint 审核工作流的状态。

    2.用SharePointdesigner 创建一个新的工作流在这个列表上,当一个item 创建或者修改时,将审核工作流的状态更新到这个你自己新建的列。

    3.新创建的工作流需要以下动作。

        a.延迟一分钟(确保你获得你的审核工作流状态是及时的准确的)

        b.设置你的新建列的值为当前审核工作流的值。

    这样相当于你把审核工作流的状态保存到一个普通列上,你在Infopath 2010 中就可以使用这个普通列了。

    你可以参考如下英文连接。

    http://sharepointsource123.blogspot.com/2011/10/infopath-2007-workflow-status-column.html

    Thanks,

    Jack


    2012年4月4日 4:52
    版主
  • 谢谢大侠指点。

    infopath2007确实能抓取到这个值,很方便。如果infopath2010中也能抓取到就太好了。

    由于我缺乏使用SP的经验,所以我用了另一个变通的方法,就是把工作流的task list作为数据辅助源,抓取task list里面的值,如下图所示:

    可是这样也带来一系列的问题:

    1 虽然做到了打开表单后可以显示审批状态(也可以显示多人审批状态),可是如果把这数据辅助源设置为每次表单打开都检索的话,表单打开会很慢。

    2 为了提高打开速度,我设置了一个按钮,按下时才检索这个数据源。速度是提高了很多,但发现如果每次用infopath来打开这个表单的话,审批人和审批状态都是空白的,需要按按钮才能显示,但保存退出后再次打开又是空白。不过如果用网页打开此表单的话,审批状态可以一直显示着。很奇怪。

    3 task list 日后会越来越大,检索速度势必会越来越慢,特别是超过5000行后。如果解决这个隐患呢。另外如何让表单永久保留审批状态,即使task list删除了相关task。

    请大侠指点迷津, 万分感谢。


    chengli

    2012年4月9日 7:05
  • hi, Jack

    上面的link  http://sharepointsource123.blogspot.com/2011/10/infopath-2007-workflow-status-column.html 打不开,能否帮我再检查下,谢谢啦。


    chengli

    2012年4月22日 2:49