如何在Xrm.WebApi.retrieveRecord中使用expand参数

问题描述

我正在使用以下脚本从电子邮件实体获取参考实体。触发脚本后,它会提示'Could not find a property named 'new_queue' on type 'Microsoft.Dynamics.CRM.email''。 引用实体的方案名称为new_queue,我认为脚本的结构与Microsoft知识文章的指导相同。 (https://docs.microsoft.com/en-us/powerapps/developer/model-driven-apps/clientapi/reference/xrm-webapi/retrieverecord

有人可以指出这是怎么回事吗?

Xrm.WebApi.retrieveRecord("email",'4884f79f-42f3-ea11-a815-000d3a44afcc',"?$select=subject&$expand=new_queue($select=queueid,name)").then(
                    function success(result) {
                        var toLookup = new Array();
                        toLookup[0] = new Object();
                        toLookup[0].id = result.queueid;
                        toLookup[0].entityType = "queue";
                        toLookup[0].name = result.name;

                    alert(result.name);

                    },function (error) {
                        Xrm.Utility.alertDialog(error.message);
                    });

解决方法

此问题通常是区分大小写的架构名称的结果,请尝试使用new_Queue而不是new_queue。您始终可以通过检入xml元数据来验证这一点。

更新:

我记得活动(电子邮件,任务,约会等)很特殊,几乎没有什么不同。确保从开发人员资源下载元数据xml并检查正确的导航属性。它看起来应该像email_new_queuenew_queue_email

,

要知道在$ expand中使用它的正确导航属性名称:

请求“电子邮件”实体,并包含以下标头Prefer: odata.include-annotations="*"

在响应中,您应该找到一个类似于以下内容的字段:

"_new_queue_value@Microsoft.Dynamics.CRM.associatednavigationproperty": "????"

使用在“ ????”位置找到的名称。在$ expand表达式中。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...