mcpField
P
programmatic-development

programmatic-development

github.com/josiahsiegel数据与数据库5990 次安装19 周前更新
代码仓库

关于 programmatic-development

这是一份通过代码开发 Power BI 报表和语义模型的参考技能,指导开发者处理 PBIP、PBIR 与 TMDL 的编写、验证、工具选择及部署工作流。

主要功能

  1. 01PBIP 项目结构指引
  2. 02PBIR 报表格式与编辑
  3. 03TMDL 语义模型编写
  4. 04本地验证参考
  5. 05部署工具选择
  6. 06CI/CD 与环境晋级模式

适用场景

  1. 01用 Python 生成或更新报表页面
  2. 02以代码编辑语义模型
  3. 03从 CI 部署 PBIP 项目
  4. 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.md
pbir-format-deep-dive.md
pbir-schema-reference.md
tom-advanced-patterns.md
tools-and-tabular-editor.md

详细介绍

以编程方式开发 Power BI

概述

Power BI 支持通过代码创建和管理报表及语义模型的多种方式。截至 2026 年,规范技术栈如下:

  • PBIP(Power BI Project)作为基于文件夹的源格式
  • TMDL 作为 PBIP 中的语义模型格式(参见 tmdl-mastery 技能)
  • PBIR(Power BI Enhanced Report Format)作为 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 Enhanced Report Format

PBIR 是 Microsoft 现代、公开文档化、基于文件夹的 JSON 报表格式。它取代了不透明的 report.json 数据块(现称为 PBIR-Legacy),改为每个视觉对象、页面和书签各用一个文件,从而支持真正的 Git 差异比较/合并、代码审查,以及在 VS Code 中进行架构验证的编辑。

当前状态(2026 年 4 月): PBIR 已成为 Service 中新建报表的默认格式。现有 Service 报表正在逐步自动升级。Desktop 在 2026 年 5 月版本发布之前仍需启用预览开关;届时 PBIR 将成为 Desktop 的默认格式。PBIP 达到 GA 时,PBIR-Legacy 将被弃用。

有关 2026 年完整的推出时间线、管理员退出选项、Service/Desktop 还原策略、主权云注意事项、完整项目结构、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。如需全面了解 TMDL,包括完整语法参考、所有对象类型、CI/CD 模式和部署工作流,请加载专用的 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

核心工作流

  1. 选择源格式 — 新项目使用 PBIP(现代格式,采用 TMDL + PBIR);仅当用于 Report Server 或现有 PBIP 之前的项目时,才使用旧版 PBIX。
  2. 以编程方式编辑 — 使用 VS Code 编辑 PBIR/TMDL JSON;使用 Tabular Editor 编写模型;使用 semantic-link-labs 处理 Fabric 笔记本;使用 TOM .NET 构建自定义应用。
  3. 本地验证 — 使用 JSON 架构、PBI-InspectorV2、血缘遍历器和 BPA。请参阅 powerbi-master:validation-testing 技能。
  4. 参数化 — 使用 parameter.yml 配置特定于环境的 GUID/连接字符串。
  5. 部署 — 使用 fabric-cicd(Python 库,主要方式)或 fab deploy(CLI 封装程序)。两者都使用同一个 parameter.yml。首次部署需要在 Fabric 门户中手动输入数据源凭据。
  6. 比较差异并提升 — 使用 ALM Toolkit 比较架构差异;使用 Fabric 部署管道或脚本化的多工作区部署进行提升。

部署决策矩阵(2026)

场景推荐工具
使用 CI/CD 的 PBIP 项目(GitHub Actions / Azure DevOps)fabric-cicd(Python)
在本地临时部署 PBIPfab deploy(Fabric CLI v1.5+)
基于 Fabric 笔记本编辑模型semantic-link-labs(sempy_labs)
通过 XMLA 操作纯语义模型通过 Microsoft.AnalysisServices.NetCore.retail.amd64 使用 TOM(.NET)
TMDL 文件夹 -> XMLATabular Editor 2 CLI(-D 开关)
仅有旧版 PBIX(没有 PBIP)pbi-tools
跨环境提升(开发/测试/生产)Fabric 部署管道(图形界面)或使用 parameter.yml 的 fabric-cicd
比较两个模型的架构差异ALM Toolkit

工具快速选择

需求加载参考工具
修改已部署模型中的度量值tools-and-tabular-editor.mdTOM 或 semantic-link-labs
跨文件夹自动生成度量值tools-and-tabular-editor.mdTabular Editor C# 脚本
从 CI 部署 PBIPfabric-cicd-recipes.mdfabric-cicd + parameter.yml
根据模板生成 PBIR 页面pbir-schema-reference.mdPython + JSON 架构验证
在 .NET 中配置 RLS/OLStom-advanced-patterns.mdTOM
提取旧版 PBIX 以比较差异tools-and-tabular-editor.mdpbi-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 部署管道、工作区管理、部署时的 RLS
  • powerbi-master:fabric-integration -- Direct Lake、OneLake、Lakehouse/Warehouse 集成

Microsoft 官方参考(2026)

评论

支持 Markdown