java - sharepoint 2013如何使用soap API更新托管元数据字段(TaxonomyFieldTypeMulti)

标签 java soap sharepoint metadata sharepoint-2013

我正在尝试使用 SOAP API 更新托管元数据字段 (TaxonomyFieldType),以下是我的 SOAP XML。

<Batch OnError = "Continue">
    <Method ID = "1" Cmd = "Update">
        <Field
            Name = "ID"
            xsi:type = "xsd:string"
            xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
            xmlns:xsd = "http://www.w3.org/2001/XMLSchema">12</Field>
        <Field
            Name = "TaskOutcome"
            xsi:type = "xsd:string"
            xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
            xmlns:xsd = "http://www.w3.org/2001/XMLSchema">Approved</Field>
        <Field
            Name = "Title"
            xsi:type = "xsd:string"
            xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
            xmlns:xsd = "http://www.w3.org/2001/XMLSchema">sample</Field>
        <Field
            Name = "FileRef"
            xsi:type = "xsd:string"
            xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
            xmlns:xsd = "http://www.w3.org/2001/XMLSchema">sample.txt</Field>
        <Field
            Name = "MM"
            DisplayName = "MM_0"
            Type = "TaxonomyFieldTypeMulti"
            xsi:type = "xsd:string"
            xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
            xmlns:xsd = "http://www.w3.org/2001/XMLSchema">-1;#test2|168baffc-6f72-46cd-8750-98d53ed1acca</Field>
    </Method>
</Batch>

服务器没有错误,托管元数据文件未更新。

您能帮我解决我在这里做错的事情吗?

最佳答案

当您在 SharePoint 中使用 Note fieldType 添加托管元数据字段时,它将添加字段类型为 Note 的隐藏字段和字段类型为 TaxonomyFieldTypeMulti 或 TaxonomyFieldType 的非隐藏字段

<Field
   Name = "MM"
    DisplayName = "MM_0"
    Type = "TaxonomyFieldTypeMulti"
    xsi:type = "xsd:string"
    xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd = "http://www.w3.org/2001/XMLSchema">-1;#test2|168baffc-6f72-46cd-8750-98d53ed1acca</Field>

您不需要更新上述字段,而是需要使用 DisplayName =“MM_0”和 Name =“Some Id”更新其隐藏注释字段类型

<Field
    Name = "of525fec62a44747aa623e3c49dac9e8"
    DisplayName = "MM_0"
    Type = "Note"
    xsi:type = "xsd:string"
    xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd = "http://www.w3.org/2001/XMLSchema">test2|168baffc-6f72-46cd-8750-98d53ed1acca</Field>

在 SOAP 中,您的请求应如下所示

<Method Cmd="Update" ID="1">
<Field Name="ID">12</Field>
 <Field Name="Title">Sample</Field>
 <Field Name="of525fec62a44747aa623e3c49dac9e8">test2|168baffc-6f72-46cd-8750- 
 98d53ed1acca</Field>
  </Method>

如果您使用隐藏字段类型为“注释”的架构生成架构,您将获得带有“Name="of525fec62a44747aa623e3c49dac9e8”的架构,您可以轻松更新该值。

Sharpoint 返回为 Note fieldType as

<Field Type="Note" DisplayName="MM_0" StaticName="of525fec62a44747aa623e3c49dac9e8" 
 Name="of525fec62a44747aa623e3c49dac9e8" 
  ID="{6DDB9ADF-BC5E-4D07-BE70-F450A24C7520}" ShowInViewForms="FALSE" Required="FALSE" 
  CanToggleHidden="TRUE"  Hidden="TRUE"/>

希望以上解释能够解决您的问题!!!

关于java - sharepoint 2013如何使用soap API更新托管元数据字段(TaxonomyFieldTypeMulti),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58534719/

相关文章:

java - 没有 web.xml 的 Wicket 口;纯java配置

java - 为什么两个最低和最高优先级的线程仍然交错?

javaounceBall鼠标逃逸

python - Zapier 频繁超时 10.01 秒

sharepoint - 以编程方式获取团队项目的 SharePoint URL

asp.net - 缺少 MOSS 2007 功能?

java - 从命令行读取文件名并在主方法之外使用它

html - 我如何在 HTML5 中构建一个不公开其用户名和密码的 soap 客户端?

api - 政府向公众提供哪些公共(public) API?

SharePoint TimerJobs 和线程