none
Infopath表单与sharepoint工作流保存数据问题 RRS feed

  • 问题

  • 我使用Infopath 2010做了一些表单,这些表单上有一些数据需要保存到自己建的数据库中。目前的处理办法是在表单中放一个按钮,把保存入库的代码放在这个按钮下面。但是现在的问题是,启动工作流审批流程后,审批者会忘记点击那个按钮,甚至会忘记点击表单中的“提交”选项,导致很多表单没有把数据写入数据库,没有保存到文档库中。

    我现在想利用工作流审批中的“批准”和“拒绝”按钮,把写入数据库的操作放到“批准”下,当所有流程都走完后,如果最后的状态为“批准”就把数据写入数据库,为“拒绝”就不写入。但不知道如何实现。请各位高手多多指教!

    2011年6月21日 13:59

答案

  • 1、你可以把“批准”这个状态发布成一个SharePoint字段,这样程序读这个字段比较方便

    2、你可以开发一个Workflow Receiver(2010新增的特性,就和列表的事件处理程序的概念类似),当工作流完成的时候可以触发一段你自己的程序,在这段程序里面判断审批状态,然后写入数据库

     

    2011年6月22日 5:06
  • Hi,博文

    要从事件处理程序中读取表单数据可以使用XmlDocument及其相关对象与方法。

    要将事件处理程序绑定到特定表单库的话,可以在你的Feature中设置ListID

    • 已标记为答案 紫柔 2011年6月23日 8:43
    2011年6月22日 11:59
    版主

全部回复

  • 1、你可以把“批准”这个状态发布成一个SharePoint字段,这样程序读这个字段比较方便

    2、你可以开发一个Workflow Receiver(2010新增的特性,就和列表的事件处理程序的概念类似),当工作流完成的时候可以触发一段你自己的程序,在这段程序里面判断审批状态,然后写入数据库

     

    2011年6月22日 5:06
  • 谢谢Erucy的解答,不过我还有些不明白

    1、如何把工作流的“批准”的状态发布成一个sharepoint字段。

    2、自己开发一个Workflow Receiver,工作流完成时触发自己写的程序。那我在自己写的事件处理程序中如何提取表单上的数据?还有自己写的事件处理程序如何关联到特定的表单库中。

    2011年6月22日 7:23
  • Hi,博文

    要从事件处理程序中读取表单数据可以使用XmlDocument及其相关对象与方法。

    要将事件处理程序绑定到特定表单库的话,可以在你的Feature中设置ListID

    • 已标记为答案 紫柔 2011年6月23日 8:43
    2011年6月22日 11:59
    版主
  • 表单库中有很多表单,比如说我启动了表单1的工作流,那工作流结束后会激发事件处理程序,那我在事件处理程序中如何设置才知道要读取的是表单1的数据而不是其它表单的数据呢。
    2011年6月23日 6:23