Javascript 无法从js中的ms crm web api调用输出获取结果长度

Javascript 无法从js中的ms crm web api调用输出获取结果长度,javascript,dynamics-crm,Javascript,Dynamics Crm,下面是我的代码片段。我正在尝试从注释实体的多个关系中获取所有引用的实体。结果,我可以得到物体,但当我试图得到它的长度时,它给出了“未定义”。请提供您对此的宝贵建议,以及我们如何从结果中将引用的实体分配给变量 或 是否可以使用Web API调用(Dynamics 365)检索与注释实体关联的所有实体。 函数fetchIt() { var req=新的XMLHttpRequest(); var webAPICall=Xrm.Page.context.getClientUrl()+“/api/dat

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

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

函数fetchIt()
{
var req=新的XMLHttpRequest();
var webAPICall=Xrm.Page.context.getClientUrl()+“/api/data/v8.2/EntityDefinitions(LogicalName='annotation')?$select=LogicalName&$expand=manyToneRelationships($select=ReferencedEntity)”;
请求打开(“获取”,webAPICall,true);
请求setRequestHeader(“OData MaxVersion”,“4.0”);
请求setRequestHeader(“OData版本”、“4.0”);
请求setRequestHeader(“接受”、“应用程序/json”);
setRequestHeader(“内容类型”,“应用程序/json;字符集=utf-8”);
req.setRequestHeader(“首选”、“odata.include注释=\”*\”);
req.onreadystatechange=函数()
{
if(this.readyState==4)
{
req.onreadystatechange=null;
如果(this.status==200){
var results=JSON.parse(this.response);
警报(“results.valuelength:+results.value.length”);
对于(var i=0;i}
那里遗漏了一件小事。为了检查长度,我们需要使用manytonerelationships(
results.manytonerelationships.length
)而不是value。多谢各位

var-req=new-XMLHttpRequest();
var webAPICall=Xrm.Page.context.getClientUrl()+“/api/data/v8.2/EntityDefinitions(LogicalName='annotation')?$select=LogicalName&$expand=manyToneRelationships($select=ReferencedEntity)”;
//警报(webAPICall);
请求打开(“获取”,webAPICall,true);
请求setRequestHeader(“OData MaxVersion”,“4.0”);
请求setRequestHeader(“OData版本”、“4.0”);
请求setRequestHeader(“接受”、“应用程序/json”);
setRequestHeader(“内容类型”,“应用程序/json;字符集=utf-8”);
req.setRequestHeader(“首选”、“odata.include注释=\”*\”);
req.onreadystatechange=函数()
{            
if(this.readyState==4)
{                
req.onreadystatechange=null;
如果(this.status==200)
{                   
var results=JSON.parse(this.response);
警报(“结果长度:+结果.manytonerelationships.length”);
对于(变量i=0;i请求发送()遗漏了一件小事。为了检查长度,我们需要使用manytonerelationships(
results.manytonerelationships.length
)而不是value。多谢各位

var-req=new-XMLHttpRequest();
var webAPICall=Xrm.Page.context.getClientUrl()+“/api/data/v8.2/EntityDefinitions(LogicalName='annotation')?$select=LogicalName&$expand=manyToneRelationships($select=ReferencedEntity)”;
//警报(webAPICall);
请求打开(“获取”,webAPICall,true);
请求setRequestHeader(“OData MaxVersion”,“4.0”);
请求setRequestHeader(“OData版本”、“4.0”);
请求setRequestHeader(“接受”、“应用程序/json”);
setRequestHeader(“内容类型”,“应用程序/json;字符集=utf-8”);
req.setRequestHeader(“首选”、“odata.include注释=\”*\”);
req.onreadystatechange=函数()
{            
if(this.readyState==4)
{                
req.onreadystatechange=null;
如果(this.status==200)
{                   
var results=JSON.parse(this.response);
警报(“结果长度:+结果.manytonerelationships.length”);
对于(变量i=0;i您有两个问题

  • 你从不发送你的请求。您缺少
    req.send()
  • 它将不是
    结果。value
    它将是
    结果。许多关系
  • 然后它就会工作了你有两个问题

  • 你从不发送你的请求。您缺少
    req.send()
  • 它将不是
    结果。value
    它将是
    结果。许多关系

  • 然后它就会工作了

    Yes@jasonscript,你是对的。因此,我用添加缺少的东西来回答它。谢谢。是的@jasonscript,你说得对。因此,我用添加缺少的东西来回答它。非常感谢。