Forum Discussion

marcio_fornari's avatar
marcio_fornari
Resolver I
1 year ago

Get Relathionships from Power BI REST API executeQuery

Hello,I used to have this DAX code that I executed on the endpoint to retrieve dataset relationships, but now Microsoft seems to have blocked the execution of queries with INFO.*. Is there another way to get the relationships without using the INFO functions?

My querie:

DEFINE 
    VAR _Table = 
        SELECTCOLUMNS(
            INFO.TABLES(),
            "TableID", [ID],
            "TableName", [Name]
        )
    VAR _Col = 
        SELECTCOLUMNS(
            INFO.COLUMNS(),
            "ColumnID", [ID],
            "ColumnName", 
                IF(
                    ISBLANK([ExplicitName]), 
                    [InferredName], 
                    [ExplicitName]
                )
        )
    VAR _RelFrom = 
        SELECTCOLUMNS(
            INFO.RELATIONSHIPS(),
            [ID],
            [FromCardinality],
            [IsActive],
            [CrossFilteringBehavior],
            [SecurityFilteringBehavior],
            "ColumnID", [FromColumnID],
            "TableID", [FromTableID]
        )
    VAR _RelTo = 
        SELECTCOLUMNS(
            INFO.RELATIONSHIPS(),
            [ID],
            [ToCardinality],
            [CrossFilteringBehavior],
            "ColumnID", [ToColumnID],
            "TableID", [ToTableID]
        )
    VAR _FromRel = 
        SELECTCOLUMNS(
            NATURALLEFTOUTERJOIN(
                NATURALLEFTOUTERJOIN(_RelFrom, _Table), 
                _Col
            ),
            [ID],
            [IsActive],
            "From Table", [TableName],
            "From Column", [ColumnName],
            "From Cardinality", 
                SWITCH(
                    [FromCardinality],
                    1, "One",
                    2, "Many",
                    "Something else"
                )
        )
    VAR _ToRel = 
        SELECTCOLUMNS(
            NATURALLEFTOUTERJOIN(
                NATURALLEFTOUTERJOIN(_RelTo, _Table), 
                _Col
            ),
            [ID],
            "To Table", [TableName],
            "To Column", [ColumnName],
            "To Cardinality", 
                SWITCH(
                    [ToCardinality],
                    1, "One",
                    2, "Many",
                    "Something else"
                )
        )
    VAR _Result = 
        SELECTCOLUMNS(
            NATURALLEFTOUTERJOIN(_FromRel, _ToRel),
            "From Table", [From Table],
            "From Column", [From Column],
            "To Table", [To Table],
            "To Column", [To Column],
            "Cardinality (From/To)", 
                UPPER([From Cardinality]) & " row" & 
                IF([From Cardinality] = "One", "", "s") & 
                " in '" & [From Table] & "'[" & [From Column] & "]" & 
                " matches to " & 
                UPPER([To Cardinality]) & " row" & 
                IF([To Cardinality] = "One", "", "s") & 
                " in '" & [To Table] & "'[" & [To Column] & "]"
        )
EVALUATE _Result

This query works at Dax Studio for example:

 

 

 

12 Replies

  • We have the same issue since January 24, 2025. It stopped working with an Error 400 ...

    I will open a ticket with Microsoft.

    Frederick

    • lbendlin's avatar
      lbendlin
      Super User

      Here's what I got back:

      I would like to let you know that Microsoft already found this issue and working on the fix, unfortunately there is no ETA information yet.
       
      Meanwhile, could you please follow this workaround given below and let us know if you have any issue.
      •	If the model is in premium, customers might be able to switch their solutions to XMLA Endpoint-based connections and query semantic models by using the AS client libraries (ADOMD.NET).
      
      • samsonfrb's avatar
        samsonfrb
        Advocate I

        Yes, I got the same answer from them. The problem is still live as of today. Switching to XMLA Endpoint requires some work so we'll wait for the fix.

    • lbendlin's avatar
      lbendlin
      Super User

      Allegedly will be fixed by end of April, allegedly.

    • samsonfrb's avatar
      samsonfrb
      Advocate I

      In my case, it was taking too long and having too much impact.
      I had to rewrite my PowerShell code to use AdomdConnection, AdomdCommand et AdomdDataReader via the XMLAEndpoint.