CRM动态:创建记录XrmServiceToolkit.Rest.Create时出错

时间:2019-05-29 15:30:10

标签: javascript dynamics-crm

我正在尝试使用js创建注释:XrmServiceToolkit.Rest.Create。

我一直都遇到systax错误,但是我找不到问题...

这是我的代码

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 :(得分:0)

为什么不使用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上查看我的代码,则需要将实体名称指定为AnnotationSet。另外,您不需要ID,因为一旦创建记录,CRM就会创建ID。