Как обновить ActivityParty существующей встречи с помощью динамика 365 webapi v9.0 - PullRequest
2 голосов
/ 14 июня 2019

Я хотел бы обновить ActivityParty уже существующей встречи в динамике 365 9.0, используя webapi v9.0. Моя цель - обновить обязательных участников и дополнительное поле участников.

Я пытаюсь создать запрос PUT, как описано в документации к webapi в разделе Связать сущности при обновлении с помощью свойства навигации с оценкой коллекции .

https://docs.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'.

Кто-нибудь имеет представление, что я делаю неправильно?

...