如何管理将 InfoPath 表单部署到不同的共享点服务器?是否有更好的方法来处理特定于站点的所有数据连接,而无需打开表单、编辑数据连接并为每个环境重新发布?

有帮助吗?

解决方案

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

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

您无法真正避免需要在要将表单部署到的每个 SharePoint 服务器上进行工作。但是,您可以避免修改 InfoPath 表单模板的需要。

如果您使用 SharePoint 数据连接库 (DCL),并在您想要使用的每台 SharePoint Server 上从数据连接创建 UDC 文件...那么您的 InfoPath 模板就可以与 UDC 文件通信。

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

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

其他提示

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

每次部署时:

  1. 备份您的表格;-)
  2. 将您的表单另存为源代码。 (我建议您处理源代码文件而不是 .xsn,因为 xsn 只是一个重命名的 .cab,其中包含源文件。并且您能够以更令人满意的方式使用源代码控制。)
  3. 打开 清单.xsf 文件
  4. 搜索 xml 节点“DataConnections”
  5. 搜索并替换 site-url 部分
  6. (不要忘记保存路径、文件和站点属性以及publishUrl)
  7. 从 InfoPath Designer 进行部署

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

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

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

如果我理解您的问题,您正在部署到多个服务器(DEV、UAT、生产),并且每次从一个环境转到另一个环境时都需要手动编辑数据连接?如果我把问题过于简单化了,请原谅我

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

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

  2. 转换完成并连接后,将出现一个连接选项...按钮使用它从“本地数据连接库”更改为“集中管理的连接库”

  3. 将站点数据连接库中的数据连接上传到中央管理

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

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

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

请参阅我的博客文章,其中我将通过相关快照逐步指导您,其中涵盖以下内容:

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

请参阅完整的博客文章: http://www.sharepointfix.com/2009/12/infopath-2007-form-and-nintex-workflows.html

所谓特定于站点,您的意思是表单中的数据连接引用表单部署到的服务器吗?如果是这种情况,也许您可​​以调整连接以使用 localhost 而不是数据连接 URL 的主机名部分的服务器名称。

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

是的,这就是我所说的特定于站点的意思。我不认为你可以使用 localhost 'cos 那么当用户保存表单时,它会尝试发布到用户的计算机(即本地主机)。我尝试过使用相对路径,但这似乎不起作用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top