在我的restendpoint.js中,我将retrieveRecord函数定义为here
我有一个函数应该在Application实体上更改Program(查找字段)时运行。它应该基本上检索程序记录的属性。
我对oDataSetName应该是什么感到困惑?
我的实体的显示名称是Program 实体的名称是ntt_programme
我尝试过ProgrammeSet和ntt_ProgrammeSet但没有成功。 ajax调用导致失败回调方法,即,在我的情况下,我得到警告In ProgrammeErrorCallBack
我有点迷失在这里因为我是JS / AJAX / REST / JSON的新手!
ProgrammeOnChange: function () {
var programmeLookup = Xrm.Page.getAttribute("new_programmeid").getValue();
if (programmeLookup != null && programmeLookup[0] && programmeLookup[0].name != null) {
var programmeId = programmeLookup[0].id;
alert(programmeId);
var oDataSetName = "ProgrammeSet";
CRM2011Common.Functions.retrieveRecord(programmeId, oDataSetName, CRM2011.Application.ProgrammeSuccessCallBack, CRM2011.Application.ProgrammeErrorCallBack);
}
},
ProgrammeSuccessCallBack: function (result) {
alert("In ProgrammeSuccessCallBack");
var programme = result;
alert(programme.new_name);
},
ProgrammeErrorCallBack: function (XmlHttpRequest, textStatus, errorThrown) {
alert("In ProgrammeErrorCallBack");
alert('Error retrieving Programme: ' + textStatus + ' ' + errorThrown);
}
答案 0 :(得分:1)
我猜你有大写问题。它应该是ntt_programmeSet
,或类似的东西,但具有不同的套管。
我总是建议先使用LinqPad来测试REST oData调用。它可以防止因套管问题而导致任何错误。您可以创建与CRM SDK端点的新odata连接,然后编写linq语句以撤回信息。如果单击Lambda符号,它将为您提供odata URL。只要您的javascript生成确切的网址,您就应该很好。