关于 platform-data-manage
面向 Salesforce 数据操作的技能,适用于需要生成脚本或在组织中执行记录操作的开发者。涵盖 CRUD、批量导入导出、测试数据生成与清理,并强调执行前验证和清理规划。
主要功能
- 01执行记录 CRUD 与 upsert
- 02批量导入、导出及树形数据处理
- 03生成测试数据与数据工厂脚本
- 04验证字段、必填项和选项列表
- 05提供清理与回滚方案
适用场景
- 01为 Apex、Flow 或集成测试准备数据
- 02将大量记录导入或导出 Salesforce
- 03生成可复用的本地数据脚本
- 04清理测试数据或回滚实验操作
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ forcedotcom/ sf-skills --skill platform-data-manage安装后在 Claude Code 中输入/platform-data-manage确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/bulk/bulk-insert-10000.apexbulk-insert-200.apexbulk-insert-500.apexbulk-upsert-external-id.apexassets/cleanup/delete-by-created-date.apexdelete-by-name.apexdelete-test-data.apexrollback-transaction.apexassets/csv/account-import.csvcontact-import.csvcustom-object-import.csvopportunity-import.csvassets/factories/account-factory.apexcase-factory.apexcontact-factory.apexcustom-object-factory.apexevent-factory.apexhierarchy-factory.apexlead-factory.apexopportunity-factory.apextask-factory.apexuser-factory.apexassets/json/account-contact-tree.jsonaccount-opportunity-tree.jsonfull-hierarchy-tree.jsonassets/soql/aggregate.soqlchild-to-parent.soqlparent-to-child.soqlpolymorphic.soqlsubquery.soql详细介绍
Salesforce 数据操作专家(platform-data-manage)
当用户需要Salesforce 数据操作时使用此技能:记录 CRUD、批量导入/导出、测试数据生成、清理脚本,或用于验证 Apex、Flow 或集成行为的数据工厂模式。
此技能负责的任务
当工作涉及以下内容时,使用 platform-data-manage:
sf dataCLI 命令- 记录的创建、更新、删除、upsert、导出或树形导入/导出
- 逼真的测试数据生成
- 批量数据操作和清理
- 用于数据填充 / 回滚的 Apex 匿名脚本
遇到以下情况时,转交给其他技能:
- 仅编写 SOQL → platform-soql-query
- 运行或修复 Apex 测试 → platform-apex-test-run
- 先部署元数据 → platform-metadata-deploy
- 创建或修改自定义对象 / 字段 → platform-custom-object-generate 或 platform-custom-field-generate
重要的模式选择
确认用户需要哪种模式:
| 模式 | 适用情况 |
|---|---|
| 脚本生成 | 用户希望生成可复用的 .apex、CSV 或 JSON 资源,但暂时不操作 org |
| 远程执行 | 用户希望立即在真实 org 中创建 / 修改记录 |
如果用户可能只需要脚本,不要擅自假设需要远程执行。
首先需要收集的上下文
询问或推断以下信息:
- 目标对象
- 如果需要远程执行,则获取 org 别名
- 操作类型:查询、创建、更新、删除、upsert、导入、导出、清理
- 预期数据量
- 这些数据属于测试数据、迁移数据,还是一次性故障排查数据
- 必须预先存在的任何父子关系
核心操作规则
- 除非用户明确要求生成本地脚本,否则
platform-data-manage操作的是远程 org 数据。 - 创建数据前,对象和字段必须已存在。
- 对于自动化测试,只要涉及批处理行为,就优先使用 251 条以上记录。
- 创建大型或杂乱的数据集前,先规划清理方式——未跟踪的记录会在多次运行中不断累积,污染 org 状态。
- 测试记录使用合成且不可识别个人身份的数据——真实 PII 会造成合规风险,批量导入后也无法安全移除。
- 简单的 CRUD 操作优先使用 CLI;只有操作确实需要服务器端编排时,才使用匿名 Apex。
如果缺少元数据,请停止操作并转交给:
- platform-custom-object-generate 或 platform-custom-field-generate 以创建缺失的架构,然后使用 platform-metadata-deploy 部署,再重试数据操作
推荐工作流
1. 验证前提条件
确认对象 / 字段可用、org 已通过身份验证,并且所需的父记录已存在。
2. 架构不确定时,先运行 describe 预检验证
创建或更新记录前,使用对象 describe 数据验证:
- 必填字段
- 可创建与不可创建字段
- 选项列表值
- 关系字段和父记录要求
请参阅 references/sf-cli-data-commands.md,了解 sf sobject describe 命令,以及用于检查字段、选项列表值和可创建约束的 jq 过滤模式。
3. 选择最简单且正确的方法
| 需求 | 默认方法 |
|---|---|
| 少量的一次性 CRUD 操作 | sf data 单记录命令 |
| 大规模导入/导出 | 通过 sf data ... bulk 使用 Bulk API 2.0 |
| 父子记录数据填充集 | 树形导入/导出 |
| 可复用的测试数据集 | 工厂 / Apex 匿名脚本 |
| 可撤销的实验 | 清理脚本或基于保存点的方法 |
4. 执行操作或生成资源
适用时,使用 assets/ 下的内置模板:
assets/factories/assets/bulk/assets/cleanup/assets/soql/assets/csv/assets/json/
5. 验证结果
创建或更新后,检查数量、关系和记录 ID。
6. 采用有界重试策略
如果创建失败:
- 按主要 CLI 格式尝试一次
- 修正参数后重试一次
- 重新运行 describe / 验证假设
- 改用其他机制或提供手动替代方案
不要无限重复执行相同的失败命令。
7. 提供清理指引
创建了数据时,提供准确的清理命令或回滚资源。
高优先级规则
批量操作安全
- 大批量操作时使用批量操作
- 在适当情况下,使用 251 条以上记录测试对自动化敏感的行为
- 批量场景中避免逐条处理记录
数据完整性
- 包含必填字段
- 创建前验证选项列表值
- 验证父级 ID 和关系完整性
- 考虑验证规则和重复项限制
- 从输入载荷中排除不可创建的字段
清理规范
优先采用以下任一方式:
- 按 ID 删除
- 按模式删除
- 按创建日期范围删除
- 在基于脚本的测试运行中使用回滚 / 保存点模式
常见失败模式
| 错误 | 可能原因 | 默认修复方向 |
|---|---|---|
INVALID_FIELD | 字段 API 名称错误或 FLS 问题 | 验证架构和访问权限 |
REQUIRED_FIELD_MISSING | 缺少必填字段 | 根据 describe 数据提供必填值 |
INVALID_CROSS_REFERENCE_KEY | 父级 ID 无效 | 先创建 / 验证父级记录 |
FIELD_CUSTOM_VALIDATION_EXCEPTION | 验证规则阻止了记录 | 使用有效测试数据或调整设置 |
| 无效的选项列表值 | 使用了猜测值,而非经 describe 确认的值 | 先检查选项列表值 |
| 字段不可写错误 | 字段不可创建 / 更新 | 从载荷中移除该字段 |
| 批量限制 / 超时 | 所用工具不适合当前数据量 | 切换到批量操作 / 分阶段导入 |
输出格式
完成后,按以下顺序报告:
- 执行的操作
- 对象和数量
- 目标组织或本地资源路径
- 记录 ID / 输出文件
- 验证结果
- 清理说明
建议格式:
Data operation: <create / update / delete / export / seed>
Objects: <object + counts>
Target: <org alias or local path>
Artifacts: <record ids / csv / apex / json files>
Verification: <passed / partial / failed>
Cleanup: <exact delete or rollback guidance>
跨技能集成
| 需求 | 委派给 | 原因 |
|---|---|---|
| 创建缺失的自定义对象 | platform-custom-object-generate | 数据操作前必须先存在架构 |
| 创建缺失的自定义字段 | platform-custom-field-generate | 创建数据前必须先存在字段级架构 |
| 运行对批量操作敏感的 Apex 验证 | platform-apex-test-run | 测试执行和覆盖率 |
| 先部署缺失的架构 | platform-metadata-deploy | 确保元数据就绪 |
| 实现使用这些数据的生产 Apex 逻辑 | platform-apex-generate | 编写 Apex 类 / 触发器 |
| 实现使用这些数据的 Flow 逻辑 | automation-flow-generate | 编写 Flow 和自动化 |
参考索引
从这里开始
- references/sf-cli-data-commands.md
- references/test-data-best-practices.md
- references/orchestration.md
- references/test-data-patterns.md
- references/test-data-factory-usage.md
查询 / 批量操作 / 清理
- references/soql-relationship-guide.md
- references/relationship-query-examples.md
- references/bulk-operations-guide.md
- references/cleanup-rollback-guide.md
- references/cleanup-rollback-example.md
示例 / 限制
- references/crud-workflow-example.md
- references/bulk-testing-example.md
- references/anonymous-apex-guide.md
- references/governor-limits-reference.md
验证脚本
- scripts/soql_validator.py — 执行前验证 SOQL 查询
- scripts/validate_data_operation.py — 数据操作的预检(必填字段、选项列表值、可创建字段)
资源模板
assets/factories/— Apex 测试数据工厂脚本(account、contact、opportunity、lead、user 等)assets/bulk/— Bulk API 2.0 Apex 模板(插入 200、500、10000 条记录;按外部 ID 执行 upsert)assets/cleanup/— 清理和回滚脚本(按名称、日期、模式删除;事务回滚)assets/soql/— SOQL 查询模板(聚合、子查询、父到子、子到父、多态)assets/csv/— Account、Contact、Opportunity、自定义对象的 CSV 导入模板assets/json/— JSON 树导入模板(account-contact、account-opportunity、完整层级)
评分指南
| 分数 | 含义 |
|---|---|
| 117+ | 适用于生产环境的稳健数据工作流 |
| 104–116 | 操作良好,仍有小幅改进空间 |
| 91–103 | 可以接受,但建议审核 |
| 78–90 | 存在不完整或有风险的模式 |
| < 78 | 修正前禁止操作 |
评论
支持 Markdown