2

我有一个 InfoPath 表单设置为表单库上的主要内容类型,它工作正常。该表单是通过 Central Admin 上传/激活的托管模板,并包含许多推广字段。

现在我已经在 InfoPath 中的表单中添加了另一个字段(并在表单上添加了一个控件,以提高可见性)并将该字段设置为提升到库中(通过两者确认Tools -> Form Options -> Property Promotion,以及发布时的列表)并发布 &上传表单(使用 Central Admin)。

当我在 SharePoint 中打开表单时(通过在表单库中创建新项目,或打开该库中的现有项目),我会看到新字段的控件,并且可以在字段中存储数据。但是,该字段没有被提升,因为我在以下任何一个中都看不到它:

  • 项目属性页面(查看/编辑)
  • 创建/修改视图页面
  • 表单库设置页面上的列列表
  • 表单库的设置页面上表单的内容类型的列列表

我已经尝试了我能想到的一切来提升这个领域,而不是删除整个库并重新开始。有没有其他人遇到过这个问题?如何将新领域推广到现有图书馆?

4

3 回答 3

2

好吧,我已经回答了我自己的问题......

我最终做的是:

  1. 删除了整个表单库
  2. 创建表单库的新副本/版本,并从站点的内容类型库中添加表单的内容类型

这没有解决任何问题。不要那样做。

我的下一步可能是过度的,但我:

  1. 删除了整个表单库
  2. 从站点的内容类型库中删除了表单的内容类型
  3. 完全从 InfoPath 表单中删除了该字段
  4. 发布表单(减号字段)并将其上传到 Central Admin
  5. 在 InfoPath 中重新添加该字段并发布,再次以与我以前相同的方式推广该字段,并通过 Central Admin 上传
  6. 尝试将表单的内容类型添加到表单库的新副本/版本(内容类型不可用)
  7. 在网站集设置中停用并重新激活表单的功能
  8. 将表单的内容类型添加到新的表单库

那行得通!

我的理论是,为 InfoPath 表单停用和重新激活功能将强制更新提升的字段,并且在您完成之前,内容类型仍将使用旧字段(因此您在表单库级别将意味着一件事)。但是,如果您正在处理生产数据,这仍然是一个非常具有破坏性的操作,我希望仍然有一种更简单和“更安全”的方式来更新发布到 SharePoint 的 InfoPath 表单的提升属性/字段/列。

但可能没有。

于 2011-06-16T20:00:30.570 回答
2

只需停用,然后重新激活该功能对我来说就足够了。它似乎也没有破坏性。这可能取决于您的功能中的内容,在我的情况下是 InfoPath 表单,仅此而已。

于 2015-09-24T09:38:46.413 回答
0

我已经通过 PowerShell 解决(使用了解决方法)这个问题。
您需要知道:
1) 内容类型中的字段 ID
2) XPath 到 InfoPath 表单中的字段

接下来你必须使用这个 PowerShell 脚本:

Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue
$web = Get-SPWeb "https://intranet.company.com"
$contentTypeName = "Content Type Name"
$ct = $web.ContentTypes[$contentTypeName]

# Content Type Fields
# Field
$fieldId = "1209bb86-645b-4e56-aea2-265a325a98af"
$fieldLinks = $ct.FieldLinks | Where-Object {$_.Id -eq $fieldId}
$fieldLinks.ReadOnly = $true
$fieldLinks.XPath = "/my:Fields/my:FieldGroup/my:Field"

$ct.Update($true)
于 2016-03-23T08:29:53.447 回答