更新SharePoint列表项目以支持多值管理元数据字段

发布:2024-09-20 10:33 阅读:34 点赞:0

一. 问题陈述

使用Azure Logic App更新SharePoint列表项目,以支持多值管理元数据字段。

二. 前提条件

  • Azure Logic App(在SharePoint环境中具有适当权限)。
  • SharePoint列表,字段类型为可接受多个值的分类字段(Taxonomy Field)。

三. 背景信息

使用SharePoint REST API端点,可以对SharePoint列表项执行CRUD操作。SharePoint期望请求具有标准的有效负载结构、头信息和适当的端点映射。

使用不同的方法类型可以对SharePoint列表/库执行各种操作。更新列表项时,建议使用以下头信息,方法类型为“POST”:

{
  "If-Match""*",
  "X-HTTP-Method""MERGE",
  "accept""application/json;odata=minimalmetadata",
  "content-type""application/json;odata=minimalmetadata"
}

四. 更新列表项

一般来说,更新SharePoint列表项时,需调用以下端点:

/sites//_api/web/Lists/getbytitle('')/items()

有效负载的格式如下:

{
  "",
  "",
  ""
}

对于多值字段,负载格式有所不同:

{
    "User type column InternalName": {
        "results": [userId1, userId2]  // 用户ID为整数
    },
    "Multi Select column InternalName": {
        "results": ["value1""value2"]  // 值为字符串
    }
}

支持的快照

以下是Azure Logic App中HTTP操作以更新列表项的示例快照。

五. 实际需求

假设客户有一个名为“审核列表”的SharePoint列表,其中包含分类字段,显示名称为“市场”(Market),字段类型为“分类元数据”(Taxonomy Metadata),支持多个值。

同时还有一个库“SitePages”,允许用户创建/编辑/发布页面,页面属性为“DistributionZone”,也是一个接受多个值的分类字段。

当用户在“SitePages”库中创建/更新项时,预计在“审核列表”中会生成包含页面属性详细信息的条目。

六. 实施步骤

1. 创建Azure Logic App

创建Azure Logic App并启用托管身份,以便其可以访问SharePoint站点。

2. 配置触发器

配置Logic App的触发器,例如手动触发(传递项ID),然后添加HTTP操作。

3. 配置HTTP操作以获取项详细信息

将HTTP操作的方法设置为GET,以从“SitePages”库获取匹配的项详细信息。

端点:

/sites//_api/web/Lists/getbytitle('')/Items()?$Select=ID,Title,DistributionZone

4. 收集DistributionZone字段的所有值

从上述HTTP操作响应中收集“DistributionZone”字段的所有值,并将其存储在Logic App的变量中。

5. 转换DistributionZone值

将“DistributionZone”值转换为单个字符串,语法为“WssId;#Term Label|Term GUID”。对“DistributionZone”值进行循环处理,使用JSON解析操作,附加所有术语集值,分隔符为“;”。

我们将WssId设置为-1,因为SharePoint会自动根据匹配的术语标签解析正确的WssID,或者在未找到时创建。

6. 获取分类字段的隐藏列内部名称

配置HTTP操作以获取审核列表中分类字段对应的隐藏列的内部名称。

端点:

/sites//_api/web/Lists/getbytitle('')/fields?$filter=Title eq 'Market_0'&$select=Title,InternalName

7. 配置HTTP操作以添加项目

配置HTTP操作以使用POST方法将项添加到SharePoint列表。此操作将使用隐藏字段的内部名称引用审核列表中的分类字段。

HTTP操作

有效负载:

{
    "Market_0": {
        "results": ["WssId;#Term Label|Term GUID"]
    }
}

七. 认证和结果

在此步骤中,确保您已正确设置身份验证,以便Logic App可以成功连接到SharePoint。根据成功与否,您将获得更新后的项的结果。

通过以上步骤,您可以成功地使用Azure Logic App更新SharePoint列表项,支持多值管理元数据字段。确保在每一步中验证设置和配置,以确保一切顺利运行。