public/Invoke-ProcessSsasDatabase.ps1
function Invoke-ProcessSsasDatabase { <# .SYNOPSIS Processes an SSAS database on a SQL Server SSAS instance .DESCRIPTION Processes an SSAS database on a SQL Server SSAS instance Written by (c) Dr. John Tunnicliffe, 2019 https://github.com/DrJohnT/DeployCube This PowerShell script is released under the MIT license http://www.opensource.org/licenses/MIT #> [CmdletBinding()] param ( [String] [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] $Server, [String] [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] $CubeDatabase, [String] [Parameter(Mandatory = $false)] [ValidateSet('Full', 'Automatic', 'ClearValues', 'Calculate')] $RefreshType = 'Full' ) if ( Ping-SsasDatabase -Server $Server -CubeDatabase $CubeDatabase ) { Write-Output "Processing tabular cube $Server.$CubeDatabase using Refresh Type: $RefreshType"; $tmslStructure = [pscustomobject]@{ refresh = [pscustomobject]@{ type = $RefreshType objects = @( [pscustomobject]@{ database = $CubeDatabase } ) } } $tmsl = $tmslStructure | ConvertTo-Json; $tmsl = $tmsl -replace '\"@{', '{ "' $tmsl = $tmsl -replace '=', '": "' $tmsl = $tmsl -replace '}"', '" }' # Write-Output $tmsl; $returnResult = Invoke-ASCmd -Server $Server -ConnectionTimeout 1 -Query $tmsl; Get-SsasProcessingMessages -ASCmdReturnString $returnResult; } else { throw "Cube database $CubeDatabase not found on SSAS Server: $Server"; } } |