error-handling - Power BI-处理不存在的参数并为有效参数返回表中的数据

标签 error-handling powerbi powerquery m invalid-argument

我被错误处理例程困住了。我有这个功能。

(LicenceNumber) =>
let
Source = 
Web.Page(Web.Contents("http://mbsweblist.fsco.gov.on.ca/ShowLicence.aspx?M" 
& Number.ToText(LicenceNumber) & "~")),
WebData = Source{1}[Data],
#"Extracted Text Before Delimiter" = Table.TransformColumns(WebData, 
{{"Column1", each Text.BeforeDelimiter(_, ":"), type text}}),
#"Removed Top Rows" = Table.Skip(#"Extracted Text Before Delimiter",1),
#"Transposed Table" = Table.Transpose(#"Removed Top Rows"),
#"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table", 
[PromoteAllScalars=true])
in
#"Promoted Headers"

哪个将数据返回到表
let
Source = {13000246..13000250},
#"Convert to Table" = Table.FromList(Source,Splitter.SplitByNothing(),{"Licence Number"}),
#"Changed Type" = Table.TransformColumnTypes(#"Convert to Table",{{"Licence Number", Int64.Type}}),
#"Get WebData" = Table.AddColumn(#"Changed Type", "WebData", each try WebData([Licence Number]) otherwise #table({},{})),
#"Combine WebData" = Table.Combine(#"Get WebData"[WebData]),
#"Changed Types" = Table.TransformColumnTypes(#"Combine WebData",{{"Agent/Broker Name", type text}, {"Licence #", type text}, {"Brokerage Name", type text}, {"Licence Class", type text}, {"Status", type text}, {"Issue Date", type date}, {"Expiry Date", type date}, {"Inactive Date", type date}})
in
#"Changed Types"

我正在尝试错误处理在source中传递无效值的情况,可以说source = {13009995..13009999},这将引发错误-“未找到表的col X”。我尝试使用以下错误处理逻辑,但无法正常工作..
Empty = #table({{"Agent/Broker Name", type text}, {"Licence #", type text}, 
{"Brokerage Name", type text}, {"Licence Class", type text}, {"Status", type 
text}, {"Issue Date", type date}, {"Expiry Date", type date}, {"Inactive 
Date", type date}},{}),
Combine = Table.Combine({#"Get WebData"[WebData], Empty}),

我主要是业务分析师,无法解决此错误。寻求帮助。用户Olly帮助我完成了主要查询

最佳答案

我建议创建一个空表作为单独的查询EmptyTable,当您确实取回数据时,该查询与列匹配。这是该代码的M代码:

let
    Empty =
    #table(
        {
        "Agent/Broker Name",
        "Licence #",
        "Brokerage Name",
        "Licence Class",
        "Status",
        "Issue Date",
        "Expiry Date",
        "Inactive Date"
        },
        {}
    )

in
    Empty

现在在#"Get WebData"步骤中,只需将#table({},{})换成EmptyTable即可。
#"Get WebData" =
Table.AddColumn(
    #"Changed Type",
    "WebData",
    each
        try WebData([Licence Number])
        otherwise EmptyTable
),

注意:当至少有一个有效的许可证号时,您的查询看起来可以正常工作。

关于error-handling - Power BI-处理不存在的参数并为有效参数返回表中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53625597/

相关文章:

sql-server - 如何在 MS Access 中查找 ADO 查询的结果

ajax - 如何从 ajax 操作返回错误信息(作为错误!)?

azure - PowerBI Azure 刷新不起作用,数据未更新

python - 将 Python REST API 调用转换为 Power Query

php - 将安全参数传递给功能还是让功能检查?

.net - 在ASP.NET错误页面上调用最后一个异常

instagram - 将数据从 Instagram 导入 Power Bi

powerbi - 如何使用列的总计来划分值

excel - 在 Power Query 中参数化 SharePoint 网站上的 Excel 路径时出现无效绝对路径错误

excel - 通过 VBA 自动更新 Power Query 连接