You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerBI如何基于Backlog表工作项ID动态调用ADO API

解决方案

步骤1:确认Backlog表的工作项ID列

确保你的Backlog表包含一列数值类型的工作项ID(列名建议设为WorkItemID),且无空值,这是批量获取数据的基础。

步骤2:替换Query1的M语言脚本

直接替换原脚本为以下代码,按需修改标注的占位符:

let
    // 读取Backlog表数据,若Backlog来自其他数据源(如SQL/SharePoint),替换此行为对应数据源的获取逻辑
    BacklogSource = Excel.CurrentWorkbook(){[Name="Backlog"]}[Content],
    // 提取工作项ID列表,替换成你Backlog表中实际的ID列名
    WorkItemIDs = BacklogSource[WorkItemID],

    // 定义单个工作项的API调用函数
    GetSingleWorkItem = (id as number) =>
        let
            // 拼接API请求地址,替换XXX为你的ADO组织名,ProjectName为项目名
            ApiEndpoint = "https://dev.azure.com/XXX/ProjectName/_apis/wit/workitems/" & Text.From(id) & "?api-version=7.0",
            // 发起API请求并解析JSON
            ApiResponse = Json.Document(Web.Contents(ApiEndpoint)),
            // 将API返回的记录转为表格
            ConvertToTable = Record.ToTable(ApiResponse),
            // 添加工作项ID列,方便后续关联原始Backlog数据
            AttachWorkItemID = Table.AddColumn(ConvertToTable, "WorkItemID", each id)
        in
            AttachWorkItemID,

    // 批量调用API获取所有工作项数据
    BatchWorkItems = List.Transform(WorkItemIDs, GetSingleWorkItem),
    // 合并所有工作项的表格结果
    CombinedResult = Table.Combine(BatchWorkItems)
in
    CombinedResult

关键注意事项

  • 权限配置:若ADO项目需要认证,可在Web.Contents中添加凭据,或在API地址后拼接个人访问令牌(PAT):&token=你的PAT,建议将PAT存为PowerBI参数,避免硬编码。
  • API限流处理:ADO API有请求速率限制,若工作项数量超过50个,建议在函数中添加延迟,比如在ApiResponse前插入Wait = Function.InvokeAfter(()=>null, #duration(0,0,0,1))(每秒1次请求)。
  • 数据源适配:如果Backlog表不是来自Excel,替换Excel.CurrentWorkbook()部分为对应数据源的M代码(比如Sql.Database())。

内容的提问来源于stack exchange,提问作者Cheries

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 12:40:20