Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sharepoint 表单库中没有新升级的InfoPath字段?_Sharepoint_Sharepoint 2007_Infopath_Infopath 2007 - Fatal编程技术网

Sharepoint 表单库中没有新升级的InfoPath字段?

Sharepoint 表单库中没有新升级的InfoPath字段?,sharepoint,sharepoint-2007,infopath,infopath-2007,Sharepoint,Sharepoint 2007,Infopath,Infopath 2007,我将InfoPath表单设置为表单库的主要内容类型,该表单库工作正常。表单是通过管理中心上传/激活的托管模板,包含许多提升字段 现在,我已经在InfoPath中向表单添加了另一个字段(并在表单上添加了一个控件,用于可见性),并将该字段设置为升级到库中(通过工具->表单选项->属性升级以及发布时的列表确认),并发布和上载表单(使用管理中心) 在SharePoint中打开表单时(通过在表单库中创建新项或打开该库中的现有项),我会看到新字段的控件,并可以在该字段中存储数据。但是,该字段未升级,因为我无

我将InfoPath表单设置为表单库的主要内容类型,该表单库工作正常。表单是通过管理中心上传/激活的托管模板,包含许多提升字段

现在,我已经在InfoPath中向表单添加了另一个字段(并在表单上添加了一个控件,用于可见性),并将该字段设置为升级到库中(通过
工具->表单选项->属性升级以及发布时的列表确认),并发布和上载表单(使用管理中心)

在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)