cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
ChrisRenlund
Advocate I
Advocate I

PowerShell script example on how to run full refresh of incremental dataset?

Is there anyone who can provide a code example on how to write a Powershell script that runs a full refresh of a dataset that is configured for incremental refresh?

 

We refresh our datasets by powershell scripts using RestAPI-commands, but they only refresh the dataset according to the refresh policy set up (which is incremental).  I've understood that you should be able to use a TMSL object where you override/ignore the refresh policy (https://docs.microsoft.com/sv-se/analysis-services/tmsl/refresh-command-tmsl?view=power-bi-premium-c..., but i'm unable to put it together with my datasets and ps-script. Anyone who can show how it's done?

 

Why we need it? Some of our data is re-classified every now and then and we want the historical data to reflect our current classifications, therefore we'd like to schedule a full refresh with regular intervals .

1 ACCEPTED SOLUTION
ChrisRenlund
Advocate I
Advocate I

Found out how to pull it off.

 

You create a .json file with this information:

{
"refresh": {
"type": "full",

		"applyRefreshPolicy": false,

		"objects": [
			{
				"database": "Your Dataset Name"
			}
		]
	}
}

Then you create an Powershell script-file:

#Set Credentials
$userName = "youremail@outlook.com"
$password = ConvertTo-SecureString -String "YourPassword" -AsPlainText -Force
$Credential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $userName, $password


#Execute refresh 
$InputFileRefresh ="D:\MyJsonFile.json"
invoke-ascmd -Server "powerbi://api.powerbi.com/v1.0/myorg/Your Workspace Name" -InputFile $InputFileRefresh -Credential $Credential

That runs a full refresh of the dataset (but you won't see it running in the Power BI service and the Last Refresh Date in the PBI service will not be updated, just the data in the dataset).

View solution in original post

9 REPLIES 9
ChrisRenlund
Advocate I
Advocate I

Found out how to pull it off.

 

You create a .json file with this information:

{
"refresh": {
"type": "full",

		"applyRefreshPolicy": false,

		"objects": [
			{
				"database": "Your Dataset Name"
			}
		]
	}
}

Then you create an Powershell script-file:

#Set Credentials
$userName = "youremail@outlook.com"
$password = ConvertTo-SecureString -String "YourPassword" -AsPlainText -Force
$Credential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $userName, $password


#Execute refresh 
$InputFileRefresh ="D:\MyJsonFile.json"
invoke-ascmd -Server "powerbi://api.powerbi.com/v1.0/myorg/Your Workspace Name" -InputFile $InputFileRefresh -Credential $Credential

That runs a full refresh of the dataset (but you won't see it running in the Power BI service and the Last Refresh Date in the PBI service will not be updated, just the data in the dataset).

Hello Chris, 

Thank you for the script. 
Unfortunately I have an issue trying to execute the full refresh using "invoke-ascm". I don't understand how to trigger the json created just before in the ascm command. 

Thank you in advance. 😀

Clement_lsc_0-1645438442154.png

 

 



Hi @Clement_lsc ,
It seems as you are adding the .json-content directly to a variable in the Powershell script?
The way I did it was that I created a separate .json-file containing the .json-commands, then I created a variable in the Powershell-script that pointed out the .json-file:

$InputFileRefresh ="D:\MyJsonFile.json"

And then I used that variable in the invoke-ascmd-command (the -InputFile tag):

invoke-ascmd -Server "powerbi://api.powerbi.com/v1.0/myorg/Your Workspace Name" -InputFile $InputFileRefresh -Credential $Credential

Maybe there is a better way, but this is what made it work for me!

Ok thank you for your answer. 😀

What module did you downloaded in order to run "Invoke-ascm" ? 
I have an error message " invoke-ascmd' is not recognized as the name of a cmdlet" even with the Sqlserver and MicrosoftPowerBIMgmt.Profile modules. 

Sorry i'm a beginner... 

Thank you for your time. 

And just to double cross everything - sometimes you refer to the command as "invoke-ascm", make sure you have "invoke-ascmd" in your powershell code?

It seems as it is part of the SqlServer module (https://docs.microsoft.com/en-us/powershell/module/sqlserver/invoke-ascmd?view=sqlserver-ps)

These are the modules I have on the server where the script is running (you can get yours with the Get-InstalledModule command):

VersionNameRepositoryDescription
3000.10... DataGateway PSGalleryData Gateway PowerShell cmdlets
3000.10...DataGateway.ProfilePSGalleryData Gateway PowerShell - Profile credential management cmdlets for Data Gateway
1.12 Microsoft.ADAL.PowerShell PSGallery ADAL module for PowerShell
21.1.18230SqlServerPSGallery This module allows SQL Server developers, administrators and business intelligence prof...

 

Hello Chris, 

 

I managed to fix my script. It works now !
I had some securities on my laptop that blocked the SQL SERVER module. 
Moreover, I had to change a parameter in Power BI service to make it work (XMLA authorizations). If some of you encoutered the same issue, here is the solution : 

Clement_lsc_2-1645711659276.png

 

Pass it to read/write. 

Thank you Chris, have a nice day. 

Clément 

Thank you. 
It seems that I have the module, now I have an error message saying the cmdlet was found in the sqlserver package but could not be charged...

I'll find a way, thank you for your time. 
Have a nice day. 😀
Clément 

v-easonf-msft
Community Support
Community Support

Hi, @ChrisRenlund 

 

If you still have this issue for Power BI, you'd better open a support ticket to contact MSFT for professional help.

https://powerbi.microsoft.com/en-us/support/ 

 

Best Regards,
Community Support Team _ Eason

Helpful resources

Announcements
May 23 2022 epsiode 5 without aka link.jpg

The Power BI Community Show

Welcome to the Power BI Community Show! Jeroen ter Heerdt talks about the importance of Data Modeling.

charticulator_carousel_with_text (1).png

Charticulator Design Challenge

Put your data visualization and design skills to the test! This exciting challenge is happening now through June10th!

Power BI Dev Camp Session 22 without aka link and time 768x460.jpg

Check it Out!

Watch Session 22 Ted's Dev Camp along with past sessions!

Power BI Release May 2022 768x460.png

Check it out!

Click here to read more about the May 2022 updates!

Top Solution Authors
Top Kudoed Authors