azure-devops - 仅从 Azure Devops 返回状态更改的 OData 查询
问题描述
我有一个 OData 查询,用于将数据提取到 PowerBI 中,并试图提高效率。我正在从 Azure DevOps 做一份报告,并从 WorkItemRevisions 资源中提取数据。目前,我正在提取工作项的所有数据,然后在 PowerBI 中进行过滤,以便仅在状态发生更改时获取。我想将此过滤移动到 Odata 查询,以便我可以最小化我拉入报告中的数据。
目前,我有如下查询(用于此问题的简化示例)
https://analytics.dev.azure.com/{Organization}/{Project}/_odata/v3.0-preview/WorkItemRevisions?
$select=Revision,WorkItemId,WorkItemType,Title,State,ChangedDate,LeadTimeDays,ParentWorkItemId
如何更新它以便只返回状态已更改的修订(从新到活动,从活动到完成等)?
解决方案
如何更新它以便只返回状态已更改的修订(从新到活动,从活动到完成等)?
恐怕 OData Query 无法完美实现我们所需要的。
有一个功能Revisions/any(r:r/state eq '{state}')
可以过滤工作项过去有一个设置状态。
例如:
https://analytics.dev.azure.com/<Organization>/<Project>/_odata/v2.0//WorkItems?
$filter=State eq 'Closed' and Revisions/any(r:r/State eq 'Active')
此查询类似于使用Was Ever运算符的工作项查询。
正如我所说,这可能不是一个完美的解决方案。那是因为它只能过滤工作项是否曾经有过指定的状态,而不能准确地确定工作项的状态必须是 from New
to Active
, Active
to Done
。如果我们将工作项的状态从更改Active
为Resolved
,然后将其更改Resolved
为Closed
。然后这个工作项就会出现在查询结果中。
另外,即使使用UI查询,我们也无法准确查询到工作项状态从A变为B的结果。为了达到这个目的,我们需要使用REST API。
因此,我们可以使用该功能Revisions/any(r:r/state eq '{state}')
在一定程度上减少拉入报告中的数据。
推荐阅读
- python - 如何在 Python 中使用传递的参数作为默认参数值?
- amazon-web-services - AWS Aurora Serverless RdsDataClient unicode 问题
- python - 使用 Authorize.Net 不收取费用
- bluedata - bluedata mlops 预测 - “NoneType”对象不支持项目分配
- java - 无法获取元素的屏幕截图
- regex - 优化 sed grep 正则表达式 shell 脚本
- haskell - Haskell - 用于检测数字是否在范围内的优雅代码
- sql - 更新具有一对多关系的数据库时出现问题
- python - python给了我太多的数组索引
- python-3.x - 如何在 2 个不同的元组中获得具有值的相同键