├── Export2Dataflow.ps1
├── Export2Dataflow_Logo.png
├── Export2Dataflow_Logo.svg
├── LICENSE
├── Publish2Dataflow_Logo.png
├── Publish2Dataflow_Logo.svg
├── README.md
├── export2dataflow.pbitool.json
└── publish2dataflow.pbitool.json
/Export2Dataflow.ps1:
--------------------------------------------------------------------------------
1 | <#
2 | .SYNOPSIS
3 | This script exports the Power Query to a Dataflow JSON file or publishes it to the Power BI service.
4 | .DESCRIPTION
5 | This Powershell script can be called as an External Tool from Power BI Desktop, which then extracts the Power Queries via the
6 | TOM (Tabular Object Model) and stores them in the Dataflow JSON format or publishes it to the Power BI service.
7 | .NOTES
8 | File Name : Export2Dataflow.ps1
9 | Date : 10/16/2023
10 | Version : 1.1.1
11 | Author : Marcus Wegener
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
14 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
15 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
16 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
17 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
18 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
19 | OTHER DEALINGS IN THE SOFTWARE.
20 | .LINK
21 | https://github.com/MarcusWegener/Export2Dataflow
22 | .Parameter Server
23 | The server name and portnumber of the local instance of Analysis Services Tabular for imported/DirectQuery data models
24 | .Parameter Database
25 | The database name of the model hosted in the local instance of Analysis Services Tabular for imported/DirectQuery data models
26 | .Parameter Deployment
27 | Deployment options :
28 | 0 - saves to Dataflow JSON file
29 | 1 - published in Power BI service
30 | #>
31 |
32 | # Below section defines the server, database and deployment based on the input captured from the External tools integration
33 | # This is defined as arguments \"%server%\" and \"%database%\" in the external tools json
34 | Param(
35 | [string] $server = $null,
36 | [string] $database = $null,
37 | [int] $deployment = 0
38 | )
39 |
40 | Set-StrictMode -Version Latest
41 |
42 | # =================================================================================================================================================
43 | # DEFINE FUNCTIONS
44 | # =================================================================================================================================================
45 |
46 | # Function of Marc Lelijveld
47 | # https://github.com/marclelijveld/Power-BI-Automation/blob/master/PowerBI_MoveDataflows.ps1
48 | function _postDataflowDefinition([string] $GroupID, [string]$DataflowDefinition, [string]$NameConflict) {
49 |
50 | $UserAccessToken = Get-PowerBIAccessToken
51 | $bearer = $UserAccessToken.Authorization.ToString()
52 |
53 | $url = [string]::Format("https://api.powerbi.com/v1.0/myorg/groups/{0}/imports?datasetDisplayName=model.json&nameConflict={1}", $GroupID, $NameConflict)
54 |
55 | $boundary = [System.Guid]::NewGuid().ToString("N")
56 | $LF = [System.Environment]::NewLine
57 |
58 | $body = (
59 | "--$boundary",
60 | "Content-Disposition: form-data; name=`"`"; filename=`"model.json`"",
61 | "Content-Type: application/json$LF",
62 | $DataflowDefinition,
63 | "--$boundary--$LF"
64 | ) -join $LF
65 |
66 | $headers = @{
67 | 'Authorization' = "$bearer"
68 | 'Content-Type' = "multipart/form-data; boundary=--$boundary"
69 | }
70 |
71 | $postFlow = Invoke-RestMethod -Uri $url -ContentType 'multipart/form-data' -Method POST -Headers $headers -Body ([System.Text.Encoding]::UTF8.GetBytes($body))
72 |
73 | return $postFlow
74 | }
75 |
76 | # Form
77 | function _showSelectionForm($mode, $workspace, $selectionList){
78 |
79 | #create GUI
80 | $watermarkText = ""
81 | $labelText = ""
82 | $textBoxWidth = 560
83 | if ($mode -eq "workspace") {
84 | $watermarkText = "Search"
85 | $labelText = "Select a destination:"
86 | } elseif ($mode -eq "dataflow") {
87 | $watermarkText = "name for a new dataflow"
88 | $labelText = "Workspace: " + $workspace + "`n" + "Create a new dataflow or select an existing dataflow:"
89 | $textBoxWidth = 480
90 | }
91 | #create the window settings
92 | $form = New-Object System.Windows.Forms.Form
93 | $form.Text = 'Publish to Power BI'
94 | $form.Size = New-Object System.Drawing.Size(620,400)
95 | $form.StartPosition = 'CenterScreen'
96 | $form.FormBorderStyle = 'FixedSingle'
97 | $form.MaximizeBox = $false
98 | $form.MinimizeBox = $false
99 | $form.BackColor = "White"
100 | $form.ShowIcon = $false
101 |
102 | #create the label settings
103 | $label = New-Object System.Windows.Forms.Label
104 | $label.Location = New-Object System.Drawing.Point(20,10)
105 | $label.Size = New-Object System.Drawing.Size(560,40)
106 | $label.Font = [System.Drawing.Font]::new($label.Font.FontFamily.Name, 10)
107 | $label.Text = $labelText
108 | $form.Controls.Add($label)
109 |
110 | #create Input settings
111 | $textBox = New-Object System.Windows.Forms.TextBox
112 | $textBox.Location = New-Object System.Drawing.Size(20,50)
113 | $textBox.Size = New-Object System.Drawing.Size($textBoxWidth,20)
114 | $textBox.Font = [System.Drawing.Font]::new($textBox.Font.FontFamily.Name, 10)
115 | $textBox.MaxLength = 250
116 | $textBox.ForeColor = 'LightGray'
117 | $textBox.Text = $watermarkText
118 | $form.Controls.Add($textBox)
119 |
120 | if ($mode -eq "dataflow") {
121 | #create the create button settings
122 | $createButton = New-Object System.Windows.Forms.Button
123 | $createButton.Location = New-Object System.Drawing.Point(500,49)
124 | $createButton.Size = New-Object System.Drawing.Size(80,25)
125 | $createButton.Font = [System.Drawing.Font]::new($createButton.Font.FontFamily.Name, 10)
126 | $createButton.Text = 'Create'
127 | $createButton.DialogResult = [System.Windows.Forms.DialogResult]::Yes
128 | $createButton.BackColor = "#f2c811"
129 | $form.AcceptButton = $createButton
130 | $form.Controls.Add($createButton)
131 | }
132 |
133 | #create list Box settings for the selection List
134 | $listBox = New-Object System.Windows.Forms.ListBox
135 | $listBox.Location = New-Object System.Drawing.Point(20,77)
136 | $listBox.Font = [System.Drawing.Font]::new($listBox.Font.FontFamily.Name, 10)
137 | $listBox.Height = 243
138 | $listBox.Width = 560
139 | $listBox.Sorted = $true
140 | $listBox.HorizontalScrollbar = $true
141 |
142 | #add selectionList to the listBox
143 | $listBox.Items.Clear()
144 | if ($selectionList) {
145 | [void] $listBox.Items.AddRange($selectionList)
146 | }
147 |
148 | $form.Controls.Add($listBox)
149 |
150 | #create the select button settings
151 | $selectButton = New-Object System.Windows.Forms.Button
152 | $selectButton.Location = New-Object System.Drawing.Point(400,318)
153 | $selectButton.Size = New-Object System.Drawing.Size(80,27)
154 | $selectButton.Font = [System.Drawing.Font]::new($selectButton.Font.FontFamily.Name, 10)
155 | $selectButton.Text = 'Select'
156 | $selectButton.DialogResult = [System.Windows.Forms.DialogResult]::OK
157 | $selectButton.Enabled = $false
158 | $selectButton.BackColor = "lightgray"
159 | $form.AcceptButton = $selectButton
160 | $form.Controls.Add($selectButton)
161 |
162 | #create the cancel button settings
163 | $cancelButton = New-Object System.Windows.Forms.Button
164 | $cancelButton.Location = New-Object System.Drawing.Point(500,318)
165 | $cancelButton.Size = New-Object System.Drawing.Size(80,27)
166 | $cancelButton.Font = [System.Drawing.Font]::new($cancelButton.Font.FontFamily.Name, 10)
167 | $cancelButton.Text = 'Cancel'
168 | $cancelButton.DialogResult = [System.Windows.Forms.DialogResult]::Cancel
169 | $form.CancelButton = $cancelButton
170 | $form.Controls.Add($cancelButton)
171 |
172 | $form.Topmost = $true
173 |
174 | #behavior if you enter the input textbox
175 | $textBox.Add_Enter({
176 | if($textBox.Text -eq $watermarkText -and $textBox.ForeColor -eq 'LightGray')
177 | {
178 | #Clear the text
179 | $textBox.Text = ""
180 | $textBox.ForeColor = 'WindowText'
181 | $listBox.ClearSelected()
182 | }
183 | })
184 | #behavior if you leave the input textbox
185 | $textBox.Add_Leave({
186 | if($textBox.Text -eq "")
187 | {
188 | #Display the watermark
189 | $textBox.Text = $watermarkText
190 | $textBox.ForeColor = 'LightGray'
191 | if ($mode -eq "workspace") {
192 | $listBox.Items.Clear()
193 | [void] $listBox.Items.AddRange($selectionList)
194 | }
195 | }
196 | })
197 |
198 | if ($mode -eq "workspace") {
199 | #behavior if you type inside the input textbox
200 | $textBox.Add_TextChanged({
201 | $textBoxText = [regex]::Escape($textBox.Text)
202 | if ($textBoxText) {
203 | $listBox.Items.Clear()
204 | forEach ($selection in $selectionList) {
205 | if($selection -match $textBoxText){
206 | [void] $listBox.Items.Add($selection)
207 | }
208 | }
209 | }
210 | })
211 | }
212 |
213 | $listBox.Add_SelectedIndexChanged({
214 | if($listBox.SelectedIndex -ge 0){
215 | $selectButton.Enabled = $true
216 | $selectButton.BackColor = "#f2c811"
217 | } else {
218 | $selectButton.Enabled = $false
219 | $selectButton.BackColor = "lightgray"
220 | }
221 | })
222 |
223 | $result = $form.ShowDialog()
224 |
225 | if($result -eq [System.Windows.Forms.DialogResult]::OK){
226 | return $listBox.SelectedItem
227 | } elseif ($result -eq [System.Windows.Forms.DialogResult]::Yes){
228 | if ($textBox.TextLength -lt 1 -or $textBox.Text -eq $watermarkText) {
229 | return $null
230 | } else {
231 | return $textBox.Text
232 | }
233 | } else {
234 | Write-Host -ForegroundColor Yellow "No " + $mode + " was selected.. Terminating.."
235 | Start-Sleep -Seconds 1.5
236 | exit
237 | }
238 | }
239 |
240 | # =================================================================================================================================================
241 | # RUN APPLICATION
242 | # =================================================================================================================================================
243 |
244 | # Write Intro, Server and Database information to screen
245 | Write-Host -ForegroundColor White '========================================================================================================================'
246 | if ($deployment -eq 0) {
247 | Write-Host -ForegroundColor Yellow ' ______ __ ___ ____ __ ____ __ '
248 | Write-Host -ForegroundColor Yellow ' / ____/_ __ ____ ____ _____ / /_|__ \ / __ \ ____ _ / /_ ____ _ / __// /____ _ __ '
249 | Write-Host -ForegroundColor Yellow ' / __/ | |/_// __ \ / __ \ / ___// __/__/ / / / / // __ `// __// __ `// /_ / // __ \| | /| / / '
250 | Write-Host -ForegroundColor Yellow ' / /___ _> < / /_/ // /_/ // / / /_ / __/ / /_/ // /_/ // /_ / /_/ // __// // /_/ /| |/ |/ / '
251 | Write-Host -ForegroundColor Yellow ' /_____//_/|_|/ .___/ \____//_/ \__//____//_____/ \__,_/ \__/ \__,_//_/ /_/ \____/ |__/|__/ '
252 | Write-Host -ForegroundColor Yellow ' /_/ '
253 | } else {
254 | Write-Host -ForegroundColor Yellow ' ____ __ __ _ __ ___ ____ __ ____ __ '
255 | Write-Host -ForegroundColor Yellow ' / __ \ __ __ / /_ / /(_)_____ / /_ |__ \ / __ \ ____ _ / /_ ____ _ / __// /____ _ __ '
256 | Write-Host -ForegroundColor Yellow ' / /_/ // / / // __ \ / // // ___// __ \ __/ / / / / // __ `// __// __ `// /_ / // __ \| | /| / / '
257 | Write-Host -ForegroundColor Yellow ' / ____// /_/ // /_/ // // /(__ )/ / / // __/ / /_/ // /_/ // /_ / /_/ // __// // /_/ /| |/ |/ / '
258 | Write-Host -ForegroundColor Yellow ' /_/ \__,_//_.___//_//_//____//_/ /_//____//_____/ \__,_/ \__/ \__,_//_/ /_/ \____/ |__/|__/ '
259 | Write-Host -ForegroundColor Yellow ' '
260 | }
261 | Write-Host -ForegroundColor Yellow ' By Marcus Wegener v1.1.0 03/28/2021 '
262 | Write-Host -ForegroundColor White '========================================================================================================================'
263 | Write-Host -ForegroundColor White "Your Power BI Model currently runs with the following connection details:"
264 | Write-Host -ForegroundColor White "Server: " $server
265 | Write-Host -ForegroundColor White "Database: " $database
266 |
267 | # Install latest package (if not already installed) of Microsoft.AnalysisServices.retail.amd64 for current user
268 | Write-Host -ForegroundColor White '========================================================================================================================'
269 | Write-Host -ForegroundColor Gray "Install latest package (if not already installed) of Microsoft.AnalysisServices.retail.amd64 for current user..."
270 | [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
271 | Install-Package Microsoft.AnalysisServices.retail.amd64 -Scope CurrentUser -Source "https://www.nuget.org/api/v2" -SkipDependencies
272 | $installedPackages = Find-Package -Name Microsoft.AnalysisServices.retail.amd64 -Source "$env:USERPROFILE\AppData\Local\PackageManagement\NuGet\Packages\" -AllVersions
273 | $maxVersion = $installedPackages[0].Version
274 |
275 | # Load Assembly Files from insalled package Microsoft.AnalysisServices.retail.amd64
276 | Write-Host -ForegroundColor Gray "Load Assembly Files from insalled package Microsoft.AnalysisServices.retail.amd64..."
277 | $assemblyPathTabular = "$env:USERPROFILE\AppData\Local\PackageManagement\NuGet\Packages\Microsoft.AnalysisServices.retail.amd64.$maxVersion\lib\net45\Microsoft.AnalysisServices.Tabular.dll"
278 |
279 | Write-Host -ForegroundColor White '========================================================================================================================'
280 |
281 | # Connect to Power BI Model
282 | Write-Host -ForegroundColor Gray "Connect to Power BI Model..."
283 |
284 | Add-Type -Path $assemblyPathTabular
285 |
286 | $as = New-Object Microsoft.AnalysisServices.Tabular.Server
287 | $as.Connect($server)
288 | $db = $as.Databases[$database]
289 | $dbModel = $db.Model
290 |
291 | $modelCulture = $dbModel.Culture
292 | $modelModifiedTime = Get-Date($dbModel.ModifiedTime) -format s
293 |
294 | # Create query groups
295 | Write-Host -ForegroundColor Gray "`Create query groups..."
296 |
297 | $queryGroups = @{}
298 | foreach($queryGroup in $dbModel.QueryGroups) {
299 | $groupStructur = $queryGroup.Folder.Split("\")
300 | $groupName = $groupStructur[-1]
301 | $groupParentName = ""
302 | $groupParentId = $null
303 |
304 | if($groupStructur.Length -gt 1) {
305 | $groupParentName = $groupStructur[0..($groupStructur.Length -2)] -join "\"
306 | $groupParentId = $queryGroups[$groupParentName].id
307 | }
308 |
309 | $queryGroups[$queryGroup.Name] = [ordered]@{
310 | "id" = New-Guid
311 | "name" = $groupName
312 | "description" = $queryGroup.Description
313 | "parentId" = $groupParentId
314 | "order" = $groupStructur.Length
315 | }
316 | }
317 |
318 | $pbiQueryGroups = ""
319 |
320 | if($queryGroups.Count -le 1) {
321 | $pbiQueryGroups = "["
322 | }
323 |
324 | $pbiQueryGroups += $queryGroups.values | ConvertTo-Json -Compress
325 |
326 | if($queryGroups.Count -le 1) {
327 | $pbiQueryGroups += "]"
328 | }
329 |
330 |
331 | # Create queries
332 | Write-Host -ForegroundColor Gray "`nCreate queries..."
333 |
334 | $queriesMetadata = @{}
335 | $entities = @()
336 | $document = "section Section1;`n"
337 |
338 |
339 | foreach($e in $dbModel.Expressions) {
340 | $queriesMetadata[$e.Name] = [ordered]@{
341 | queryId = New-Guid
342 | queryName = $e.Name
343 | }
344 | if($e.QueryGroup) {
345 | $queriesMetadata[$e.Name].queryGroupId = $queryGroups[$e.QueryGroup.Folder].id
346 | }
347 |
348 | $tableName = $e.Name
349 | if($tableName -notmatch '^[a-z0-9]+$') {
350 | $tableName = "#"""+$tableName+""""
351 | }
352 |
353 | $document += "shared " + $tableName + " = " + $e.Expression + ";`n"
354 | }
355 |
356 | foreach($t in $dbModel.Tables) {
357 | if($t.Partitions.SourceType -eq "M") {
358 | $queriesMetadata[$t.Name] = [ordered]@{
359 | queryId = New-Guid
360 | queryName = $t.Name
361 | "loadEnabled" = $true
362 | }
363 | if($t.Partitions.QueryGroup) {
364 | $queriesMetadata[$t.Name].queryGroupId = $queryGroups[$t.Partitions.QueryGroup.Folder].id
365 | }
366 |
367 | $tableName = $t.Name
368 | if($tableName -notmatch '^[a-z0-9]+$') {
369 | $tableName = "#"""+$tableName+""""
370 | }
371 |
372 | $document += "shared " + $tableName + " = " + $t.Partitions.Source.Expression + ";`n"
373 |
374 | $attributes = @()
375 |
376 | foreach($c in $t.Columns) {
377 | if ($c.Type -eq "Data") {
378 | $attributes += [ordered]@{
379 | name = $c.Name
380 | dataType = $c.DataType.ToString().ToLower()
381 | }
382 | }
383 | }
384 |
385 | $entities += [ordered]@{
386 | '$type' = "LocalEntity"
387 | "name" = $t.Name
388 | "description" = $t.Description
389 | "pbi:refreshPolicy"= [ordered]@{
390 | '$type' = "FullRefreshPolicy"
391 | "location" = [uri]::EscapeDataString($t.Name) + ".csv"
392 | }
393 | "attributes" = $attributes
394 | }
395 | }
396 | }
397 |
398 | $document = $document.Replace("`n","`r`n")
399 |
400 | Write-Host -ForegroundColor Gray "`nDisconnect from Power BI Model..."
401 |
402 | $as.Disconnect()
403 |
404 | $dataflowName = ""
405 | $conflict = "Ignore"
406 |
407 | if ($deployment -eq 0) {
408 | # Save file dialog
409 | Write-Host -ForegroundColor Gray "Export Dataflow model to file..."
410 |
411 | Add-Type -AssemblyName System.Windows.Forms
412 |
413 | $fileBrowser = New-Object System.Windows.Forms.SaveFileDialog -Property @{
414 | InitialDirectory = [Environment]::GetFolderPath('Desktop')
415 | Filter = 'JSON Files (*.json)|*.json'
416 | Title = 'Export Dataflow model to file:'
417 | }
418 |
419 | $null = $fileBrowser.ShowDialog()
420 | $fileName = $fileBrowser.FileName
421 |
422 | if(!$fileName){
423 | Write-Host -ForegroundColor Yellow "No file chosen. Terminating..."
424 | Start-Sleep -Seconds 1.5
425 | exit
426 | }
427 |
428 | $fileNameWithoutPath = Split-path $fileBrowser.FileName -leaf
429 |
430 |
431 | Write-Host -ForegroundColor Gray "$fileName chosen..."
432 |
433 | $dataflowName = [regex]::Match($fileNameWithoutPath, ".+?(?=\.json)").Value
434 | } else {
435 |
436 | Add-Type -AssemblyName System.Windows.Forms
437 | Add-Type -AssemblyName System.Drawing
438 | Add-Type -AssemblyName PresentationCore
439 | Add-Type -AssemblyName PresentationFramework
440 |
441 | [System.Windows.Forms.Application]::EnableVisualStyles()
442 |
443 | #Get Module "MicrosoftPowerBIMgmt"
444 | $moduleName = Get-Module -ListAvailable -Verbose:$false | Where-Object { $_.Name -eq "MicrosoftPowerBIMgmt" } | Select-Object -ExpandProperty Name
445 | if ([string]::IsNullOrEmpty($moduleName)) {
446 | Write-Host -ForegroundColor White "`n========================================================================================================================"
447 | Write-Host -ForegroundColor Gray "Install module MicrosoftPowerBIMgmt..."
448 | Install-Module MicrosoftPowerBIMgmt -SkipPublisherCheck -AllowClobber -Force -Scope CurrentUser
449 | Write-Host -ForegroundColor White "========================================================================================================================"
450 | }
451 |
452 | Write-Host -ForegroundColor Gray "`nConnect to PowerBI service"
453 | Connect-PowerBIServiceAccount
454 |
455 | #Get all Workspaces of connected user
456 | $workspaces = Get-PowerBIWorkspace -All
457 |
458 | $workspaceName = _showSelectionForm -mode "workspace" -workspace $null -selectionList $workspaces.Name
459 |
460 | $selectedWorkspace = $workspaces | Where Name -eq $workspaceName
461 |
462 | $dataflowsInWorkspace = Get-PowerBIDataflow -Workspace $selectedWorkspace
463 |
464 | $dataflowNames = $dataflowsInWorkspace | Select-Object -ExpandProperty Name
465 |
466 | do {
467 | $dataflowName = _showSelectionForm -mode "dataflow" -workspace $workspaceName -selectionList $dataflowNames
468 |
469 | if ($dataflowName -eq $null) {
470 | [void] [System.Windows.MessageBox]::Show("You need to write at least 1 character"
471 | ,""
472 | ,[System.Windows.MessageBoxButton]::OK
473 | ,[System.Windows.MessageBoxImage]::Exclamation)
474 | } elseif ($dataflowsInWorkspace | Where Name -eq $dataflowName){
475 | $confirmationResult = [System.Windows.MessageBox]::Show("Are you sure you want to overwrite the dataflow '$dataflowName'?"
476 | ,"Confirm Overwriting dataflow"
477 | ,[System.Windows.MessageBoxButton]::YesNoCancel
478 | ,[System.Windows.MessageBoxImage]::Exclamation)
479 |
480 | switch ($confirmationResult) {
481 | "Yes"{
482 | Write-Host -ForegroundColor Yellow "Overwriting Dataflow '$dataflowName'"
483 | $conflict = "Overwrite"
484 | }"No"{
485 | Write-Host "Not overwriting Dataflow '$dataflowName'.. Navigating back to Dataflow-Selection"
486 | $dataflowName = $null
487 | }"Cancel"{
488 | Write-Host -ForegroundColor Yellow "Cancel-Button clicked.. Terminating.."
489 | Start-Sleep -Seconds 1
490 | exit
491 | }
492 | }
493 | }
494 | } while ($dataflowName -eq $null)
495 |
496 | Write-Host -ForegroundColor Gray $dataflowName
497 |
498 | }
499 |
500 | Write-Host -ForegroundColor White '========================================================================================================================'
501 |
502 | $json = [ordered]@{
503 | "name" = $dataflowName
504 | "description" = ""
505 | "version" = "1.0"
506 | "culture" = $modelCulture
507 | "modifiedTime" = $modelModifiedTime
508 | "pbi:mashup" = [ordered]@{
509 | "fastCombine" = $false
510 | "allowNativeQueries" = $false
511 | "skipAutomaticHeaderAndTypeDetection" = $false
512 | "queriesMetadata" = $queriesMetadata
513 | "document" = $document
514 | }
515 | "annotations" = @(
516 | [ordered]@{
517 | "name" = "pbi:QueryGroups"
518 | "value" = $pbiQueryGroups
519 | }
520 | )
521 | "entities" = $entities
522 | }
523 |
524 |
525 | if ($deployment -eq 0) {
526 | Write-Host -ForegroundColor Gray "`nWrite into JSON file..."
527 |
528 | $json | ConvertTo-Json -Depth 10 -Compress | Out-File -Encoding UTF8 "$fileName"
529 |
530 | Start-Process -FilePath C:\Windows\explorer.exe -ArgumentList "/select, ""$fileName"""
531 |
532 | Write-Host -ForegroundColor Gray "Dataflow model file ($fileName) created..."
533 | } else {
534 | Write-Host -ForegroundColor Gray "`nGenerate JSON..."
535 |
536 | $dataflowJSON = $json | ConvertTo-Json -Depth 10 -Compress
537 |
538 | $newDataFlow = _postDataflowDefinition -GroupID $selectedWorkspace.Id -DataflowDefinition $dataflowJSON -NameConflict $conflict
539 |
540 | Write-Host -ForegroundColor White ( [string]::Format("New dataflow with id '{0}' created in workspace '{1}'", $newDataFlow.id, $selectedWorkspace.Name ))
541 | }
542 | Write-Host -ForegroundColor White '========================================================================================================================'
543 | Start-Sleep -Seconds 1.5
--------------------------------------------------------------------------------
/Export2Dataflow_Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MarcusWegener/Export2Dataflow/15b1f4aa1f2b4d11daefae198743b25b37751bb9/Export2Dataflow_Logo.png
--------------------------------------------------------------------------------
/Export2Dataflow_Logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
182 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | This is free and unencumbered software released into the public domain.
2 |
3 | Anyone is free to copy, modify, publish, use, compile, sell, or
4 | distribute this software, either in source code form or as a compiled
5 | binary, for any purpose, commercial or non-commercial, and by any
6 | means.
7 |
8 | In jurisdictions that recognize copyright laws, the author or authors
9 | of this software dedicate any and all copyright interest in the
10 | software to the public domain. We make this dedication for the benefit
11 | of the public at large and to the detriment of our heirs and
12 | successors. We intend this dedication to be an overt act of
13 | relinquishment in perpetuity of all present and future rights to this
14 | software under copyright law.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22 | OTHER DEALINGS IN THE SOFTWARE.
23 |
24 | For more information, please refer to
25 |
--------------------------------------------------------------------------------
/Publish2Dataflow_Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MarcusWegener/Export2Dataflow/15b1f4aa1f2b4d11daefae198743b25b37751bb9/Publish2Dataflow_Logo.png
--------------------------------------------------------------------------------
/Publish2Dataflow_Logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
191 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Export2Dataflow
2 | This repository contains everything needed to run the Export2Dataflow PowerShell script as an External Tool in the Power BI Desktop and export the Power Query to a Dataflow JSON file or publishes it to the Power BI service.
3 |
4 | ## Disclaimer
5 | Please know, that everything I have created and shared on the blogpost and on GitHub is based on best effort. No rights can be derived, as well as I am not liable for the use or misuse of the solution or possible damage resulting from this. Use of the solutions and execution of the scripts is all on your own risk and your own responsibility.
6 |
7 | ## Getting Started
8 | ### Download everything you need from this repository.
9 | * External Tool integration file: _export2dataflow.pbitool.json_
10 | * External Tool integration file: _publish2dataflow.pbitool.json_
11 | * The PowerShell script: _Export2Dataflow.ps1_
12 |
13 | ### Copy the External Tool integration file
14 | The External Tool integration file is needed to get the button in the Power BI ribbon. In order to achieve this, you need to copy the _export2dataflow.pbitool.json_ and _publish2dataflow.pbitool.json_ file in the External Tools folder. For me this location was:
15 | _C:\Program Files (x86)\Common Files\Microsoft Shared\Power BI Desktop\External Tools_
16 |
17 | While copying the files, it can be that Windows asks you to login with admin privileges before you can continue. This is mandatory to copy the files. If you cannot do this yourself, please contact your administrator.
18 |
19 | ### Copy the PowerShell script
20 | Create a subfolder _Export2Dataflow_ in the _C:\Program Files\\_ folder and copy the PowerShell script _Export2Dataflow.ps1_ file into it.
21 |
22 | Identical to the previous step, Windows may ask you to authenticate with administrator privileges before you can proceed.
23 |
24 | ### Restart Power BI Desktop
25 | You have applied all required steps by now. The new buttons will appear in the Power BI Desktop top ribbon for External Tools. In case you had Power BI running already, please restart Power BI desktop first.
26 |
27 | Did something not workout as expected for you, kindly check the FAQ to see if your question is already listed there. If not, please let me know.
28 |
29 | ## Usage
30 | I want to shortly describe how this tool works and what you can expect.
31 | 1. Open a Power BI Desktop file whose Power Query transformations you want to export to a Dataflow.
32 | 2. In the Top Ribbon under External Tools, click _Export to Dataflow_.
33 | 3. After the click a PowerShell window opens which converts the Power Query transformations into the Dataflow JSON format.
34 | During the first execution it may be necessary to agree to the installation of _nuget_ and the _package source_ for the installation of the latest Microsoft.AnalysisServices.Tabular.dll version.
35 | 4. Then the script asks for the location where the Dataflow JSON file should be exported.
36 | 5. The exported Dataflow JSON file can then be uploaded to the Power BI Portal as Dataflow. To do this, create a new dataflow in the workspace with the Import Datamodel option.
37 |
38 | ## Author
39 | Marcus Wegener
40 |
41 | [Website](https://thinkbi.de) -
42 | [twitter](https://twitter.com/PowerBIler) -
43 | [LinkedIn](https://www.linkedin.com/in/marcuswegener/) -
44 | [Xing](https://www.xing.com/profile/Marcus_Wegener3/cv)
45 |
46 | ## Acknowledgements
47 | Marc Lelijveld, for his tutorial on creating external tools for Power BI and his GitHub repository [External-Tools-Model-Documentation](https://github.com/marclelijveld/External-Tools-Model-Documentation), from which I was able to adopt a lot.
48 |
49 | [Website](https://data-marc.com/) -
50 | [Blogpost](https://data-marc.com/2020/07/28/external-tools-document-your-power-bi-model/) -
51 | [twitter](https://twitter.com/PowerBIler) -
52 | [LinkedIn](https://www.linkedin.com/in/marclelijveld/) -
53 | [Github](https://github.com/marclelijveld/External-Tools-Model-Documentation)
54 |
55 | Julian Kaiser, for reviewing, testing and adding some features to the script.
56 |
57 | [LinkedIn](https://www.linkedin.com/in/julian-kaiser-5b849519a/)
58 |
59 | ## FAQ
60 | ### The Document model button does not appear in Power BI Desktop
61 | There are a few things that can cause this issue. There are a few things you can check up front:
62 |
63 | 1. Do you run the latest version of Power BI Desktop? If not, please update first.
64 | 2. Do you have other External Tools, such as DAX Studio, Tabular Editor or ALM Toolkit successfully running?
65 | 3. Did you put the export2dataflow.pbitool.json file in the correct location? Please check the blogpost to find the correct location.
66 |
67 | If still nothing happens, or you don't have the External Tools folder on your PC, I advise you to install any of the above mentioned external tools that will generate this location for you during installation.
68 |
69 | ### The buttons in the External Tools section in Power BI Desktop are greyed out
70 | External tools require Enhanced Meta Data to be enabled. You can enable this in the preview features of Power BI Desktop.
71 |
72 | 1. Open Power BI Desktop
73 | 2. Go to File
74 | 3. Options & Settings
75 | 4. Options
76 | 5. In the Global Settings go to Preview Features
77 | 6. Close all Power BI Desktop instances and re-open Power BI.
78 |
79 | ### I clicked the button, saw the PowerShell window flickering on the screen, but nothing happened
80 | Most likely, this is caused by the execution policies for PowerShell configured on the computer. As far as I know, this is not something I can change in my script, but has everything to do with the setup of your PC or how your company configured it. This results in the fact that PowerShell.exe application did start, but it did not execute the script, because this was prevented by the policy. The solution to fix this, is changing the execution policy (which is a register thing on your computer. Please know, that this is all at your own risk! I cannot take any responsibility for this.
81 |
82 | The following steps might help you
83 |
84 | 1. Open PowerShell.exe manually
85 | 2. Execute Get-ExecutionPolicy -List
86 | 3. As a result, you see the current configuration of your execution policies. Most probably everything is set to undefined at this moment.
87 | 4. The easiest way to fix this, is by changing the execution policy for the current user. The ensures that this does not happen again. We need to do this by setting it to Unrestricted by executing this task: Set-ExecutionPolicy Unrestricted -Scope CurrentUser (all on your own responsibility and risk!)
88 | 5. Confirm that you want to change this.
89 | 6. Close PowerShell and Power BI Desktop
90 | Try again if it works now. More information about Execution Policies can be found [in this article](https://winaero.com/change-powershell-execution-policy-windows-10/)
91 |
92 | ## License
93 | All code in this repository is licenses as specified by the [LICENSE](https://github.com/MarcusWegener/Export2Dataflow/blob/main/LICENSE) file.
--------------------------------------------------------------------------------
/export2dataflow.pbitool.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "1.1.0",
3 | "name": "Export to Dataflow",
4 | "description": "Export to Dataflow",
5 | "path": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
6 | "arguments": "C:\\'Program Files'\\Export2Dataflow\\Export2Dataflow.ps1 \"%server%\" \"%database%\" 0",
7 | "iconData": "data:image/png;base64,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"
8 | }
9 |
--------------------------------------------------------------------------------
/publish2dataflow.pbitool.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "1.1.0",
3 | "name": "Publish to Dataflow",
4 | "description": "Publish to Dataflow",
5 | "path": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
6 | "arguments": "C:\\'Program Files'\\Export2Dataflow\\Export2Dataflow.ps1 \"%server%\" \"%database%\" 1",
7 | "iconData": "data:image/png;base64,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"
8 | }
9 |
--------------------------------------------------------------------------------