Power BI - обработка несуществующих аргументов и возврат данных в таблицу для правильных аргументов - PullRequest
0 голосов
/ 05 декабря 2018

Я застрял в процедуре обработки ошибок.У меня есть эта функция ..

(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"

Я пытаюсь обработать ошибку, когда я передаю недопустимое значение в источник, скажем, источник ={13009995..13009999}, это выдает ошибку - "столбец Х таблицы не найден".Я пытался использовать следующую логику обработки ошибок, но она не работает ..

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 помог мне с моим основным запросом

1 Ответ

0 голосов
/ 05 декабря 2018

Я бы предложил создать пустую таблицу в виде отдельного запроса с именем 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
),

Примечание: вашЗапрос выглядит нормально, когда есть хотя бы один действительный номер лицензии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...