Ошибка создания записи XrmServiceToolkit.Rest.Create - PullRequest
0 голосов
/ 29 мая 2019

Я пытаюсь создать аннотацию, используя js: XrmServiceToolkit.Rest.Create.

Я все время получаю системную ошибку, но не могу найти проблему ...

вот мой код

var id = parent.Xrm.Page.data.entity.getId().replace('{', '').replace('}', '');
        var nam = parent.Xrm.Page.data.entity.getEntityName();

        var entity = {};

        entity.subject = "title";
        entity.notetext = "description";
        entity.objectid = {
            id: id,
            logicalname: nam
        };



        XrmServiceToolkit.Rest.Create(
        entity,
        "annotation",
        function (result) {
            alert("OK");
        },
        function (error) {
            //Xrm.Utility.alertDialog(error.message, null);
            alert("KO: " + error.message);
        },
        false
        );

Я получаю "Синтаксическая ошибка" кто-нибудь знает в чем проблема ??

Большое спасибо

1 Ответ

0 голосов
/ 30 мая 2019

почему бы вам не использовать Webapi, если вы используете crm 2016 или более позднюю версию, лучше переходите с Webapi. Ниже приведен фрагмент кода для webapi, который создает заметку.

var entity = {};
entity.subject = "Test from webapi";
entity.notetext = "just add some text";

var req = new XMLHttpRequest();
req.open("POST", Xrm.Page.context.getClientUrl() + "/api/data/v9.1/annotations", false);
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.onreadystatechange = function() {
    if (this.readyState === 4) {
        req.onreadystatechange = null;
        if (this.status === 204) {
            var uri = this.getResponseHeader("OData-EntityId");
            var regExp = /\(([^)]+)\)/;
            var matches = regExp.exec(uri);
            var newEntityId = matches[1];
        } else {
            Xrm.Utility.alertDialog(this.statusText);
        }
    }
};
req.send(JSON.stringify(entity));

А теперь с XrmserviceToolkit

var entity = {};
entity.Subject = "Test from webapi 1234";
entity.NoteText = "just add some text 1234";

XrmServiceToolkit.Rest.Create(entity, "AnnotationSet", function(result) {
    var newEntityId = result.AnnotationId;
}, function(error) {
    Xrm.Utility.alertDialog(error.message);
}, false);

Кроме того, в чем проблема с вашим кодом? Если вы посмотрите мой код выше для XrmserviceToolkit, вам нужно дать имя Entity как AnnotationSet. Также вам не нужен Id, потому что CRM создаст Id после создания записи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...