如何在代码中打开 infopath 模板并更改数据连接 URL
我需要迭代 infopath 模板(xsn 文件)并更改数据连接的 URL,然后将更改保存到模板。
我想要更改的数据连接指向共享点环境中的列表。
那么,我怎样才能完成这个任务呢?
我正在考虑使用控制台应用程序来完成此操作。
I need to iterate through infopath templates (xsn files) and change the URL of data connections, and then save the changes to the templates.
The data connections I want to change, points to lists in a sharepoint environment.
So, how could I accomplish this task?
I was thinking doing this with a console application.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Infopath 绝对不方便部署到不同的服务器。我使用了 powershell 脚本,但您可以使用任何控制台应用程序或脚本语言。
遵循的步骤:
1. 从 XSN 中提取文件(使用 MS 的 extrac32 util 或重命名为 zip 并使用任何 zip 库)
2. 更改manifest.xsf、template.xml和sampledata.xml中的数据连接(字符串替换)
3. 将文件重新打包到 XSN 中(使用 MS 中的 cabarc util 或 zip 并重命名)
完成所有这些操作很痛苦,但整个脚本的长度不到一页,而且运行速度相当快。我遇到的一个警告是我需要在步骤 1 和步骤 2 之间进行延迟 - 文件实际上并未完成提取,而我的脚本正在尝试更改它们。
Infopath definitely doesn't make it easy to deploy to different servers. I have used a powershell script but you can use any console app or scripting language.
Steps to follow:
1. Extract the files from the XSN (either use extrac32 util from MS or rename to zip and use any zip library)
2. Change the data connection (string replace) in manifest.xsf, template.xml, and sampledata.xml
3. Repackage the files into the XSN (either use cabarc util from MS or zip and rename)
It is a pain to have to do all that but the entire script is less than a page long and runs pretty fast. One caveat I ran into was I needed a delay between steps 1 and 2 - the files weren't actually finished extracting and my script was trying to change them.