Dataverse-Python-Real-World-Usecases
Dataverse-Python-Real-World-Usecases是一款code方向的AI技能,核心价值是# Dataverse SDK for Python — Real-World Use Cases & Templates Based on official Dataverse data migration and integration patterns,可用于解决开发者在code领域的实际问题,帮助用户提升效率、自动化重复任务或优化工作流。
# Dataverse SDK for Python — Real-World Use Cases & Templates Based on official Dataverse data migration and integration patterns. ## 1. Data Migration from Legacy Systems ### Migration Architectur
mkdir -p ./skills/dataverse-python-real-world-usecases && curl -sfL https://raw.githubusercontent.com/github/awesome-copilot/main/skills/dataverse-python-real-world-usecases/SKILL.md -o ./skills/dataverse-python-real-world-usecases/SKILL.md Run in terminal / PowerShell. Requires curl (Unix) or PowerShell 5+ (Windows).
Skill Content
# Dataverse SDK for Python — Real-World Use Cases & Templates
Based on official Dataverse data migration and integration patterns.
1. Data Migration from Legacy Systems
Migration Architecture
Legacy System → Staging Database → Dataverse
(Extract) (Transform) (Load)Complete Migration Example
import pandas as pd
import time
from PowerPlatform.Dataverse.client import DataverseClient
from PowerPlatform.Dataverse.core.errors import DataverseError
from azure.identity import DefaultAzureCredential
class DataMigrationPipeline:
"""Migrate data from legacy system to Dataverse."""
def __init__(self, org_url: str):
self.client = DataverseClient(
base_url=org_url,
credential=DefaultAzureCredential()
)
self.success_records = []
self.failed_records = []
def extract_from_legacy(self, legacy_db_connection, query: str):
"""Extract data from source system."""
return pd.read_sql(query, legacy_db_connection)
def transform_accounts(self, df: pd.DataFrame) -> list:
"""Transform source data to Dataverse schema."""
payloads = []
for _, row in df.iterrows():
# Map source fields to Dataverse
payload = {
"name": row["company_name"][:100], # Limit to 100 chars
"telephone1": row["phone"],
"websiteurl": row["website"],
"revenue": float(row["annual_revenue"]) if row["annual_revenue"] else None,
"numberofemployees": int(row["employees"]) if row["employees"] else None,
# Track source ID for reconciliation
"new_sourcecompanyid": str(row["legacy_id"]),
"new_importsequencenumber": row["legacy_id"]
}
payloads.append(payload)
return payloads
def load_to_dataverse(self, payloads: list, batch_size: int = 200):
"""Load data to Dataverse with error tracking."""
total = len(payloads)
for i in range(0, total, batch_size):
batch = payloads[i:i + batch_size]
try:
ids = self.client.create("account", batch)
self.success_records.extend(ids)
print(f"✓ Created {len(ids)} records ({len(self.success_records)}/{total})")
# Prevent rate limiting
time.sleep(0.5)
except DataverseError as e:
self.failed_records.extend(batch)
print(f"✗ Batch failed: {e.message}")
def reconcile_migration(self, df: pd.DataFrame):
"""Verify migration and track results."""
# Query created records
created_accounts = self.client.get(
"account",
filter="new_importsequencenumber ne null",
select=["accountid", "new_sourcecompanyid", "new_importsequencenumber"],
top=10000
)
created_df = pd.DataFrame(list(created_accounts))
# Update source table with Dataverse IDs
merged = df.merge(
created_df,
left_on="legacy_id",
right_on="new_importsequencenumber"
)
print(f"Successfully migrated {len(merged)} accounts")
print(f"Failed: {len(self.failed_records)} records")
return {
"total_source": len(df),
"migrated": len(merged),
"failed": len(self.failed_records),
"success_rate": len(merged) / len(df) * 100
}
# Usage
pipeline = DataMigrationPipeline("https://myorg.crm.dynamics.com")
# Extract
source_data = pipeline.extract_from_legacy(
legacy_connection,
"SELECT id, company_name, phone, website, annual_revenue, employees FROM companies"
)
# Transform
payloads = pipeline.transform_accounts(source_data)
# Load
pipeline.load_to_datave🎯 Best For
- Claude users
- GitHub Copilot users
- Software engineers
- Development teams
- Tech leads
💡 Use Cases
- Python code quality enforcement
- Dependency management
📖 How to Use This Skill
- 1
Install the Skill
Copy the install command from the Terminal tab and run it. The SKILL.md file downloads to your local skills directory.
- 2
Load into Your AI Assistant
Open Claude or GitHub Copilot and reference the skill. Paste the SKILL.md content or use the system prompt tab.
- 3
Apply Dataverse-Python-Real-World-Usecases to Your Work
Open your project in the AI assistant and ask it to apply the skill. Start with a small module to verify the output quality.
- 4
Review and Refine
Review AI suggestions before committing. Run tests, check for regressions, and iterate on the skill output.
❓ Frequently Asked Questions
Is Dataverse-Python-Real-World-Usecases compatible with Cursor and VS Code?
Yes — this skill works with any AI coding assistant including Cursor, VS Code with Copilot, and JetBrains IDEs.
Do I need specific dependencies for Dataverse-Python-Real-World-Usecases?
Check the install command and Works With section. Most code skills only require the AI assistant and your codebase.
How do I install Dataverse-Python-Real-World-Usecases?
Copy the install command from the Terminal tab and run it. The skill downloads to ./skills/dataverse-python-real-world-usecases/SKILL.md, ready to use.
Can I customize this skill for my team?
Absolutely. Edit the SKILL.md file to add team-specific instructions, examples, or workflows.
⚠️ Common Mistakes to Avoid
Skipping validation
Always test AI-generated code changes, even for simple refactors.
Missing dependency updates
Check if the skill requires updated dependencies or new packages.