如何使用动态 365 webapi v9.0 更新现有约会的活动方



我想使用 webapi v9.0 更新 dynamics 365 9.0 中现有约会的活动方。我的目标是更新所需的与会者和可选的与会者字段。

我正在尝试创建一个 PUT 请求,如 webapi 文档中使用集合值导航属性在更新时关联实体中所述。

https://learn.microsoft.com/en-us/powerapps/developer/common-data-service/webapi/associate-disassociate-entities-using-web-api#associate-entities-on-update-using-collection-valued-navigation-property

下面你找到我正在使用的代码:

var activity = {};
var parties = [];
var requiredAttendee = {};
requiredAttendee["partyid_lead@odata.bind"] = "/leads(3fcc8c7b-e38d-e911-90f8-005056879361)";
requiredAttendee["participationtypemask"] = 5;
var optionalAttendee = {};
optionalAttendee["partyid_account@odata.bind"] = "/accounts(2e1261de-77cf-4f9b-a1bb-ff3a1f5a4add)";
optionalAttendee["participationtypemask"] = 6;
parties.push(requiredAttendee);
parties.push(optionalAttendee);
activity["value"] = parties;
var req = new XMLHttpRequest();
req.open("PUT", Xrm.Page.context.getClientUrl() + "/api/data/v9.0/appointments(20064d15-728e-e911-90f8-005056879361)/appointment_activity_parties", true);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.onreadystatechange = function () {
if (this.readyState === 4) {
req.onreadystatechange = null;
if (this.status === 204) {
} else {
Xrm.Utility.alertDialog(this.statusText);
}
}
};
req.send(JSON.stringify(activity));

我希望请求成功。但是,我收到带有以下错误消息的错误请求:

验证输入参数时出错:System.InvalidCastException:无法将类型为"System.Web.OData.Formatter.Deserialization.ODataResourceWrapper"的对象转换为类型"System.Web.OData.Formatter.Deserialization.ODataNestedResourceInfoWrapper"。

有人知道我做错了什么吗?

我正在研究同样的问题。我在统一接口页面上的 UI 中更改了所需的与会者,并在保存后查看了网络选项卡。看起来它执行了重新安排请求,尽管约会的日期/时间没有更改。

https://learn.microsoft.com/en-us/dynamics365/customer-engagement/web-api/reschedule

请求正文如下所示:

{
"Target": {
"@odata.type": "Microsoft.Dynamics.CRM.appointment",
"subject": "Test",
"appointment_activity_parties": [
{
"partyid_account@odata.bind": "/accounts(F722E432-2185-EC11-8D21-000D3A5ADF30)",
"participationtypemask": 5
},
{
"partyid_systemuser@odata.bind": "/systemusers(3CE09FD4-7EA7-E711-A94D-000D3A37D006)",
"participationtypemask": 7
}
],
"isalldayevent": false,
"activityid": "{E83124B1-77AB-EC11-983F-0022480B6627}"
},
"ReturnNotifications": true
}

最新更新