Forum Discussion

joeparkinson's avatar
joeparkinson
Helper I
2 years ago

Dataverse Synapse Link Choice Column Names

Hey,

 

I've integrated dataverse into fabric using Synapse link to automatically bring in all the tables into Fabric. However, the choice columns in the dataverse only return the integer ID of the choice. Is there anyway to bring in the name? If I query using powerquery, the names also return. 

 

I wouldn't want to match all the codes up to the various choice tables as it would be a huge amount of work, but the choice tables dont come over with the tables either anyway, so currently there is no way to make this data usable. Hoping there is some switch I can turn on to bring this over?

11 Replies

  • v-cboorla-msft's avatar
    v-cboorla-msft
    Microsoft Employee

    Hi joeparkinson 

     

    Thanks for using Microsoft Fabric Community.

    At this time, we are reaching out to the internal team to get some help on this.
    We will update you once we hear back from them.

    Appreciate your patience.

     

    Thanks

  • I wrote a table-valued function that translates an integer option set lookup value into its display value.  I am curious if there is an easier way to get at this without joining to the OptionSet table for each option.  

    • joeparkinson's avatar
      joeparkinson
      Helper I

      Ah, i missed the optionset table! At least its possible, but also quite frustrating given the 1000s of columns we'd need to match back. Out of curiousity, what was the function you wrote?

  • mscottsewell's avatar
    mscottsewell
    Microsoft Employee
    SELECT  [Base].accountid customerid
          , 1 AS [CustomerEntityType]
          , [Base].name [Customer Name]
          , [Base].parentaccountidname [Parent Account]
          , [Base].address1_city [City]
          , [Base].address1_stateorprovince [State or Province]
          , [Base].address1_country [Country]
          , [Base].ownerid ownerid
          , [Base].owneridname [Customer Owner]
          , ISNULL(account_industrycode.value,'N/A') [Industry]
          , [T].name AS [Territory]
          , [T].[parentterritoryidname] [Parent Territory]
          , ISNULL([T].[manageridname], 'No Territory Manager') [Territory Manager]
          , [T].territoryid
          , [Base].accountnumber AS [Customer ID]
          , account_businesstypecode.value [Business Type]
        FROM [account]              AS Base
        LEFT OUTER JOIN [territory] AS T
            ON  T.territoryid = Base.territoryid
        LEFT JOIN [stringmap] AS account_industrycode
            ON  account_industrycode.langid = 1033
            AND account_industrycode.objecttypecode = 'account'
            AND account_industrycode.attributename = 'industrycode'
            AND account_industrycode.attributevalue = [Base].industrycode
        LEFT JOIN [stringmap] AS account_businesstypecode
            ON  account_businesstypecode.langid = 1033
            AND account_businesstypecode.objecttypecode = 'account'
            AND account_businesstypecode.attributename = 'businesstypecode'
            AND account_businesstypecode.attributevalue = [Base].businesstypecode
        WHERE
            [Base].IsDelete IS NULL

    This is the pattern I use - I only join on the values that I need at runtime since those labels can change independently of the record or I might want a different language represented in the report.

    • joeparkinson's avatar
      joeparkinson
      Helper I

      Thanks - whats frustrating about this though, is I can pull all the tables in powerquery with their string straight into fabric. If I use the synapse link, I need to write SQL queries for each table and column (we have 100s of tables), so its going to be a huge amount of work vs using a dataflow.

      • v-cboorla-msft's avatar
        v-cboorla-msft
        Microsoft Employee

        Hi joeparkinson 

         

        Apologies for the inconvenience that you are facing here.

        I would request you to open up a support ticket to get support from our engineering team for your query.

        Please go ahead and raise a support ticket to reach our support team: support-ticket 

        Please provide the ticket number here as we can keep an eye on it.