如何使用XRM SDK从MS CRM获取所有查找值

时间:2013-12-02 23:07:14

标签: c# xrm

我正在编写一个使用XRM SDK从MS CRM 11获取数据的应用程序。对于类型查找的字段,我想获得相应的定义,以便我可以从相关实体中检索所有可能的ID和值。

我似乎无法找到解决这个问题的方法。我知道我可以获取实体实例值的实体引用以及如何从元数据中获取目标实体,但找不到任何东西来帮助我获取查找字段的所有查找ID和值。请帮忙!

编辑:

为了帮助他人,经过几天的调查,我确信我想要做的是不可能在服务器端使用sdk。

我可以使用RetrieveAttributeRequest获取选择列表值没有问题,并将生成的AttributeMetaData强制转换为PicklistAttributeMetadata。您可以使用相同的技术通过强制转换为LookupAttributeMetadata来处理Lookup,但这只会为您提供一个基类的有用属性:Targets。所有这一切都提供了一个实体逻辑名称的字符串数组。它不会为您提供其他详细信息,例如映射的ID /名称属性或应用查询的查找的任何视图详细信息(例如主要联系人查找,其中列出的联系人是当前组织)。

所以,最后我不得不妥协。我可以从Targets获取目标实体名称,并假设查找很简单 - 只需从实体中提取所有记录。 Id列已修复,因此可以正常使用,您可以安全地假设Name列可用(尽管可能是asl_name等,如果是自定义的)。

如果有人知道更好的方式,我会很乐意,心甘情愿地吃着不起的馅饼!

1 个答案:

答案 0 :(得分:0)

我相信您尝试做的是在使用元数据服务检索实体名称后获取特定实体的所有记录。

如果您希望这样做,我建议您查看SDK中的以下位置(我指的是针对CRM 2013的SDK)SDK\SampleCode\JS\RESTEndpoint\JQueryRESTDataOperations\JQueryRESTDataOperations\Scripts以查找文件JQueryRESTDataOperationsSample.js < / p>

这个函数名为RetrieveMultiple,您可以通过提供实体名称和任何过滤器(可选)来获取特定实体的所有记录。如果您需要帮助为过滤器创建oData查询,可以下载oData Query Deisgner以形成查询。