Sharepoint 表单库中没有新升级的InfoPath字段?
我将InfoPath表单设置为表单库的主要内容类型,该表单库工作正常。表单是通过管理中心上传/激活的托管模板,包含许多提升字段 现在,我已经在InfoPath中向表单添加了另一个字段(并在表单上添加了一个控件,用于可见性),并将该字段设置为升级到库中(通过Sharepoint 表单库中没有新升级的InfoPath字段?,sharepoint,sharepoint-2007,infopath,infopath-2007,Sharepoint,Sharepoint 2007,Infopath,Infopath 2007,我将InfoPath表单设置为表单库的主要内容类型,该表单库工作正常。表单是通过管理中心上传/激活的托管模板,包含许多提升字段 现在,我已经在InfoPath中向表单添加了另一个字段(并在表单上添加了一个控件,用于可见性),并将该字段设置为升级到库中(通过工具->表单选项->属性升级以及发布时的列表确认),并发布和上载表单(使用管理中心) 在SharePoint中打开表单时(通过在表单库中创建新项或打开该库中的现有项),我会看到新字段的控件,并可以在该字段中存储数据。但是,该字段未升级,因为我无
工具->表单选项->属性升级以及发布时的列表确认),并发布和上载表单(使用管理中心)
在SharePoint中打开表单时(通过在表单库中创建新项或打开该库中的现有项),我会看到新字段的控件,并可以在该字段中存储数据。但是,该字段未升级,因为我无法在以下任何一项中看到它:
- 项目属性页(查看/编辑)
- “创建/修改视图”页面
- 表单库的“设置”页面上的列列表
- 表单库的“设置”页面上表单内容类型的列列表
除了删除整个库并重新开始之外,我已经尝试了所有我能想到的方法来提升这个领域。还有其他人遇到过这个问题吗?如何将一个新领域升级到现有库中?好吧,我已经回答了我自己的问题
我最终做的是:
删除了整个表单库
创建了表单库的新副本/版本,并从网站的内容类型库向其中添加了表单的内容类型
这没有解决任何问题。不要那样做
我的下一步可能是过度的,但我:
删除了整个表单库
已从网站的内容类型库中删除表单的内容类型
已从InfoPath表单中完全删除该字段
发布表单(减去字段)并将其上载到管理中心
在InfoPath中重新添加并发布该字段,再次以与以前相同的方式提升该字段,并通过管理中心将其上载
试图将表单的内容类型添加到表单库的新副本/版本中(内容类型不可用)
在网站集设置中停用并重新激活表单的功能
已将表单的内容类型添加到新表单库中
这就成功了
我的理论是,停用和重新激活InfoPath表单的功能将强制更新升级的字段,并且在更新之前,内容类型仍将使用旧字段(因此,在表单库级别执行的任何操作都没有意义)。但是,如果您正在处理生产数据,那么这仍然是一个非常具有破坏性的操作,我希望仍然有一种更简单、更“安全”的方法来更新发布到SharePoint的InfoPath表单的升级属性/字段/列
但是可能没有。对我来说,只要停用然后重新激活该功能就足够了。它似乎也没有破坏性。这可能取决于您的功能,在我的情况下是InfoPath表单,而不是其他功能。我已通过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)