用于保留大型表单的SharePoint InfoPath最佳实践

时间:2011-11-29 20:36:17

标签: sharepoint infopath contenttype

我目前正在构建一个大型SharePoint部署。

此部署有可能在几年内增长到数PB。

我们正在讨论的当前问题之一是使用InfoPath Forms将数据存储在SharePoint中。其中一些表单包含字段,需要大量映射到内容类型以进行持久性和搜索。我们的搜索要求主要是一个单一的标识符,而不是表格的内容,虽然我被告知我应该在将来抢先“想要”搜索。

我们要求将我们的信息用于次要目的(例如报告等)。在持久保存到系统后,必须立即访问该信息。

因此我的核心问题是:

  1. 与存储相比,此方法有哪些好处/风险 我们在使用网络服务的单一关系商店中的数据 持久性?
  2. 如果我们决定采用这种方法,那会是什么 随着时间的推移,改变形式,内容类型的影响?
  3. 当我们的农场超越单个网络应用程序/网站集时,会发生什么信息? 我能知道它在哪里以及信息的便携性是多么便宜吗?

1 个答案:

答案 0 :(得分:0)

1。)

好处:

  • 可以创建表单模板&部署(相对)容易
  • 您可以轻松配置字段验证
  • 可能没有涉及代码

风险:

  • 点击SharePoint 2010 Limits(并非如此罕见 想)
  • 需要仔细的表单设计/规划(正确的XML结构)
  • 只能通过SharePoint对象模型或 WebService(非常慢)

2。)这是一个艰难的。更改表单模板和重新部署非常简单,只需几分钟。但是,更改模板的结构(基础XML)会让您很容易陷入困境,因为旧的(填写的)表单将无效 - 有一个选项可以“升级”现有的旧表单,但是我的经历从来没有按照预期的那样发挥作用。

内容类型的行为非常相似,比如说你想从内容类型中删除一个列,因为它不再需要了 - 你必须删除对它的所有引用,这意味着删除所有项目以便你可以删除列。 / p>


3.)良好的可移植性肯定是InfoPath的一个问题,因为它严重依赖于相应的URL结构。您绝对可以添加更多网站集,但这意味着您必须将表单模板部署到每个网站集。信息(填写的表单)不能在网站集之间轻松共享,因为每个表单都包含SourceURL(它来自哪里)和模板的命名空间(一旦部署就会​​不断变化)。


考虑到您的要求,我强烈建议使用关系存储而不是InfoPath - 仅仅因为它不是为数据存储设计的。

我会使用SQL数据库来存储数据,并使用自定义UI(WebPart或Application Page)来执行CRUD操作。这意味着该信息实际上并未存储在SharePoint中 - 只是显示(这也意味着无法使用内置的SharePoint搜索进行搜索)。还有可能使用Business Connectivity Services(基本上可以完成上述所有操作而无需创建自定义UI - 但是对于大量数据而言非常慢)。

如果您确实需要SharePoint中的信息,为什么不仅仅使用列表来实现所有这些?