Check your eligibility for this 50% exam voucher offer and join us for free live learning sessions to get prepared for Exam DP-700.
Get StartedDon't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.
I have the M code below where I read data from an API endpoint. However there are cases where this endpoint will not return any values so result = null.
How can I deal with this null so that I end up with an empty table that has the right column headers (ideal solution) or just something that doesn't crash?
let
apiUrl = "https://xxx/registration/users",
token = AccessToken,
options = [Headers=[#"Authorization"="Bearer " & token ]],
result = Json.Document(Web.Contents(apiUrl , options)),
#"Converted to Table" = Table.FromList(result, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"userStatus", "role", "count", "date"}, {"Column1.userStatus", "Column1.role", "Column1.count", "Column1.date"}),
RenameColumns = Table.RenameColumns( #"Expanded Column1", List.Zip(
{
Table.ColumnNames( #"Expanded Column1"),
List.Transform(Table.ColumnNames( #"Expanded Column1"), each Text.AfterDelimiter( _, ".") )
} ) )
in
RenameColumns
Solved! Go to Solution.
Ok I think I've managed to solve my issue:
let
apiUrl = "https://xxx/registration/users",
token = AccessToken,
options = [Headers=[#"Authorization"="Bearer " & token ]],
r = Json.Document(Web.Contents(apiUrl , options)),
result = if r= null then #table(
{ "Column1"}, // defines column names
{} // returns no rows
) else Table.FromList(r, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Expanded Column1" = Table.ExpandRecordColumn(result, "Column1", {"userStatus", "role", "count", "date"}, {"Column1.userStatus", "Column1.role", "Column1.count", "Column1.date"}),
RenameColumns = Table.RenameColumns( #"Expanded Column1", List.Zip(
{
Table.ColumnNames( #"Expanded Column1"),
List.Transform(Table.ColumnNames( #"Expanded Column1"), each Text.AfterDelimiter( _, ".") )
} ) )
in
RenameColumns
Ok I think I've managed to solve my issue:
let
apiUrl = "https://xxx/registration/users",
token = AccessToken,
options = [Headers=[#"Authorization"="Bearer " & token ]],
r = Json.Document(Web.Contents(apiUrl , options)),
result = if r= null then #table(
{ "Column1"}, // defines column names
{} // returns no rows
) else Table.FromList(r, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Expanded Column1" = Table.ExpandRecordColumn(result, "Column1", {"userStatus", "role", "count", "date"}, {"Column1.userStatus", "Column1.role", "Column1.count", "Column1.date"}),
RenameColumns = Table.RenameColumns( #"Expanded Column1", List.Zip(
{
Table.ColumnNames( #"Expanded Column1"),
List.Transform(Table.ColumnNames( #"Expanded Column1"), each Text.AfterDelimiter( _, ".") )
} ) )
in
RenameColumns
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Prices go up Feb. 11th.
Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.
User | Count |
---|---|
14 | |
13 | |
12 | |
12 | |
12 |