Ошибка неверного запроса при вызове пользовательского действия через Javascript

Я создал пользовательское действие в CRM 365, у которого есть один входной параметр ссылки на сущность типа, и он ссылается на сущность пользователя, я попытался изменить входной параметр на другой тип, и он работает хорошо. Поэтому я думаю, что проблема заключается в том, как я передаю значение ссылки на сущность, я пытался изменить его, но мне не повезло, поэтому кто-то может сказать мне, что не так в приведенном ниже коде?

function CreateBlockHistory() {
    var Id = Xrm.Page.data.entity.getId();
    Id = Id.replace("{", "").replace("}", "");
    var data = {
        "BlockedBy": {
            "ohd_blockedby": Xrm.Page.context.getUserId().replace("}", "").replace("{", ""),
            "@odata.type": "Microsoft.Dynamics.CRM.systemuser"
        }
    };
    var serverURL = window.parent.Xrm.Page.context.getClientUrl();
    var req = new XMLHttpRequest();
    req.open("POST", serverURL + "/api/data/v8.1/new_units(" + Id + ")/Microsoft.Dynamics.CRM.ohd_ActionTest", false);
    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 /* request completed */) {
            req.onreadystatechange = null;
            if (this.status == 200 /* response ready */) {
                var data = JSON.parse(this.response);
            }
            else {
                var error = JSON.parse(this.response).error;
            }
        }
    };
    req.send(window.JSON.stringify(data));
}

1 ответ

  1. Начать с 400 Bad request - это очень общая бесполезная ошибка, вместо того, чтобы полагаться на это - попробуйте запустить тот же фрагмент в консоли браузера или CRM REST Builder, передав жестко запрограммированные параметры guid, чтобы увидеть состояние выполнения. Вы можете отлаживать тоже
  2. я вижу твой XMLHttpRequest работает синхронно (параметр bool как false), переключите его на Async и посмотрите
  3. Также я вижу, что вы получаете Xrm контекст со смешанным подходом, как window.parent иногда и прямо иногда. window.JSON тоже. Если это выполняется в веб-ресурсе, а не в какой-либо форме объекта, исправьте это соответствующим образом
  4. Вы можете зарегистрировать плагин в этом сообщении с пользовательским действием, профиле / отладке и посмотреть любую подсказку
Другие вопросы по тегам