繁体   English   中英

Dynamics CRM 2011 表单 jscript 以检索查找数据

[英]Dynamics CRM 2011 form jscript to retrieve lookup data

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

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

有 2 个具有关系的自定义实体: FundLegalEntity --> SubFund

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

借助 这个很棒的教程非常有用的 oData 工具,以及来自用户 @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 个警报(注释掉)给了我正确的结果。 第三个警报显示“对象对象”,我希望更新的控件没有更新。
请问有什么提示吗? 我想最后一个问题是在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" ,但我不知道该放什么。 对此有任何线索吗? 那代表什么?
这是子基金更新和脚本运行后法人实体的屏幕截图

您可以使用脚本中的 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“$ 未定义”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM