Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

The Power BI Data Visualization World Championships is back! It's time to submit your entry. Live now!

Reply
Erg_Harsh
New Member

Problem with bulk write-back

Hi,

 

I've created a write-back function which initiates the bulk write-back. In order to initiate the bulk write-back, the function excepts a list of ID's delimited by ", " (comma and a space).

 

Now, in Power BI, when I write a DAX measure to create list of ID's using CONCATENATEX() function referencing a column from the dimension table, the button gets activated to initiate a write-back BUT the problem is, it creates a list of all the ID's on which write-back is not required to be initiated. So, then I filter out those ID's based on the reference either from a mesaure or from the fact table, so that write-back is initiated only and only onto the required ID's. And when this happens i.e., any association is created with the fact table, the write-back button simply goes blank.

 

I don't know whether this is a BUG or not. Because when a simple VALUES() function is used inside a CONCATENATEX() simply referencing a column from a dimension table, the button gets activated BUT as soon as any reference is made with the fact table in order to filter out the un-required ID's the button simply goes blank/in-activates.

 

Thanks,

4 REPLIES 4
Ahmed-Elfeel
Solution Sage
Solution Sage

Hi @Erg_Harsh,

So When you filter your CONCATENATEX measure to reference a fact table it creates a more complex evaluation context....Its a common hurdle when trying to pass filtered context-aware lists for bulk write-back operations

 

So How to Solve it?

First Approach:Refine Your CONCATENATEX Measure with a Filtered Table

  • This method builds a clean table of IDs first before concatenating them. Create a measure like this:
Filtered ID List = 
VAR FilteredIDs = 
    CALCULATETABLE(
        VALUES('FactTable'[ID]), // Gets IDs from fact table
        ALLSELECTED('DimensionTable') // Respects current visual/page filters
    )
RETURN
CONCATENATEX(FilteredIDs, [ID], ", ")

Second Approach:Use a Multi-Select Slicer (Simpler)

  • The article specifically shows that mapping a multi-select list or button slicer to the write-back function is often a more reliable approach

Resources:

if this post helps, then I would appreciate a thumbs up and mark it as the solution to help the other members find it more quickly.

Hello @Ahmed-Elfeel,

 

Thank You for sharing the response!

 

The thing is, I've tried all the approaches, using CALCULATE(), CALCULATETABLE(), FILTER(), SUMMARIZE(), VALUES(), DISTINCT(), INTERSECT(), EXCEPT(), NATURALLEFTOUTERJOIN(), etc.

 

The thing is, as long as a column from a dimension table is referenced the write-button stays activated BUT as soon as any reference is created with the column from a fact table, the button goes in a in-activation mode.

 

Moreover, I used that same reference link which you shared - 

 

https://downhill-data.com/2025/11/18/bulk-write-back-w-translytical-task-flows-in-microsoft-fabric-p...

 

I think this is simply a BUG or a limitation currently, which write-back button cannot handle when any reference is created with the fact table.

 

Thanks,

@Erg_Harsh , I am assuming in this case you are trying to use a measure, not a column from a  table, because concatenation will happen inthe  measure correctly 

Share with Power BI Enthusiasts: Full Power BI Video (20 Hours) YouTube
Microsoft Fabric Series 60+ Videos YouTube
Microsoft Fabric Hindi End to End YouTube

Hello @amitchandak,

 

Yes, I'm creating a measure and putting it as a parameter in the form of conditional formatting. Even a simplest measure like this - 

 

ID =
CONCATENATEX(
    DISTINCT( Fact_Table[dim_table_id] ) ,
    Fact_Table[dim_table_id] ,
    ", " )
 
Makes the button go in a in-activation mode. But when that same measure is written like this - 
 
ID =
CONCATENATEX(
    DISTINCT( Dimension_Table[dim_table_id] ) ,
    Dimension_Table[dim_table_id] ,
    ", " )
 
It makes the button activated BUT the problem is, with this approach, it fetches all the list of ID's on which write-back isn't supposed to be initiated.
 
Even when it's written like this - 
 
ID =
CONCATENATEX(
    FILTER( DISTINCT( Dimension_Table[dim_table_id] ) ,
          NOT ISBLANK( [Measure] ) ) ,
    Dimension_Table[dim_table_id] ,
    ", " )
 
Even this will make the button in-activated because measure are built on top of the fact table itself.
 
I think this is a BUG/Limitation which makes this write-back functionality not so great when execueted at a bulk level.
 
Microsoft Power BI team surely needs to look into this.
 
Thanks,

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! It's time to submit your entry.

January Power BI Update Carousel

Power BI Monthly Update - January 2026

Check out the January 2026 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.