我的错误是什么,为什么我会得到“预期的对象”错误,最终,如何调试jScript?
我是Dynamics CRM的新手,我想做一个小的自定义,似乎需要jScript。实例(版本2011)主要用于管理客户端支持。
有2个自定义实体具有关系:FundLegalEntity - >子基金
案例(事件)表格与FundLegalEntity和SubFund相关联 当用户输入SubFund时,我希望自动填充FundLegalEntity(如果为空) 我的问题是:如何编码?
在this great tutorial和the very usefull oData Tool的帮助下,以及@dub用户的帮助(下方),这是我的最新代码:
function recalcParent()
{
var lookupValue = Xrm.Page.getAttribute("new_subfundid").getValue();
var subFundId= lookupValue[0].id;
// alert(subFundId);
var request = Xrm.Page.context.getServerUrl() +
"/xrmServices/2011/OrganizationData.svc/new_subfundSet?" +
"$select=new_LegalEntityId&" +
"$filter=new_subfundId eq guid'"+ subFundId+ "'";
// alert(request);
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "json",
url: request,
async: false,
beforeSend:
function (XMLHttpRequest)
{
XMLHttpRequest.setRequestHeader("Accept", "application/json");
},
success:
function (data, textStatus, XmlHttpRequest)
{
var result = data.d.results[0];
alert(result);
var parentFundLookup = [{ entityType : "new_fund", id : result.LegalEntityId, name : result.FundLegalEntity}];
// Set the value of the parent fund lookup
},
error:
function (XmlHttpRequest, textStatus, errorThrown)
{
alert('Failed');
}
});
}
我没有更多错误,前2个警报(评论出来)正在给我正确的结果。
第3个警报显示“对象对象”,我期望更新的控件不会更新
有什么提示吗?我想最后一个问题出在var parentFundLookup =
行......左右
我对所有这些不同的名字感到有点困惑
谢谢 !
现在几乎正常工作:当我修改事件中的子基金时,法律实体会使用正确的法人实体名称进行更新,但文本框有一个奇怪的方面,文本框左侧的图标也很奇怪。这是最新的代码:
success:
function (data, textStatus, XmlHttpRequest)
{
var result = data.d.results[0];
//alert(result.new_LegalEntityId.Name);
var parentFundLookup = [{ entityType : "new_LegalEntity", id : result.new_LegalEntityId.Id, name : result.new_LegalEntityId.Name}];
Xrm.Page.getAttribute("new_fundlegalentityid").setValue(parentFundLookup);
},
我怀疑问题出在entityType : "new_LegalEntity"
,但我不知道该放什么。这有什么线索吗?这代表什么?
子基金更新后,法律实体的Here is a screenshot已经运行。
答案 0 :(得分:3)
您可以使用脚本中的Rest端点从组织服务中检索数据。这是一个让你入门的例子。您还可以查看SDK文档,其中包含许多有用的信息。
var subfundid; // get the id from the lookup
var request =
Xrm.Page.context.getServerUrl() +
"/XRMServices/2011/OrganizationData.svc/new_subfundSet?" +
"$select=ParentId&" +
"$top=1&" +
"$filter=new_subfundId eq guid'"+ subfundid + "'";
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "json",
url: request,
async: false,
beforeSend:
function (XMLHttpRequest)
{
XMLHttpRequest.setRequestHeader("Accept", "application/json");
},
success:
function (data, textStatus, XmlHttpRequest)
{
var result = data.d.results[0];
var parentFundLookup = [{ entityType : "new_fund", id : result.ParentId, name : result.FundName}];
// Set the value of the parent fund lookup
},
error:
function (XmlHttpRequest, textStatus, errorThrown)
{
alert('Failed');
}
});
由于此代码使用JQuery,因此您需要将JQuery库添加为Web资源并将其包含在表单中。见CRM 2011 "$ is undefined"