Power BI加载Jira查询报错:未找到表中'Column1'列如何解决
错误原因
你遇到的The column 'Column1' of the table wasn't found报错,核心触发场景是Jira接口返回的issues列表为空时,Table.FromList生成的空表不会自动创建Column1列。Power Query编辑预览时可能因为缓存、部分加载没有命中空结果场景,全量应用加载时查询全量运行就会触发报错。
排查步骤
- 先验证Jira接口返回:直接访问拼接
&maxResults=1后的完整请求地址,确认是否存在符合project in ('ABC') AND issuetype = 'Test Case'条件的工单,返回结果的issues字段是否为空。 - 排查分页逻辑的边界错误:你现有代码中
JiraIDCount = List.Max({ JiraIDPerPage, GetJiraIDCount() })的写法存在问题,如果实际符合条件的工单总数小于1000,这里会强制把总数设为1000,请求超出实际范围的分页,最后几页返回的issues为空,合并后JiraID会是空列表。 - 验证空列表下的表生成逻辑:单独运行
Table.FromList({}, Splitter.SplitByNothing(), null, null, ExtraValues.Error),可以看到生成的是空表,没有任何列,后续扩展Column1的操作自然会报错。
修复方案
1. 修正总数计算逻辑
把原有错误的最大值判断去掉,直接取Jira返回的实际工单总数:
// 原有错误代码 // JiraIDCount = List.Max({ JiraIDPerPage, GetJiraIDCount() }), // 替换为 JiraIDCount = GetJiraIDCount(),
2. 增加空结果兼容逻辑
在生成表的步骤增加空列表判断,即使返回结果为空也提前创建Column1列,避免后续扩展报错:
JiraID = List.Union(Pages), // 新增空列表兼容逻辑 Table = if List.IsEmpty(JiraID) then #table({"Column1"}, {}) else Table.FromList(JiraID, Splitter.SplitByNothing(), null, null, ExtraValues.Error), #"Expanded Column1" = Table.ExpandRecordColumn(Table,"Column1", {"id", "key", "fields"}, {"Column1.id", "Column1.key", "Column1.fields"})
可选优化
如果存在部分工单缺少id/key/fields字段的场景,可以给扩展列的操作增加容错,避免因个别字段缺失报错。
内容的提问来源于stack exchange,提问作者techmaster
相关产品推荐
相关产品推荐

