Forum Discussion

P108's avatar
P108
Frequent Visitor
4 months ago
Solved

DirectQuery + TMDL: Column type changes to double after refresh

Hi,

 

I’m using DirectQuery to SQL Server.

In the source, the column is already defined as "decimal(38,3)". However, in Power BI it appears as "double".

 

        column exampleNumber
            dataType: double
            sourceProviderType: decimal(38, 3)
            lineageTag: 
            summarizeBy: sum
            sourceColumn: exampleNumber

            annotation SummarizationSetBy = User
 

When I change it to "decimal" in TMDL and apply, it works initially. After refresh, it reverts back to "double".

 

Is there any way to persist the correct "decimal" type in the model?

 

Thanks!

  • Hi P108 ,

     

    When using TMDL to update DQ or DL there may be the need to use a changedproperty option to apply the changes due to the DQ format. after the specific column add the following code:

     

    		column exampleNumber
    			dataType: decimal
    			sourceProviderType: decimal(38, 3)
    			lineageTag: 
    			summarizeBy: sum
    			sourceColumn: exampleNumber
    
    		changedProperty = DataType
    
    		annotation SummarizationSetBy = User
    

     

    This should make the proper change to the semantic model and make it persistent be aware that the DataType is case sensitive so do it exactly has is.

     

    If you need to update other type of information that comes from the DQ table you need to add a changedProperty per each property and at the level you need.

     

     

1 Reply

  • Hi P108 ,

     

    When using TMDL to update DQ or DL there may be the need to use a changedproperty option to apply the changes due to the DQ format. after the specific column add the following code:

     

    		column exampleNumber
    			dataType: decimal
    			sourceProviderType: decimal(38, 3)
    			lineageTag: 
    			summarizeBy: sum
    			sourceColumn: exampleNumber
    
    		changedProperty = DataType
    
    		annotation SummarizationSetBy = User
    

     

    This should make the proper change to the semantic model and make it persistent be aware that the DataType is case sensitive so do it exactly has is.

     

    If you need to update other type of information that comes from the DQ table you need to add a changedProperty per each property and at the level you need.