关于 handling-sf-data
面向 Salesforce 数据操作的技能,涵盖 CRUD、批量传输、测试数据生成和清理。它引导用户区分本地脚本生成与远程执行,并提供验证和清理流程。
主要功能
- 01CRUD 与批量数据工作流
- 02测试数据工厂与模板
- 03基于 describe 的执行前验证
- 04清理与回滚指导
- 05SOQL 验证脚本
适用场景
- 01创建或更新 Salesforce 记录
- 02导入或导出大型数据集
- 03生成自动化测试数据
- 04规划测试记录的清理
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ forcedotcom/ sf-skills --skill handling-sf-data安装后在 Claude Code 中输入/handling-sf-data确认已加载。
包含的文件
除 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 数据操作专家(handling-sf-data)
当用户需要处理 Salesforce 数据 时使用此技能:记录 CRUD、批量导入/导出、测试数据生成、清理脚本,或用于验证 Apex、Flow 或集成行为的数据工厂模式。
此技能适用的任务
在工作涉及以下内容时使用 handling-sf-data:
sf dataCLI 命令- 记录创建、更新、删除、Upsert、导出或树形导入/导出
- 生成逼真的测试数据
- 批量数据操作和清理
- 用于数据填充 / 回滚的 Apex 匿名脚本
在以下情况下委派给其他技能:
- 仅编写 SOQL → querying-soql
- 运行或修复 Apex 测试 → running-apex-tests
- 先部署元数据 → deploying-metadata
- 创建或修改自定义对象 / 字段 → generating-custom-object 或 generating-custom-field
重要的模式选择
确认用户需要哪种模式:
| 模式 | 适用情况 |
|---|---|
| 脚本生成 | 用户需要可复用的 .apex、CSV 或 JSON 资产,暂时不操作组织 |
| 远程执行 | 用户希望现在就在真实组织中创建 / 更改记录 |
如果用户可能只需要脚本,不要假设需要远程执行。
首先需要收集的上下文
询问或推断:
- 目标对象
- 需要远程执行时的组织别名
- 操作类型:查询、创建、更新、删除、Upsert、导入、导出、清理
- 预期数据量
- 数据属于测试数据、迁移数据还是一次性故障排查数据
- 必须预先存在的任何父子关系
核心操作规则
- 除非用户明确要求仅生成本地脚本,否则
handling-sf-data操作的是远程组织数据。 - 创建数据前,对象和字段必须已存在。
- 对于自动化测试,在批量行为很重要时,优先使用 251 条以上记录。
- 创建大量或杂乱数据集前,先规划清理方式——未跟踪的记录会在每次运行后累积,污染组织状态。
- 测试记录应使用合成的非识别性数据——真实 PII 会带来合规风险,批量导入后也无法安全移除。
- 对于简单的 CRUD,优先采用 CLI 优先的方式;只有操作确实需要服务端编排时才使用匿名 Apex。
如果缺少元数据,请停止并转交给:
- generating-custom-object 或 generating-custom-field 创建缺失的架构,然后使用 deploying-metadata 部署,再重试数据操作
推荐工作流
1. 验证前置条件
确认对象 / 字段是否可用、组织是否已通过身份验证,以及所需父记录是否存在。
2. 架构不确定时,先运行 describe 进行预检
创建或更新记录前,使用对象 describe 数据验证:
- 必填字段
- 可创建与不可创建字段
- 选项列表值
- 关系字段和父记录要求
有关 sf sobject describe 命令以及用于检查字段、选项列表值和可创建约束的 jq 筛选模式,请参阅 references/sf-cli-data-commands.md。
3. 选择最简单且正确的机制
| 需求 | 默认方式 |
|---|---|
| 少量一次性 CRUD | sf data 单记录命令 |
| 大批量导入/导出 | 通过 sf data ... bulk 使用 Bulk API 2.0 |
| 父子记录数据填充集 | 树形导入/导出 |
| 可复用测试数据集 | 工厂 / Apex 匿名脚本 |
| 可撤销的实验 | 清理脚本或基于 savepoint 的方式 |
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 确认的值 | 先检查选项列表值 |
| 字段不可写错误 | 字段不可创建 / 更新 | 从负载中移除该字段 |
| 批量限制 / 超时 | 使用了不适合该数据量的工具 | 改用批量 / 分阶段导入 |
输出格式
完成时,按以下顺序报告:
- 执行的操作
- 对象和数量
- 目标 org 或本地资源路径
- 记录 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>
跨技能集成
| 需求 | 委托给 | 原因 |
|---|---|---|
| 创建缺失的自定义对象 | generating-custom-object | 数据操作前必须先建立架构 |
| 创建缺失的自定义字段 | generating-custom-field | 创建数据前必须先建立字段级架构 |
| 运行对批量操作敏感的 Apex 验证 | running-apex-tests | 测试执行和覆盖率 |
| 先部署缺失的架构 | deploying-metadata | 确保元数据就绪 |
| 实现使用该数据的生产环境 Apex 逻辑 | generating-apex | 编写 Apex 类 / 触发器 |
| 实现使用该数据的 Flow 逻辑 | generating-flow | 编写 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