跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

add-dataverse

Adds Dataverse tables to a Power Apps code app with generated TypeScript models and services. Can also create new Dataverse tables. Use when connecting to Dataverse, adding tables, creating schema, or querying Dataverse data.

项目与协作976plugins/code-apps/skills/add-dataverse/SKILL.md

安装

把这段话发给 Claude Code、Codex 或 Cursor。智能体会先检查安全性,你确认后才安装。

读取 https://funcoding.ai/skills/microsoft/power-platform-skills/plugins-code-apps-skills-add-dataverse/install.md ,按里面的步骤帮我安装这个 Skill。

SKILL.md

📋 Shared Instructions: shared-instructions.md - Cross-cutting concerns.

References:

Add Dataverse

Two paths: existing tables (skip to Step 5) or new tables (full workflow).

Workflow

  1. Plan → 2. Setup API Auth → 3. Review Existing Tables → 4. Create Tables → 5. Add Data Source → 6. Review Generated Files → 7. Build

Step 1: Plan

Check memory bank for project context. Ask the user:

  1. Which Dataverse table(s) do they need? (e.g., account, contact, cr123_customentity)
  2. Do the tables already exist in their environment, or do they need to create new ones?

If tables already exist: Skip to Step 5.

If creating new tables:

  • Ask about the data they need and design an appropriate schema
  • Use standard Dataverse tables when appropriate (contact for people, account for organizations)
  • Build a dependency graph -- see data-architecture-reference.md for tier classification
  • Enter plan mode with EnterPlanMode, present ER model with tables, columns, relationships, and creation order
  • Get approval with ExitPlanMode

Step 2: Setup API Auth (if creating tables)

See api-authentication-reference.md for full details.

az account show   # Verify Azure CLI logged in

# Find your Dataverse environment URL:
# In make.powerapps.com → Settings → Developer resources → Web API endpoint
# It looks like: https://<org-name>.crm.dynamics.com/api/data/v9.2/
# Use the base URL: https://<org-name>.crm.dynamics.com

$api = Initialize-DataverseApi -EnvironmentUrl "https://<org>.crm.dynamics.com"
$headers = $api.Headers
$baseUrl = $api.BaseUrl
$publisherPrefix = $api.PublisherPrefix

Requires System Administrator or System Customizer security role.

Step 3: Review Existing Tables (if creating tables)

Always query existing tables first before creating:

$existingTables = Invoke-RestMethod -Uri "$baseUrl/EntityDefinitions?`$filter=IsCustomEntity eq true&`$select=SchemaName,LogicalName,DisplayName" -Headers $headers

See table-management-reference.md for Find-SimilarTables, Compare-TableSchemas, and Build-TableNameMapping functions.

Present findings to user with AskUserQuestion:

  • Tables that can be reused (already exist with matching columns)
  • Tables that need extension (exist but missing columns)
  • Tables that must be created (no match found)

Step 4: Create Tables (if creating tables)

Get explicit confirmation before creating. Create in dependency order:

  • Tier 0: Reference tables (no dependencies)
  • Tier 1: Primary entities (reference Tier 0)
  • Tier 2: Dependent tables (reference Tier 1)

Use safe functions from table-management-reference.md:

Step 5: Add Data Source

For each table:

pa app add data-source --connector dataverse --table <table-logical-name>

Can add multiple tables by running the command for each one.

Step 6: Review Generated Files

The command generates:

  • src/generated/models/{Table}Model.ts -- TypeScript interfaces, plus {Table}FileColumnName, {Table}ImageColumnName, {Table}UploadColumnName union types if the table has file/image columns
  • src/generated/services/{Table}Service.ts -- CRUD methods (create, get, getAll, update, delete) plus upload, downloadFile, downloadImage, deleteFileOrImage if file/image columns exist

Show the user a usage example:

import { AccountsService } from "../generated/services/AccountsService";

const result = await AccountsService.getAll({
  select: ["name", "accountnumber"],
  filter: "statecode eq 0",
  orderBy: ["name asc"],
  top: 50
});
const accounts = result.data || [];

Key rules:

  • Use generated services (e.g., AccountsService.getAll()), not fetch/axios
  • Check result.data for actual data
  • Don't edit generated files unless needed
  • Read dataverse-reference.md before writing any Dataverse code -- picklist fields, virtual fields, lookups, and file/image columns all have critical gotchas

Step 7: Build

npm run build

Fix TypeScript errors before proceeding. Do NOT deploy yet.

Update Memory Bank

Record which tables were added (or created), generated files, and any schema notes.

相似的 Skill

slack-gif-creator
anthropics/skills180k

slack-gif-creator

Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like "make me a GIF of X doing Y for Slack."

项目与协作

observability-and-instrumentation
addyosmani/agent-skills103k

observability-and-instrumentation

Instruments code so production behavior is visible and diagnosable. Use when adding logging, metrics, tracing, or alerting. Use when shipping any feature that runs in production and you need evidence it works. Use when production issues are reported but you can't tell what happened from the available data.

项目与协作

understand-diff
Egonex-AI/Understand-Anything86k

understand-diff

Use when you need to analyze git diffs or pull requests to understand what changed, affected components, and risks

项目与协作

skill-share
ComposioHQ/awesome-claude-skills77k

skill-share

A skill that creates new Claude skills and automatically shares them on Slack using Rube for seamless team collaboration and skill discovery.

项目与协作

slack-gif-creator
ComposioHQ/awesome-claude-skills77k

slack-gif-creator

Toolkit for creating animated GIFs optimized for Slack, with validators for size constraints and composable animation primitives. This skill applies when users request animated GIFs or emoji animations for Slack from descriptions like "make me a GIF for Slack of X doing Y".

项目与协作

connect-apps
ComposioHQ/awesome-claude-skills77k

connect-apps

Connect Claude to external apps like Gmail, Slack, GitHub. Use this skill when the user wants to send emails, create issues, post messages, or take actions in external services.

项目与协作