Web API 查询数据示例 (PowerShell)

此 PowerShell 版本 7.4.0 示例演示如何使用 Dataverse Web API 对 Microsoft Dataverse 表行执行各种查询作。 此示例实现 Web API 查询数据示例中详述的 Dataverse 操作和控制台输出。

此示例使用 Dataverse Web API PowerShell 帮助程序函数 来管理身份验证,并提供可重用的函数来执行常见作。 这些脚本通过点引用方式引用,具体行如下:

. $PSScriptRoot\..\Core.ps1
. $PSScriptRoot\..\TableOperations.ps1
. $PSScriptRoot\..\CommonFunctions.ps1

注释

此示例应适用于 Windows、Linux 和 macOS,但仅在 Windows 上进行了测试。

先决条件

在运行此示例之前,应阅读以下文章来解释这些示例使用的概念和模式:

这些文章具有相同的先决条件。

安装或验证是否已安装以下内容

验证安装

  1. 打开 Visual Studio Code。

  2. 在“终端”菜单中,选择“新终端”。

  3. 在 Visual Studio Code 导航窗格中,选择 PowerShell 扩展的图标。

  4. 在 Visual Studio Code 终端窗口中复制并粘贴以下脚本:

    Write-Host 'PowerShell Version:'$PSVersionTable.PSVersion.ToString()
    Write-Host 'PowerShell Az version:'(Get-InstalledModule Az).Version
    
  5. Enter。 输出应如下所示:

    PowerShell Version: 7.4.0
    PowerShell Az version: 11.1.0
    

如果未看到如下所示的结果,请安装或更新必备组件。

还需要

  • Dataverse 环境的有效用户帐户
  • 要连接到的 Dataverse 环境的 URL。 请参阅 “查看开发人员资源 ”,了解如何查找它。 它看起来如下所示:https://yourorg.crm.dynamics.com/,其中 yourorg.crm 不同。
  • 基本了解 PowerShell 脚本语言

如何运行此示例

  1. 克隆或下载 PowerApps-Samples 存储库。

  2. 使用 Visual Studio Code 打开 QueryData.ps1 文件

  3. 编辑此行以使用要连接到的环境的 URL:

    Connect 'https://yourorg.crm.dynamics.com/' # change this

  4. (可选)如果不想删除此示例创建的记录,请将 $deleteCreatedRecords 变量设置为 $false

  5. F5 运行示例。

  6. 首次运行示例时,会打开一个浏览器窗口。 在浏览器窗口中,输入或选择要用于进行身份验证的凭据。

若要以其他用户身份进行连接,请运行 Disconnect-AzAccount 命令 ,然后重试。

Code

此示例的代码位于: PowerApps-Samples/dataverse/webapi/PS/QueryData/QueryData.ps1

演示

此示例有 11 个区域:

第 0 节:创建要查询的记录

操作:创建一个帐户记录,并包括相关的联系人记录,并且每个联系人都有相关任务记录。 这是整个演示中使用的示例数据。

第 1 节:选择特定属性

操作:

  • 使用 $select 系统查询选项检索特定属性。
  • 要获取格式化的值,请包含 Prefer: odata.include-annotations="*" 标头。

第 2 节:使用查询函数

操作:

  • 使用标准查询函数(例如 containsendswithstartswith 筛选结果)。
  • 使用特定于 Dataverse 的查询函数,例如LastXHoursLast7DaysTodayBetweenIn
  • 使用筛选器运算符和逻辑运算符(eq、、negtandor)。
  • 在筛选器表达式中使用括号设置优先级。

第 3 节:排序和别名

操作:

  • 用于 $orderby 对查询结果进行排序。
  • 使用参数化别名和$filter$orderby简化查询。

第 4 节:限制和计数结果

操作:

  • 用于 $top 限制返回的结果数。
  • 用于 $count 获取与查询匹配的记录总数。

第 5 节:分页

操作:

  • Prefer: odata.maxpagesize使用请求标头控制页面大小。
  • 使用 @odata.nextLink 批注检索后续结果页。

第 6 节:扩展结果

操作:

  • 使用 $expand 配合单值导航属性包含关联记录。
  • 与集合值导航属性一起使用 $expand
  • 在单个请求中与多个导航属性一起使用 $expand
  • 使用嵌套 $expand 检索多个级别的相关记录。

第 7 节:聚合结果

操作:使用$apply=aggregateaveragesumminmax等函数来计算聚合值。

第 8 节:FetchXML 查询

操作:

  • 使用 FetchXML 和 fetchXml 查询字符串参数发送请求。
  • 通过 FetchXML 使用 page 分页和 count 属性。

第 9 节:使用预定义查询

操作:

  • 使用 savedQuery 参数执行保存的查询(系统视图)。
  • 使用 userQuery 参数执行用户查询(已保存视图)。

第 10 节:删除示例记录

操作:本示例中创建的每条记录均在生成时被添加至列表。 本部分循环访问该列表并删除每条记录。

清理

默认情况下,此示例将删除在其中创建的所有记录。 如果要在示例完成后查看已创建的记录,请将 deleteCreatedRecords 变量更改为该变量 false ,系统会提示你确定是否要删除这些记录。

另请参阅

使用 Dataverse Web API
使用 Web API 查询数据
通过 PowerShell 和 Visual Studio Code 快速入门 Web API
将 PowerShell 和 Visual Studio Code 与 Dataverse Web API 配合使用
Web API 示例
Web API 查询数据示例
Web API 查询数据示例 (C#)
Web API 查询数据示例 (客户端 JavaScript)