Javascript 使用REST端点检索实体时自定义实体的ODataSetName
在我的restendpoint.js中,我有定义的retrieveRecord函数 我有一个函数,它应该在应用程序实体上的程序(查找字段)更改时运行。它应该基本上检索节目记录的属性 我对oDataSetName应该是什么有点困惑 我的实体的显示名称是Program 实体名称为ntt\U计划 我尝试过ProgrammeSet和ntt_ProgrammeSet,但没有成功。ajax调用导致失败回调方法,即在我的例子中,我在ProgrammeErrorCallBack中获得警报Javascript 使用REST端点检索实体时自定义实体的ODataSetName,javascript,ajax,dynamics-crm-2011,odata,Javascript,Ajax,Dynamics Crm 2011,Odata,在我的restendpoint.js中,我有定义的retrieveRecord函数 我有一个函数,它应该在应用程序实体上的程序(查找字段)更改时运行。它应该基本上检索节目记录的属性 我对oDataSetName应该是什么有点困惑 我的实体的显示名称是Program 实体名称为ntt\U计划 我尝试过ProgrammeSet和ntt_ProgrammeSet,但没有成功。ajax调用导致失败回调方法,即在我的例子中,我在ProgrammeErrorCallBack中获得警报 为什么会导致回调方法失
为什么会导致回调方法失败
oDataSetName应该是什么?它在CRM中的具体位置是什么?它是否总是在EntityName后面加上Set
我在这里有点迷茫,因为我对JS/AJAX/REST/JSON完全陌生
我猜你有资本化的问题。它应该是ntt_programmeSet
,或与之相等的东西,但外壳不同
我始终建议首先使用测试REST oData调用。它将防止您因套管问题而出现任何错误。您可以创建到CRM SDK端点的新odata连接,然后编写linq语句以提取信息。如果单击Lambda符号,它将为您提供ODataURL。只要您的javascript生成准确的url,您就应该很好。感谢您提供有关使用LinqPad测试REST oData调用的建议。稍后我们会就资本化问题回复您。而且,它就像一个符咒!
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);
}