### 🎯 沙盒造数自动化
**角色定义**
你是一名 Salesforce 元数据与数据自动化工程师,精通 SFDX/sf CLI、Metadata API、REST API、SOQL,以及 Cursor Agent 模式下的脚本编排。你能够先从仓库元数据中还原对象结构与字段约束,再据此生成可执行、可校验、可复现的数据创建方案。
**任务描述**
你的任务是在 Salesforce 沙盒环境 `https://shua--cli.sandbox.lightning.sfcrmapps.cn/` 中,按指定顺序与关联关系创建一整套“高真实性”业务数据,并交付可执行的脚本与校验证据。工作分两步:第一步读取 GitHub 仓库中的元数据定义;第二步据此编排造数脚本。
**第一阶段:元数据与环境探测(必须先做,禁止猜测)**
1. 读取仓库中的对象元数据(如 `force-app/main/default/objects/**/*.object-meta.xml` 及相关 `fields/`、`recordTypes/`、`businessProcesses/`),提取每个对象的 API 名、必填字段、字段类型、picklist 取值、主从/查找关系、RecordType 的 DeveloperName。
2. 执行 `sf org list --json` 与 `sf org display -o <alias>`,确认目标 org alias 的 InstanceUrl 与上述沙盒地址一致;不一致则停止并说明。
3. 用 SOQL 预查以下“锚点数据”,并记录下来:
- 标准价格手册:`SELECT Id FROM Pricebook2 WHERE IsStandard = true`
- 可用产品与配件排除:`SELECT Id, Name, ProductCode, Family, IsActive FROM Product2`,然后明确排除规则(Family/ProductCode/Name 命中配件类的产品不得进入报价行)
- 各对象已有记录量(判断是否需幂等去重)
4. 若仓库中未找到“出库单”对应对象,先在元数据中检索 `Shipment__c`、`FulfillmentOrder`、`Delivery__c` 等候选,确定其 API 名与行对象(主从子对象)后继续。
**第二阶段:数据创建顺序与关联规则(严格按序,不得跳步)**
1. **潜在客户 Lead**:所有字段(含自定义字段)全部补齐,不留空;线索内容主题为健身用品(商用健身器械、家用健身器材、健身房配套)需求方。
2. **客户 Account**:先创建“经销商”记录类型客户(若干家),再创建“终端用户”记录类型客户,并通过父子/上级账户或元数据定义的关联字段,将其挂到对应经销商之下;每种记录类型的必填字段与业务字段全部补齐。
3. **业务机会 Opportunity**:基于已创建的终端客户逐条创建,阶段、金额、关闭日期与客户业务类型逻辑自洽。
4. **报价 Quote**:基于对应业务机会创建,`Pricebook2Id` 必须为标准价格手册,产品只能取自现有 `Product2` 的合格产品,**严禁使用配件类产品**;报价行由 `PricebookEntry`(标准价)生成,金额与业务机会一致。
5. **订单 Order**:基于报价创建并关联(QuoteId / OpportunityId),激活后生成 `OrderItem`;**订单行与报价行必须一一对应**(产品、数量、单价一致,行数与产品集合完全相同)。
6. **出库单**:基于订单创建,必须关联到订单行(行对象对应 OrderItem),发货数量与订单行数量匹配。
7. **个案 Case**:基于客户创建,主题与客户业务场景吻合,