![](/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.