SuperAPI AI 工具集

add-dataverse

编程与开发

查看项目

更新于 10-15 09:13

技能介绍

用途

add-dataverse 用于向 Power Apps 代码应用添加 Dataverse 表,并生成对应的 TypeScript 模型和服务代码。它同时支持连接已有表,以及创建新的 Dataverse 表。

主要能力

  • 为已有 Dataverse 表生成 TypeScript 模型(src/generated/models/{Table}Model.ts)和服务(src/generated/services/{Table}Service.ts)。
  • 若表中包含文件/图像列,模型会额外生成 {Table}FileColumnName、{Table}ImageColumnName、{Table}UploadColumnName 联合类型;服务会额外生成 upload、downloadFile、downloadImage、deleteFileOrImage 方法。
  • 服务提供 CRUD 方法:create、get、getAll、update、delete。
  • 支持创建新的 Dataverse 表,包括设计 schema、构建依赖图、按依赖顺序创建表。
  • 提供多个参考文档:dataverse-reference.md(Picklist 字段、虚拟字段、查找、文件/图像列、表单模式)、api-authentication-reference.md(Dataverse API 认证、令牌、发布者前缀)、table-management-reference.md(查询、创建、扩展表和列)、data-architecture-reference.md(关系类型、依赖层级)。

使用方式

工作流分为两条路径:已有表(跳到第 5 步)或新表(完整流程)。

  1. 规划:检查 memory bank 中的项目上下文,询问用户需要哪些 Dataverse 表、表是否已存在。若创建新表,需设计 schema、构建依赖图,进入 plan mode 展示 ER 模型并获得批准。
  2. 设置 API 认证(仅创建表时):验证 Azure CLI 登录,获取 Dataverse 环境 URL(格式如 https://<org-name>.crm.dynamics.com),初始化 API。需要 System Administrator 或 System Customizer 安全角色。
  3. 审查现有表(仅创建表时):查询现有自定义表,向用户展示可复用、需扩展或需新建的表。
  4. 创建表(仅创建表时):获得明确确认后,按依赖顺序创建(Tier 0 参考表、Tier 1 主实体、Tier 2 依赖表),使用安全函数如 New-DataverseTableIfNotExists、Add-DataverseColumnIfNotExists、Add-DataverseLookupIfNotExists。
  5. 添加数据源:对每个表运行 pa app add data-source --connector dataverse --table <table-logical-name>。
  6. 审查生成文件:查看生成的模型和服务文件,向用户展示使用示例。关键规则:使用生成的服务(如 AccountsService.getAll()),而非 fetch/axios;检查 result.data 获取实际数据;不要编辑生成文件,除非必要;编写任何 Dataverse 代码前先阅读 dataverse-reference.md。
  7. 构建:运行 npm run build,修复 TypeScript 错误,暂不部署。

最后更新 memory bank,记录添加或创建的表、生成的文件及 schema 备注。

适用场景

  • 需要将 Power Apps 代码应用连接到 Dataverse 数据源。
  • 需要在 Dataverse 中创建新表并生成对应的 TypeScript 代码。
  • 需要为已有 Dataverse 表快速生成 CRUD 服务代码。

限制

  • 创建表需要 System Administrator 或 System Customizer 安全角色。
  • 创建表前需要 Azure CLI 登录并获取 Dataverse 环境 URL。
  • 构建后暂不部署,需手动处理部署。
  • 具体收费、价格、平台支持范围等细节暂未提供。