【问题标题】:not able to get result length from ms crm web api call output in js无法从 js 中的 ms crm web api 调用输出获取结果长度
【发布时间】:2017-09-14 00:36:43
【问题描述】:

下面是我的代码 sn-p。我正在尝试从 Annotation 实体的 ManyToOne 关系中获取所有引用的实体。结果,我能够得到对象,但是当我试图得到它的长度时,它给出了“未定义”。请提供您对此的宝贵建议,以及我们如何将引用实体分配给结果中的变量。

是否有可能使用 Web API 调用 (Dynamics 365) 检索与注释实体关联的所有实体。

function fetchIt()
{
    var req = new XMLHttpRequest();
    var webAPICall = Xrm.Page.context.getClientUrl() + "/api/data/v8.2/EntityDefinitions(LogicalName='annotation')?$select=LogicalName&$expand=ManyToOneRelationships($select=ReferencedEntity)";
    req.open("GET", webAPICall, true);
    req.setRequestHeader("OData-MaxVersion", "4.0");
    req.setRequestHeader("OData-Version", "4.0");
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.setRequestHeader("Prefer", "odata.include-annotations=\"*\"");
    req.onreadystatechange = function ()
    {
        if (this.readyState === 4)
        {
            req.onreadystatechange = null;
            if (this.status === 200) {
                
                var results = JSON.parse(this.response);
                alert("results.valuelength: " +results.value.length);
                for (var i = 0; i < results.value.length; i++)
                {
                    var referencedEntity = results.value[i]["ReferencedEntity"];
                }
            } else {
                Xrm.Utility.alertDialog(this.statusText);
            }
        }
    };
    }

【问题讨论】:

    标签: javascript dynamics-crm


    【解决方案1】:

    你有两个问题

    1. 您从不发送请求。你错过了req.send()
    2. 不是results.value,而是results.ManyToOneRelationships

    然后就可以了

    【讨论】:

    • 是的@jasonscript,你是对的。所以,我用添加缺失的东西来回答它。谢谢。
    【解决方案2】:

    那里错过了一件小事。为了检查长度,我们需要使用 ManyToOneRelationships (results.ManyToOneRelationships.length) 而不是 value。谢谢。

    var req = new XMLHttpRequest();
    var webAPICall = Xrm.Page.context.getClientUrl() + "/api/data/v8.2/EntityDefinitions(LogicalName='annotation')?$select=LogicalName&$expand=ManyToOneRelationships($select=ReferencedEntity)";
    //alert(webAPICall);
    req.open("GET", webAPICall, true);
    req.setRequestHeader("OData-MaxVersion", "4.0");
    req.setRequestHeader("OData-Version", "4.0");
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.setRequestHeader("Prefer", "odata.include-annotations=\"*\"");
    req.onreadystatechange = function ()
    {            
        if (this.readyState === 4)
        {                
            req.onreadystatechange = null;
            if (this.status === 200)
            {                   
                var results = JSON.parse(this.response);                    
                alert("Results length: " + results.ManyToOneRelationships.length);                   
                for (var i = 0; i < results.ManyToOneRelationships.length; i++)
                {
                    var referencedEntity = results.ManyToOneRelationships[i]["ReferencedEntity"];
                }
            } else {
                Xrm.Utility.alertDialog(this.statusText);
            }
        }
    };
    req.send();

    【讨论】:

      猜你喜欢
      • 2019-07-02
      • 2018-12-20
      • 1970-01-01
      • 2022-08-13
      • 2017-03-08
      • 1970-01-01
      • 2018-10-18
      • 2012-04-26
      • 2012-05-04
      相关资源
      最近更新 更多