6

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

4

7 回答 7

6

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

在每次部署时:

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

我使用一个执行所有替换的脚本。这很好用,已经为我节省了很多工作。

于 2008-10-17T12:33:01.017 回答
2

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

于 2008-08-22T15:10:07.907 回答
2

如果我正确理解您的情况:

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

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

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

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

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

于 2008-08-28T18:42:29.327 回答
1

回复:speedfox 的回答,尽量不要编辑清单。只会导致头痛。

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

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

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

  2. 转换后,连接返回到它,将有一个连接选项...按钮使用它来从“本地数据连接库”更改为“集中管理的连接库”

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

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

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

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

于 2009-02-27T16:42:42.757 回答
1

请参阅我的博客文章,其中我将逐步为您提供相关快照,包括以下内容:

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

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

于 2009-12-18T14:35:28.887 回答
0

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

于 2008-08-21T19:08:12.723 回答
0

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

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

于 2008-08-22T12:25:08.130 回答