Dynamics 365 API - 操作 AddMembersTeam

问题描述

我正在使用 API 将多个用户添加到 Dynamics 中的团队。当我想添加单个用户时,我的代码可以正常工作,但我需要它来添加用户列表。

我正在使用 Python 进行这些调用

Here is the documentation I am going off of in Dynamics

这是我的代码的一部分:

        append_team_url = f"{BASE_DATA_URL}teams({team_guid})/Microsoft.Dynamics.CRM.AddMembersTeam"
    team_data = {
                    "Members": [
                        {
                            "ownerid": users_add
                        }
                    ]
                }
    append_users_response = requests.post(append_team_url,headers=api_headers_no_return,data=json.dumps(team_data))

users_add 是一个 GUID 列表:

['85927c2e-52e6-e511-80e7-0050569e0d14','ebb0ec50-733f-e811-a964-000d3a34edeb',

'd3d6ec34-df57-e511-80e4-0050569e44e8'、'19452bf7-3b57-e511-80e4-0050569e44e8']

我得到的错误

验证输入参数时出错:Microsoft.OData.ODataException:从 JSON 读取器读取时发现意外的“StartArray”节点。需要 'PrimitiveValue' 节点。\r\n 在 Microsoft.OData.Json.JsonReaderExtensions.ValidateNodeType(IJsonReader jsonReader,JsonNodeType expectednodeType)\r\n

任何帮助将不胜感激!

我知道我可以在 Python 中循环调用,但根据文档的措辞,似乎可以传递多个用户

解决方法

payload 应该是这样的,看看用户的 Json 数组。 Reference

POST [Organization URI]/api/data/v9.0/teams(team-guid-id)/Microsoft.Dynamics.CRM.AddMembersTeam HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0

{
"Members": [{
"@odata.type": "Microsoft.Dynamics.CRM.systemuser","ownerid": "85927c2e-52e6-e511-80e7-0050569e0d14"
},{
"@odata.type": "Microsoft.Dynamics.CRM.systemuser","ownerid": "ebb0ec50-733f-e811-a964-000d3a34edeb"
}]
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...