新推荐的InfoPath字段不在表单库中?

时间:2011-06-15 20:40:17

标签: sharepoint sharepoint-2007 infopath infopath-2007

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

现在我已经在InfoPath中向表单添加了另一个字段(并在表单上添加了一个控件,用于可见性)并将该字段设置为要提升到库中(通过Tools -> Form Options -> Property Promotion确认,并且出版时的清单)和出版的&上传表格(使用中央管理员)。

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

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

我已经尝试了所有我能想到的事情,让这个领域得到提升,而不是删除整个图书馆并重新开始。有没有其他人遇到这个问题?如何将新字段提升到现有库中?

3 个答案:

答案 0 :(得分:2)

嗯,我有点回答了我自己的问题......

我最终做的最终是:

  1. 删除了整个表单库
  2. 创建表单库的新副本/版本,并从网站的内容类型库中添加表单的内容类型
  3. 这没什么。不要那样做。

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

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

      我的理论是,为InfoPath表单停用和重新激活功能将强制更新提升的字段,直到您完成该操作后,内容类型仍将使用旧字段(所以没有你在表单库级别执行意味着什么)。但是,如果您正在处理生产数据,那仍然是一个非常具有破坏性的操作,我希望仍然有一种更简单,更“安全”的方式来更新发布到SharePoint的InfoPath表单的提升属性/字段/列。 / p>

      但可能没有。

答案 1 :(得分:2)

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

答案 2 :(得分:0)

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

下一步您必须使用此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)