代码之家  ›  专栏  ›  技术社区  ›  Tundey

将InfoPath表单部署到不同的SharePoint服务器

  •  5
  • Tundey  · 技术社区  · 17 年前

    如何管理将InfoPath表单部署到不同的SharePoint服务器?在不打开表单、编辑数据连接和重新发布每个环境的情况下,是否有更好的方法来处理所有特定于站点的数据连接?

    7 回复  |  直到 14 年前
        1
  •  2
  •   bryansh    17 年前

    如果我正确理解你的场景:

    您有一个包含提交数据的数据连接的InfoPath表单。 您希望在多个SharePoint服务器上部署此表单,并让这些数据连接将数据提交到当前部署的服务器。

    您不可能真正需要在每个要将表单部署到的SharePoint服务器上都进行工作。但是,您可以绕过需要修改InfoPath表单模板的问题。

    如果使用SharePoint数据连接库(DCL),并从数据连接中创建一个UDC文件,则在要使用的每个SharePoint服务器上…则您的InfoPath模板只能与UDC文件进行对话。

    以下链接指向有关将InfoPath与SharePoint的DCL集成的文章:

    http://msdn.microsoft.com/en-us/library/bb267335.aspx

        2
  •  6
  •   Speedfox    17 年前

    这是一个常见的问题,如果您在开发系统上工作,并且需要不时地部署到生产系统上。我使用一个基于正则表达式执行(纯文本)替换的脚本。

    每个部署:

    1. 备份您的表单;-)
    2. 将表单另存为源代码。 (我建议您使用源代码文件而不是.xsn,因为xsn只是一个带有源文件的重命名.cab。而且您能够以更令人满意的方式使用源代码管理。)
    3. 打开 XSF 文件
    4. 搜索XML节点“dataconnections”
    5. 搜索并替换网站URL部分
    6. (不要忘记保存路径、文件和网站属性以及publishurl)
    7. 从InfoPath设计器部署

    我使用一个脚本来完成所有的替换。那很好用,已经省了我很多工作。

        3
  •  2
  •   Jason Z    17 年前

    如果进入提交选项,则可以选择使用规则执行自定义操作。如果设置了所有数据连接,则可以配置规则以选择要提交到哪个连接。

        4
  •  1
  •   pnewhook    16 年前

    回复:speedfox的答案是,尽可能避免编辑清单。这只会导致头痛。

    如果我了解您的问题,您将部署到多个服务器(dev、uat、production),并且每次从一个环境切换到另一个环境时都需要手动编辑数据连接?如果我过分简化了这个问题,请原谅我。

    我发现使数据连接站点相对的最佳方法是:

    1. 使用表单中的数据连接文件。在InfoPath中打开数据连接向导,对于所有数据连接,单击“转换…”将数据连接从嵌入表单改为独立的XML文件。您需要在SharePoint网站上有一个数据连接库来存储这些内容。在浏览器中创建。

    2. 在您转换并将连接返回后,将出现连接选项…按钮使用它从“本地数据连接库”更改为“集中管理的连接库”

    3. 将网站数据连接库中的数据连接上载到管理中心

    4. 发布表单时,请确保发布到集中管理的位置(管理中心)

    5. 将表单用作该网站集中任何表单库中的内容类型。

    6. 要在另一个站点上使用表单,请将数据连接文件上载到新服务器管理中心,并将(未更改的)表单发布到集中管理的表单。

        5
  •  1
  •   Mehul Bhuva    16 年前

    查看我的博客帖子,我将带您一步一步地查看相关快照,其中包括以下内容:

    a.将InfoPath数据连接转换为SharePoint中的DCL库。 b.将InfoPath表单发布到SharePoint列表/库 c.为InfoPath表单及其代码隐藏创建.wsp解决方案包 d.创建将在生产站点上部署InfoPath表单的批处理脚本。 e.确保已将InfoPath表单作为功能部署 f.在生产环境中修改DCL。 g.将InfoPath内容类型与文档/表单库关联

    查看完整的博客帖子: http://www.sharepointfix.com/2009/12/infopath-2007-form-and-nintex-workflows.html

        6
  •  0
  •   Mike Powell    17 年前

    根据站点特定,您的意思是表单中的数据连接指向部署表单的服务器吗?如果是这种情况,那么您可以调整连接以使用localhost,而不是数据连接URL的主机名部分的服务器名称。

        7
  •  0
  •   Tundey    17 年前

    在我的场景中,我没有使用内置的“保存”按钮。我有一个数据连接,用于将数据“发布”到另一个列表。

    是的,这就是我所说的特定地点。我认为你不能使用localhost的cos,然后当用户保存表单时,它会尝试发布到用户的计算机(即localhost)。我试过使用相对路径,但似乎行不通。

    推荐文章