![](/img/trans.png)
[英]Deploy an InfoPath form with promoted fields to SharePoint within a WSP
[英]Newly Promoted InfoPath fields not in Form Library?
我将InfoPath表单设置为工作正常的表单库上的主要内容类型。 该表单是通过管理中心上载/激活的托管模板,并且包含许多“推荐字段”。
现在,我在InfoPath中向表单添加了另一个字段(并在表单上添加了控件,以提高可见性),并将该字段设置为要提升到库中(通过“ Tools -> Form Options -> Property Promotion
,以及发布时的列表),以及发布和上传表单(使用Central Admin)。
当我在SharePoint中打开表单时(通过在表单库中创建新项目,或在该库中打开现有项目),我看到了新字段的控件,并且可以在该字段中存储数据。 但是,该字段未被提升,因为在以下任何情况下我都看不到该字段:
我尽了所有我能想到的一切,以使该字段得到提升,而不是删除整个库并重新开始。 还有其他人遇到这个问题吗? 如何将新字段提升为现有图书馆?
只需停用然后重新激活该功能就足够了。 它也似乎没有破坏性。 这可能取决于您功能的内容,在我的情况下,取决于InfoPath表单,仅此而已。
好吧,我已经回答了我自己的问题...
我最终要做的最终是:
这没有解决任何问题。 不要那样做
我的下一步可能太过分了,但我:
而且有效!
我的理论是,停用和重新激活InfoPath表单的功能将强制更新升级的字段,并且在完成该操作之前,“内容类型”仍将使用旧的字段(因此您在表单库级别将意味着问题。 但是,如果您要处理生产数据,那将仍然是非常具有破坏性的操作,我希望还有一种更轻松,更“安全”的方式来更新发布到SharePoint的InfoPath表单的“ Promoted Properties / Fields / Columns”。
但是可能没有。
我已经通过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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.