Check your eligibility for this 50% exam voucher offer and join us for free live learning sessions to get prepared for Exam DP-700.
Get StartedDon't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.
Hi community.
I make a custom partition (Not datetime parameter) text parameter (Key) with SMSS (TSML) so when I create a new partition it's requiered a parameter. So it's fine.
When I have to update the partition I need to pass key (parameter) in TSML script.
If I define this parameter on SM settings (parameter section) then I update with custom script the semantic model, it's works!
So is there a way to pass this variable (parameter) in TMSL script?
Thanks in advance.
Solved! Go to Solution.
Hi @Peter_23,
Thank you for your follow up query. I apologize for any inconvenience you may have experienced.
As per the details provided previously, I have gone through the code again and made some small changed based on the requirement, so I request you to please try the below provided code if the issue persist, please feel free to reach out to us.
Code1:
$updatedPartitionDefinition = @{
"createOrReplace" = @{
"object" = @{
"database" = "base"
"table" = "mytable"
"partition" = "BB"
}
"partition" = @{
"name" = "BB"
"source" = @{
"type" = "m"
"expression" = @(
"let",
"source = ...",
"#\Filtered Rows\"= Table.SelectRows(source, each [#\"Query-filter\"] = \"BB\")",
"in",
"FilteredRows"
)
}
}
}
}
Code2:
$refreshRequest = @{
"refresh" = @{
"type" = "dataOnly"
"objects" = @(
@{
"database" = "base"
"table" = "mytable"
"partition" = "BB"
}
)
}
}
If you have any further queries please feel free to reach out to us we will guide you accordingly. If this post helps, then please give us 'Kudos' and consider Accept it as a solution to help the other members find it more quickly.
Thank you.
Hi @Peter_23
To pass a custom parameter (key) in a TMSL script:
TMSL doesn’t support direct variable substitution, so you need to inject the parameter value via external scripting during execution.
Did I answer your question? Mark my post as a solution, this will help others!
If my response(s) assisted you in any way, don't forget to drop me a "Kudos" 🙂
Kind Regards,
Poojara
Data Analyst | MSBI Developer | Power BI Consultant
Consider Subscribing my YouTube for Beginners/Advance Concepts: https://youtube.com/@biconcepts?si=04iw9SYI2HN80HKS
Hi @Peter_23,
Thank you for reaching out to the Microsoft Fabric community Forum.
Tabular model scripting language does not directly support parameterization like power bi desktop. However, you can configure and manage custom parameters for partitions in SSMS or Visual Studio and reference them in TMSL scripts. Please go through the below following steps may resolve your issue.
If you need to manually update the partition, follow these steps:
Please go through the below documentation links for better understanding.
Tabular Model Scripting Language (TMSL) Reference | Microsoft Learn
Create an Analysis Services Project | Microsoft Learn
I hope my suggestions give you good ideas, if you have any more questions, please feel free to reach out.
If this post helps, then please give us Kudos and consider Accept it as a solution to help the other members find it more quickly.
Thank you.
Thanks @Poojara_D12 @v-kpoloju-msft
I created a script with powershell, so
"createOrReplace":{
"object":{
"database":"base"
"table":"mytable"
"partition": "AA"
},
"partition":{
"name":"AA",
"source":{
"type": "m",
"expression":[
"let",
"source..."
"#\Filtered Rows\"= Table.SelectRows (source, each [#\"Query-filter"] = KEYPARAMETER )",
in...
So with it, it's created succesfull the partition, but I updated, the partition with the next script:
"refresh":{
"type": "dataOnly",
"objects": [
{
"database": "base",
"table":"mytable",
"partition":"AA"
}
I don't find a command to pass KEYPARAMETER in this update proccess, it is possible?e.g. Overrride KEYPARAMETER default value.
thanks in advance
Hi @Peter_23,
Thank you for reaching out to the Microsoft Fabric community Forum.
As per the details provided, I have gone through the code and made some small changed some based on the requirement, so I request you to please try the below provided code if the issue persist, please feel free to reach out to us.
Code1:
$updatedPartitionDefinition = @{
"createOrReplace" = @{
"object" = @{
"database" = "base"
"table" = "mytable"
"partition" = "AA"
}
"partition" = @{
"name" = "AA"
"source" = @{
"type" = "m"
"expression" = @(
"let",
"source...",
"#\Filtered Rows\"= Table.SelectRows(source, each [#\"Query-filter\"] = \"NEW_KEYPARAMETER_VALUE\")",
"in..."
)
}
}
}
}
Code2:
$refreshRequest = @{
"refresh" = @{
"type" = "dataOnly"
"objects" = @(
@{
"database" = "base"
"table" = "mytable"
"partition" = "AA"
}
)
}
}
I hope my suggestions give you good ideas, if you have any more questions, please feel free to reach out.
If this post helps, then please give us Kudos and consider Accept it as a solution to help the other members find it more quickly
Thank you.
I created a new partition with your scripts:
$updatedPartitionDefinition = @{
"createOrReplace" = @{
"object" = @{
"database" = "base"
"table" = "mytable"
"partition" = "BB"
}
"partition" = @{
"name" = "BB"
"source" = @{
"type" = "m"
"expression" = @(
"let",
"source...",
"#\Filtered Rows\"= Table.SelectRows(source, each [#\"Query-filter\"] = \"BB\")",
"in..."
)
}
}
}
}
I update the partitions with:
$refreshRequest = @{
"refresh" = @{
"type" = "dataOnly"
"objects" = @(
@{
"database" = "base"
"table" = "mytable"
"partition" = "BB"
}
)
}
}
I run the script, it update with 0 rows 😞 but the dataset it contains values with "BB" (value requiered for partition)
I don't know whats happening ..
I find xmla parameter is possible update the parameter with it?
thanks in advance.
Hi @Peter_23,
Thank you for your follow up query. I apologize for any inconvenience you may have experienced.
As per the details provided previously, I have gone through the code again and made some small changed based on the requirement, so I request you to please try the below provided code if the issue persist, please feel free to reach out to us.
Code1:
$updatedPartitionDefinition = @{
"createOrReplace" = @{
"object" = @{
"database" = "base"
"table" = "mytable"
"partition" = "BB"
}
"partition" = @{
"name" = "BB"
"source" = @{
"type" = "m"
"expression" = @(
"let",
"source = ...",
"#\Filtered Rows\"= Table.SelectRows(source, each [#\"Query-filter\"] = \"BB\")",
"in",
"FilteredRows"
)
}
}
}
}
Code2:
$refreshRequest = @{
"refresh" = @{
"type" = "dataOnly"
"objects" = @(
@{
"database" = "base"
"table" = "mytable"
"partition" = "BB"
}
)
}
}
If you have any further queries please feel free to reach out to us we will guide you accordingly. If this post helps, then please give us 'Kudos' and consider Accept it as a solution to help the other members find it more quickly.
Thank you.
Hi @Peter_23 - Yes, you can pass parameters in a Tabular Model Scripting Language (TMSL) script by defining them in the script itself or using external tools to dynamically inject the parameters when executing the script.
please check the reference links:
Create command (TMSL) | Microsoft Learn
Delete SSAS Partitions with TMSL and PowerShell | Chris Koester
Solved: Premium Per User - incremental refresh with effect... - Microsoft Fabric Community
Proud to be a Super User! | |
Hi @Peter_23 -
Unfortunately, TMSL does not directly support creating or modifying parameters ( like those defined in the power bi interface). these parameters are typically managed in power bi desktop or through the XMLA endpoint of the model.
suggest you, you can pass the parameter indirectly by embedding its value into the query expression within the TMSL script.
Note: TMSL does not natively support managing paramters like power bi desktop.
Hope this helps.
Proud to be a Super User! | |
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.
User | Count |
---|---|
21 | |
16 | |
12 | |
10 | |
8 |
User | Count |
---|---|
34 | |
26 | |
19 | |
17 | |
16 |