programmatic-development について
コードでPower BIレポートとセマンティックモデルを開発するためのリファレンススキルです。PBIP、PBIR、TMDLの作成、検証、ツール選定、デプロイのワークフローを開発者向けに案内します。
主な機能
- 01PBIPプロジェクト構成の指針
- 02PBIRレポート形式と編集
- 03TMDLセマンティックモデルの作成
- 04ローカル検証の資料
- 05デプロイツールの選定
- 06CI/CDと環境昇格のパターン
活用シーン
- 01Pythonでレポートページを生成・更新
- 02コードでセマンティックモデルを編集
- 03CIからPBIPプロジェクトをデプロイ
- 04環境間でPower BIコンテンツを昇格
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ josiahsiegel/ claude-plugin-marketplace --skill programmatic-developmentインストール後、Claude Code で/programmatic-developmentを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/fabric-cicd-recipes.mdpbir-format-deep-dive.mdpbir-schema-reference.mdtom-advanced-patterns.mdtools-and-tabular-editor.md詳細
プログラムによる Power BI 開発
概要
Power BI では、コードを使用してレポートやセマンティックモデルを作成・管理するために、複数の方法がサポートされています。2026 年現在、標準的な技術スタックは次のとおりです。
- PBIP(Power BI プロジェクト):フォルダー形式のソースフォーマット
- TMDL:PBIP 内のセマンティックモデル形式(
tmdl-masteryスキルを参照) - PBIR(Power BI 拡張レポート形式):PBIP 内のレポート形式
- fabric-cicd(Python)または Fabric CLI
fab deploy:デプロイ用 - TOM / .NET SDK:高度なプログラムによるモデル編集用
- semantic-link-labs:Fabric ノートブックから Python ベースのスクリプトを実行するためのもの
リファレンスマップ
詳細な資料は references/ にあります。現在のタスクに必要なものだけを読み込んでください。
| トピック | ファイル | 読み込むタイミング |
|---|---|---|
| PBIR の段階的導入スケジュール、PBIP の完全なフォルダー構造、byPath/byConnection、注釈、検証、制限事項 | references/pbir-format-deep-dive.md | PBIR を手作業で作成する場合、definition.pbir のデバッグ、生成された PBIR の検証、2026 年の導入状況の把握 |
| PBIR JSON スキーマ(ビジュアル、ページ、レポート設定)と Python による操作例 | references/pbir-schema-reference.md | Python で PBIR をスクリプト操作する場合:ページの追加、ビジュアルの一括更新、レポート間のコピー |
| TOM/Tabular Editor/fabric-cicd/Fabric CLI/semantic-link/pbi-tools/ALM Toolkit — セットアップ、例、Desktop の開発者向け機能 | references/tools-and-tabular-editor.md | ツールの選択、デプロイ、TOM のスクリプト操作、C# スクリプトの実行、Desktop の設定 |
| TOM の高度なパターン(RLS、OLS、パーティション、パースペクティブ、翻訳、計算グループ、SP 認証) | references/tom-advanced-patterns.md | 基本的なメジャーやテーブルの編集を超える、複雑な TOM .NET コードの作成 |
| fabric-cicd の高度なレシピ(複数ワークスペース、フック、GitHub Actions/Azure DevOps パイプライン、パラメーターのパターン、トラブルシューティング) | references/fabric-cicd-recipes.md | 本番環境の CI/CD ワークフロー、複数環境への昇格、OIDC フェデレーション資格情報 |
PBIR - Power BI 拡張レポート形式
PBIR は、Microsoft が公開している最新のフォルダー形式の JSON レポート形式で、ドキュメント化されています。従来の不透明な report.json の塊(現在は PBIR-Legacy と呼ばれます)を、ビジュアル、ページ、ブックマークごとに 1 つのファイルに置き換え、適切な Git の差分・マージ、コードレビュー、VS Code でのスキーマ検証済み編集を可能にします。
現在の状況(2026 年 4 月): PBIR は Service で新規作成されるレポートの既定形式です。既存の Service レポートは段階的に自動アップグレードされています。Desktop では、2026 年 5 月のリリースで PBIR が Desktop の既定形式になるまで、プレビュー切り替えが必要です。PBIP が GA になる時点で、PBIR-Legacy は非推奨になります。
2026 年の導入スケジュール、管理者によるオプトアウト、Service/Desktop の復元ポリシー、Sovereign Cloud に関する注意点、プロジェクトの完全な構造、byPath と byConnection の例、注釈、自己検証手順、制限事項については、references/pbir-format-deep-dive.md を参照してください。
PBIP の簡易構造(要点のみ):
MyProject.pbip # Entry JSON
├── MyProject.Report/
│ ├── definition.pbir # Required entry; uses byPath or byConnection
│ └── definition/ # PBIR folder (one file per page/visual/bookmark)
└── MyProject.SemanticModel/
├── definition.pbism
└── definition/ # TMDL folder
TMDL - Tabular Model Definition Language
TMDL は、セマンティックモデル定義向けの、人が読みやすくソース管理に適した形式です。2025 年から GA です。完全な構文リファレンス、すべてのオブジェクトタイプ、CI/CD パターン、デプロイワークフローを含む TMDL の包括的な説明については、専用の powerbi-master:tmdl-mastery スキルを読み込んでください。
簡単な例:
table Sales
measure 'Total Sales' = SUM(Sales[Amount])
formatString: $ #,##0.00
displayFolder: Revenue
partition 'Sales-Partition' = m
mode: import
source =
let
Source = Sql.Database("server", "db"),
Sales = Source{[Schema="dbo",Item="Sales"]}[Data]
in
Sales
column Amount
dataType: decimal
sourceColumn: Amount
formatString: $ #,##0.00
基本的なワークフロー
- ソース形式を選択する — 新規作業には PBIP(最新形式、TMDL + PBIR)を使用します。レガシー PBIX は Report Server または PBIP 以前のプロジェクトでのみ使用します。
- プログラムで編集する — PBIR/TMDL JSON には VS Code、モデルの作成には Tabular Editor、Fabric ノートブックには semantic-link-labs、カスタムアプリには TOM .NET を使用します。
- ローカルで検証する — JSON スキーマ、PBI-InspectorV2、リネージウォーカー、BPA を使用します。
powerbi-master:validation-testingスキルを参照してください。 - パラメーター化する — 環境固有の GUID/接続文字列には
parameter.ymlを使用します。 - デプロイする —
fabric-cicd(Python ライブラリ、推奨)またはfab deploy(CLI ラッパー)を使用します。どちらも同じparameter.ymlを読み込みます。初回のデプロイ時には、Fabric ポータルでデータソースの資格情報を手動で入力する必要があります。 - 差分を確認して昇格する — スキーマの差分には ALM Toolkit を使用し、昇格には Fabric Deployment Pipelines またはスクリプトによる複数ワークスペースへのデプロイを使用します。
デプロイの判断マトリックス(2026)
| シナリオ | 推奨ツール |
|---|---|
| CI/CD(GitHub Actions / Azure DevOps)を使用する PBIP プロジェクト | fabric-cicd(Python) |
| PBIP のローカルでのアドホックなデプロイ | fab deploy(Fabric CLI v1.5+) |
| Fabric ノートブックを使用したモデル編集 | semantic-link-labs(sempy_labs) |
| XMLA による純粋なセマンティックモデル | Microsoft.AnalysisServices.NetCore.retail.amd64 を介した TOM(.NET) |
| TMDL フォルダーから XMLA への変換 | Tabular Editor 2 CLI(-D スイッチ) |
| レガシー PBIX のみ(PBIP なし) | pbi-tools |
| 環境間の昇格(dev/test/prod) | Fabric Deployment Pipelines(GUI)または parameter.yml を使用した fabric-cicd |
| 2 つのモデル間のスキーマ差分 | ALM Toolkit |
ツールのクイック選択
| 必要な作業 | 参照先を読み込む | ツール |
|---|---|---|
| デプロイ済みモデルのメジャーを変更する | tools-and-tabular-editor.md | TOM または semantic-link-labs |
| フォルダー間でメジャーを自動生成する | tools-and-tabular-editor.md | Tabular Editor C# スクリプト |
| CI から PBIP をデプロイする | fabric-cicd-recipes.md | fabric-cicd + parameter.yml |
| テンプレートから PBIR ページを生成する | pbir-schema-reference.md | Python + JSON スキーマ検証 |
| .NET で RLS/OLS を設定する | tom-advanced-patterns.md | TOM |
| 差分比較用にレガシー PBIX を抽出する | tools-and-tabular-editor.md | pbi-tools |
関連スキル
powerbi-master:tmdl-mastery-- TMDL 言語の詳細なリファレンスと構文powerbi-master:validation-testing-- デプロイ前に生成した PBIR / TMDL / DAX を検証しますpowerbi-master:rest-api-automation-- fabric-cicd では対応できないシナリオ向けの Fabric REST API エンドポイントpowerbi-master:deployment-admin-- Fabric Deployment Pipelines、ワークスペース管理、デプロイ時の RLSpowerbi-master:fabric-integration-- Direct Lake、OneLake、Lakehouse/Warehouse の統合