我正在尝试使用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
);
我收到“语法错误” 谁知道问题出在哪里?
非常感谢
答案 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。