Power BI Service で レポートをコピーしたい。ただし、レポートに紐づくデータセットも変更するのだ。

ちまちまとビジュアルごとに設定するのは面倒だし(テーマを使いたい)のと Power BI Desktop を使わなければならないというのは面倒だ(Power BI service だけで完結したい)。

Power BI dataset および Power BI report を Power BI service に展開するには Power BI Desktop が必須ということではないから、できる手段は整えておきたいよね。 Power BI report を追加するだけのために Power BI Desktop を準備する必要はないのだ。多くの場合で、Power BI Desktop を用いたレポートの作成になるのでよいのだけど。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">Power BI Desktop 使わなくとも Power BI Service 上に Power BI Dataset をデプロイできるわけだが、よく考えたら Power BI Service で作成した Power BI Report に カスタム テーマを適用する方法がなかったかなと代案を思案など。レポートのクローンでできるかな🤔 <a href="https://twitter.com/hashtag/PBIJP?src=hash&amp;ref_src=twsrc%5Etfw">#PBIJP</a></p>&mdash; Takeshi Kagata / Power Platform 部 Power BI 科 🛌💤 (@PowerBIxyz) <a href="https://twitter.com/PowerBIxyz/status/1410440480370814976?ref_src=twsrc%5Etfw">July 1, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

https://docs.microsoft.com/en-us/power-bi/create-reports/desktop-report-themes
> Themes can only be applied when using Power BI Desktop. You cannot apply themes to existing reports within the Power BI service.

レポートのテーマ適用は Power BI Desktop でやってねということだ。

- 仕方がない(終了)
- 代替案を考える(👈いまここ)

# テンプレートになるレポートを用意しておく
テンプレートになるレポートを Power BI service に用意しておく。このレポートを共有することはあまりないから、マイワークスペースにでもおいておこうか。
あらかじめレポートのテーマを適用しておけばよいし、利用するデータモデルがわかっているのであれば、ビジュアルを配置しておいてもよいよね。

ここは Power BI Desktop を使うしかない。テンプレートを追加していくには、テンプレートのデータセットにライブ接続するレポートを作ればよい。で、ワークスペース(ここでは マイワークスペース)にデプロイしておく。するとこうなる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193509/0812803f-f622-67af-4889-594b8979e9aa.png)

# レポートをコピーする

https://docs.microsoft.com/en-us/power-bi/connect-data/service-datasets-copy-reports

Power BI service 上でも レポートをコピーできるけれども、紐づくデータセットを変更する機能がない。とはいえ、Power BI Rest API にはそれがある。なのでこれを使う。

https://docs.microsoft.com/en-us/rest/api/power-bi/reports/clone-report

https://docs.microsoft.com/en-us/rest/api/power-bi/reports/clone-report-in-group

で、PowerShell で十分でしょ。

https://docs.microsoft.com/en-us/powershell/module/microsoftpowerbimgmt.reports/copy-powerbireport?view=powerbi-ps

```powershell
Login-PowerBI | Out-Null

$NewReportName = 'NewReportWithInovation'
$TempleteReportName = 'Inovation'
$TargetWorkspaceName = 'Rogue team'
$TargetDatasetName = 'NorthwindJ'

$TempleteReport = Get-PowerBIReport -Name $TempleteReportName
$TargetWorkspace = Get-PowerBIWorkspace -Name $TargetWorkspaceName
$TargetDataset = Get-PowerBIDataset `
    -Workspace $TargetWorkspace `
    -Name $TargetDatasetName

Copy-PowerBIReport `
    -Name $NewReportName `
    -Report $TempleteReport `
    -Workspace $TargetWorkspace `
    -TargetDatasetId ($TargetDataset.Id)
```

# コピーしたレポートを更新するなど
あとはお好みで

# 思ったこと🙄
できないことはできるようにしてしまえばよい。多くの場合で手段はすでに用意されている。
OneDrive for Business でテンプレートレポートを管理してもよいかなと。

# その他
https://powerbi.connpass.com/

http://qiita.com/PowerBIxyz/items/6c4735cb5b5712e70981

http://qiita.com/PowerBIxyz/items/52e563037b855a099ca9

- [Power BI 勉強会 - connpass](https://powerbi.connpass.com/)
- [Power BI Desktop を使い始めるには](http://qiita.com/PowerBIxyz/items/6c4735cb5b5712e70981)
- [Excel で Power Query を使い始めるには](http://qiita.com/PowerBIxyz/items/52e563037b855a099ca9)