【问题标题】:fetchXML simple account retrievefetchXML 简单账户检索
【发布时间】:2022-01-05 18:25:54
【问题描述】:

我正在尝试使用简单查询 provided here 对我的帐户列表执行 fetchXML 查询

通常,我希望这会在我正在运行查询的帐户旁边以 json 响应进行响应,但我却收到此错误消息:

请求 URI 无效。由于段 'accounts' 引用一个集合,这必须是请求 URI 中的最后一个段,或者它后面必须跟一个可以绑定到它的函数或操作,否则所有中间段必须引用单个资源。

我的实际 URL 请求是: https://<org>.crm.dynamics.com/api/data/v9.0/accounts(<actual_guid>)

我是否忽略了什么?我最初有一个更复杂的 fetchXML 请求,但为了消除可能的问题,我尽可能地简化了它。

提前感谢您的帮助!

【问题讨论】:

    标签: dynamics-crm fetchxml


    【解决方案1】:

    如果你想对 Web API 端点执行 FetchXML 查询,正确的语法是这个(jQuery 示例,但你可以看到端点 url):

    var originalFetchXML = '<fetch top="5" ><entity name="account" ><attribute name="accountid" /><attribute name="name" /></entity></fetch>';
    var escapedFetchXML = encodeURIComponent(originalFetchXML);
    
    $.ajax({
    type: "GET",
    url: Xrm.Utility.getGlobalContext().getClientUrl() + "/api/data/v9.1/accounts?fetchXml=" + escapedFetchXML,
    async: true,
    headers: {
        "OData-MaxVersion": "4.0",
        "OData-Version": "4.0",
        "Content-Type": "application/json; charset=utf-8",
        "Accept": "application/json",
        "Prefer": "odata.include-annotations=*"
    },
    success: function (data, textStatus, xhr) {
        var results = data;
        console.log(results);
    },
    error: function (xhr, textStatus, errorThrown) {
        console.log(xhr);
    }
    });
    

    您没有写出您使用哪种确切语言来执行查询,但如果是 JavaScript(Xrm.WebApi、Fetch API、jQuery 或 XHR),您可以使用 Dataverse REST Builder 来生成它,执行 Fetch XML 是在Predefined Query 请求类型和 Query TypeFetchXML

    【讨论】:

    • 嗨,谢谢@Guido!这很有效,我目前没有使用编程语言,而是使用诸如 Microsoft Flow 之类的查询工具。因此,我确保对正确的端点进行身份验证,将我的 API 版本从 9.0 更改为 9.1,并添加了一些额外的标头键,我没有在上面列出。谢谢!
    • 标头很重要,如果您的实例是 9.1 或 9.2,它也应该适用于 9.0 的版本
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多