繁体   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