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

Special holiday offer! You and a friend can attend FabCon with a BOGO code. Supplies are limited. Register now.

Reply
BriefStop
Helper I
Helper I

Refresh Semantic Model - Table Dynamic Content

I've set up dynamic content inside of a Refresh Semantic Model activity inside of a data pipeline. So far I've dynamically set the Workspace Id and the Semantic Model but I've previously left the table line blank. The pipeline would refresh properly until now and the only way it seems to run even with static Workspace Id and Semantic Model values is if I specify the tables.

 

For the static values I can wait for the drop down menu to load and select all but when I use dynamic content in Workspace and Semantic Model ID, the table names won't load and I can only input dynamic content. How do I write in the tables through dynamic content. I've tried the following based off the JSON file:

  •  {"table": "TableName"}
  • TableName
  • table:TableName
  • [{"table": "TableName"}]
  • TableName1, TableName2
  • Editing the JSON file directly by copying and pasting how a non-dynamic content inputted Workspace and Semantic model ID has the table names set up

How do I dynamically write in multiple tables for the dynamic content? Is there a way to specify select all when I write in dynamic content?

 

BriefStop_0-1743734245456.png

 

1 ACCEPTED SOLUTION
Anonymous
Not applicable

Hi @BriefStop,

When using the dynamic expression builder in the Refresh Semantic Model activity, simply pasting a JSON object like [{"table": "TableName"}] won’t work directly, you’ll need to wrap it using the @json() function, as the expression builder expects a string that it can parse at runtime. 

If you are entering static table names via expression, paste this directly in the dynamic expression field:

@json('[{"table": "TableName1"}, {"table": "TableName2"}]'). This wraps your valid JSON in a string and parses it correctly at runtime. 

If you are passing table names dynamically using a variable like TableList = Table1,Table2 use this expression: @json(concat('[', replace(variables('TableList'), ',', '},{"table": "'), '{"table": "'), ']')). This takes a comma-separated string like Table1,Table2 and converts it into a valid array. 

 

Now where to paste It? In the "Tables" input field, switch to dynamic content then click “Add dynamic content” and go to the Expression tab. Paste the full expression (@json(...)) into the editor. Now click OK to save.

 

If I misunderstand your needs or you still have problems on it, please feel free to let us know.  

Best Regards,
Hammad.
Community Support Team

 

If this post helps then please mark it as a solution, so that other members find it more quickly.

Thank you.

 

View solution in original post

5 REPLIES 5
VolueHelge
Frequent Visitor

Can I just ask, how were you able to save a pipeline with dynamic expressions in Workspace and Model fields?

For me, I get validation errors when I try to save/run with dynamic expressions in those fields.

Anonymous
Not applicable

Hi @VolueHelge,

Currently the workspace and semantic model fields in the Refresh Semantic Model activity only accept static values during validation. This means if you try to put dynamic expressions directly, you’ll see validation errors.

You can try to first save the activity with static values (Workspace + Model) so validation passes. Then, switch those fields to dynamic content expressions. The pipeline will still run successfully at execution time, even though the UI cannot pre-validate dynamic IDs.

This is a known limitation with the designer’s validation step, not with the runtime execution.

 

Best Regards,

Hammad.

Anonymous
Not applicable

Hi @BriefStop,

Thanks for reaching out to the Microsoft fabric community forum.

It looks like you are facing issue when using dynamic content for Workspace ID and Semantic Model ID, the table dropdown does not load, and selecting all tables manually is not possible.

When using static values for Workspace ID and Semantic Model ID, Microsoft Fabric automatically retrieves table names. However, when using dynamic values, the system does not pre-load tables, requiring you to manually define them in a specific format. To dynamically specify tables, use the correct JSON format:

[
{"table": "TableName1"},
{"table": "TableName2"},
{"table": "TableName3"}
]
Or If your table names are stored in a variable (e.g., TableList containing Table1,Table2,Table3), you can convert it into JSON using the following expression: 

@json(concat('[', replace(variables('TableList'), ',', '},{"table": "'), '{"table": "'), ']')).

But make sure "TableList" is a comma-separated string of table names.

Currently, there is no direct "Select All" option when using dynamic content. Instead, you can use a lookup activity to fetch all table names or store them in a variable (TableList) or format them using the above JSON expression.

 

If I misunderstand your needs or you still have problems on it, please feel free to let us know.  

Best Regards,
Hammad.
Community Support Team

 

If this post helps then please mark it as a solution, so that other members find it more quickly.

Thank you.

Thank you Hammad, can you show me how you enter it into the dynamic expression builder? When I try something similar([{"table": "TableName"}]) I am still not able to pass in the table names

Anonymous
Not applicable

Hi @BriefStop,

When using the dynamic expression builder in the Refresh Semantic Model activity, simply pasting a JSON object like [{"table": "TableName"}] won’t work directly, you’ll need to wrap it using the @json() function, as the expression builder expects a string that it can parse at runtime. 

If you are entering static table names via expression, paste this directly in the dynamic expression field:

@json('[{"table": "TableName1"}, {"table": "TableName2"}]'). This wraps your valid JSON in a string and parses it correctly at runtime. 

If you are passing table names dynamically using a variable like TableList = Table1,Table2 use this expression: @json(concat('[', replace(variables('TableList'), ',', '},{"table": "'), '{"table": "'), ']')). This takes a comma-separated string like Table1,Table2 and converts it into a valid array. 

 

Now where to paste It? In the "Tables" input field, switch to dynamic content then click “Add dynamic content” and go to the Expression tab. Paste the full expression (@json(...)) into the editor. Now click OK to save.

 

If I misunderstand your needs or you still have problems on it, please feel free to let us know.  

Best Regards,
Hammad.
Community Support Team

 

If this post helps then please mark it as a solution, so that other members find it more quickly.

Thank you.

 

Helpful resources

Announcements
December Fabric Update Carousel

Fabric Monthly Update - December 2025

Check out the December 2025 Fabric Holiday Recap!

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.