簡體   English   中英

新提升的InfoPath字段不在表單庫中嗎?

[英]Newly Promoted InfoPath fields not in Form Library?

我將InfoPath表單設置為工作正常的表單庫上的主要內容類型。 該表單是通過管理中心上載/激活的托管模板,並且包含許多“推薦字段”。

現在,我在InfoPath中向表單添加了另一個字段(並在表單上添加了控件,以提高可見性),並將該字段設置為要提升到庫中(通過“ Tools -> Form Options -> Property Promotion ,以及發布時的列表),以及發布和上傳表單(使用Central Admin)。

當我在SharePoint中打開表單時(通過在表單庫中創建新項目,或在該庫中打開現有項目),我看到了新字段的控件,並且可以在該字段中存儲數據。 但是,該字段未被提升,因為在以下任何情況下我都看不到該字段:

  • “項目屬性”頁面(查看/編輯)
  • 創建/修改視圖頁面
  • 表單庫的設置頁面上的列列表
  • 表單庫的“設置”頁面上表單的“內容類型”的“列”列表

我盡了所有我能想到的一切,以使該字段得到提升,而不是刪除整個庫並重新開始。 還有其他人遇到這個問題嗎? 如何將新字段提升為現有圖書館?

只需停用然后重新激活該功能就足夠了。 它也似乎沒有破壞性。 這可能取決於您功能的內容,在我的情況下,取決於InfoPath表單,僅此而已。

好吧,我已經回答了我自己的問題...

我最終要做的最終是:

  1. 刪除了整個表單庫
  2. 創建了表單庫的新副本/版本,並從網站的內容類型庫向其中添加了表單的內容類型

這沒有解決任何問題。 不要那樣做

我的下一步可能太過分了,但我:

  1. 刪除了整個表單庫
  2. 從網站的內容類型庫中刪除了表單的內容類型
  3. 完全從InfoPath表單中刪除了該字段
  4. 發布表單(減號字段)並將其上傳到Central Admin
  5. 在InfoPath中重新添加該字段並發布,以與以前相同的方式再次對該字段進行了推廣,並通過Central Admin將其上傳
  6. 試圖將表單的內容類型添加到表單庫的新副本/版本中(該內容類型不可用)
  7. 在網站集設置中停用並重新激活表單的功能
  8. 將表單的內容類型添加到新的表單庫

而且有效!

我的理論是,停用和重新激活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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM