Dynamics CRM 2011形成jscript以检索查找数据

时间:2011-08-17 13:09:39

标签: dynamics-crm dynamics-crm-2011

我的错误是什么,为什么我会得到“预期的对象”错误,最终,如何调试jScript?

我是Dynamics CRM的新手,我想做一个小的自定义,似乎需要jScript。实例(版本2011)主要用于管理客户端支持。

有2个自定义实体具有关系:FundLegalEntity - >子基金

案例(事件)表格与FundLegalEntity和SubFund相关联 当用户输入SubFund时,我希望自动填充FundLegalEntity(如果为空) 我的问题是:如何编码

this great tutorialthe 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已经运行。

1 个答案:

答案 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"