【问题标题】:sharepoint 2013 how to update managed metadata field (TaxonomyFieldTypeMulti) using soap APIsharepoint 2013 如何使用soap API更新托管元数据字段(TaxonomyFieldTypeMulti)
【发布时间】:2020-02-20 09:37:55
【问题描述】:

我正在尝试使用 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>

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

你能帮我解决一下我在这里做错了什么吗?

【问题讨论】:

    标签: java soap sharepoint metadata sharepoint-2013


    【解决方案1】:

    当您在 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" 更新其隐藏的 Note 字段类型,而不是更新上述字段

    <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 return as 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"/>
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-13
      • 1970-01-01
      相关资源
      最近更新 更多