我将InfoPath表单设置为表单库上的主要内容类型,该表单工作正常。表单是通过Central Admin上传/激活的托管模板,包含许多提升字段。
现在我已经在InfoPath中向表单添加了另一个字段(并在表单上添加了一个控件,用于可见性)并将该字段设置为要提升到库中(通过Tools -> Form Options -> Property Promotion
确认,并且出版时的清单)和出版的&上传表格(使用中央管理员)。
当我在SharePoint中打开表单时(通过在表单库中创建新项目,或打开该库中的现有项目),我看到了我的新字段的控件,并可以在该字段中存储数据。但是,该字段未被提升,因为我无法在以下任何一项中看到它:
我已经尝试了所有我能想到的事情,让这个领域得到提升,而不是删除整个图书馆并重新开始。有没有其他人遇到这个问题?如何将新字段提升到现有库中?
答案 0 :(得分:2)
嗯,我有点回答了我自己的问题......
我最终做的最终是:
这没什么。不要那样做。
我的下一步可能过度,但我:
这很有效!
我的理论是,为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)