mcpField
C
consumer-goods-rtr-datacloud-export-configure

consumer-goods-rtr-datacloud-export-configure

github.com/forcedotcom数据与数据库1.1k314 次安装1 天前更新
代码仓库

关于 consumer-goods-rtr-datacloud-export-configure

用于配置 Salesforce Retailer Transactional Reporting 向 Data Cloud 导出促销指标的技能。它处理权限和同步检查、逐销售组织配置及导出状态跟踪,并在修改或同步数据流前要求确认。

主要功能

  1. 01配置促销指标导出
  2. 02检查权限和系统设置
  3. 03创建或复用逐组织配置
  4. 04触发并监控导出
  5. 05报告各阶段状态与阻塞项

适用场景

  1. 01为销售组织准备 Data Cloud 导出
  2. 02配置促销指标报告
  3. 03跟踪多个销售组织的导出完成状态
  4. 04发现因缺少值而受阻的设置步骤

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/forcedotcom/sf-skills --skill consumer-goods-rtr-datacloud-export-configure

安装后在 Claude Code 中输入/consumer-goods-rtr-datacloud-export-configure确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
inputs-and-namespace.md
procedure.md
scripts/
detect-namespace.js
render-apex.js
resolve-id-by-name.js
sf-rest.js
soql-escape.js
upsert-report-config.apex
upsert-system-setting.apex

详细介绍

设置 RTR Data Cloud 导出

配置面向 Data Cloud 的 RTR 导出:Data_Cloud_Enabled 系统设置、范围限定的 SF Data Sync、用于 Data Cloud 导出的 RTR_Report_Configuration__c 记录(含其 KPI_Set__c),以及导出触发/状态/中止 REST 调用。此流程独立且自包含:可单独运行,也可作为委派步骤由 consumer-goods-tpe-dashboard-configure 调用;调用方会传入其已收集的用户名、试运行标志和 GenieAdmin 确认结果。

这不同于同一 org 检出内容中可能存在的 CSV 导出 RTR 同级技能:该技能针对 Usage__c IN ('integrationmeta','reportmeta'),将 CSV 导出到 CGCloud Processing Services 主机。本技能针对 Data Cloud 导出。两者使用相同的底层 RTR_Report_Configuration__c 对象和 KPI_Set__c Apex 模式,但 Usage__c 值和 JSON__c 结构不同;本技能不会调用或依赖该同级技能。

目前,本技能仅支持 Usage__c = 'datacloudpromotionmeasuresmeta'(JSON__c.object = "promotionmeasures")——该值是硬编码的,不会作为输入询问。datacloudaccountplanmeasuresmeta(account-plan measures)尚未接入。

输入和命名空间检测

开始前,请阅读 references/inputs-and-namespace.md。其中介绍了:

  • 第 1 阶段前必须收集(或由调用技能传入)的用户名/试运行/GenieAdmin/TPM-Admin/命名空间输入。
  • 第 6 阶段按 Sales Org 收集的 Sales Org/KPI Set/度量代码/起始日期输入;仅当现有配置检查结果为空时,才会收集这些输入。
  • 命名空间检测流程(scripts/detect-namespace.js),以及下方各阶段中使用的四种派生值 NS/NS_SEGMENT/NS_APEX/NS_FIELD。
  • scripts/render-apex.js(Apex 模板渲染)和 scripts/resolve-id-by-name.js(名称到 ID 的查询)都会加载 scripts/soql-escape.js,以转义替换或查询的字面值,确保 SOQL/Apex 插值安全。

阶段

各阶段的完整分步命令、查询和 Apex 模板见 references/procedure.md。请按顺序执行各阶段。

阶段摘要
1验证/分配 GenieAdmin 权限集;确认已分配 TPM Admin persona。
2通过匿名 Apex 更新 Data_Cloud_Enabled 系统设置;确认写入成功。
3记录基线 Batch_Run_Status__c ID 后,针对 System_Setting__c 触发范围限定的 SF Data Sync。
4轮询/验证同步是否完成(Done/Error/Fatal/Running)。
5验证 Usage__c 上是否存在 datacloudpromotionmeasuresmeta 选项值——若不存在,则停止并让用户前往 Setup(没有可通过编程方式进行的修复)。
6逐个处理 Sales Org:解析 Sales Org 名称 → ID,复用现有 RTR_Report_Configuration__c,或收集 KPI Set/度量代码/起始日期并创建一条记录;如有更改则进行同步,然后询问是否添加其他 Sales Org。
7第 6 阶段的循环全部完成后,通过 scripts/sf-rest.js 为每个已配置的 Sales Org 触发一次导出(绝不使用 sf api request rest);将 requestId 记录为导出 guid。
8通过 scripts/sf-rest.js 轮询每个 Sales Org 的导出状态(Ready/Error/Aborted/Queued/InProgress)。
9所有 Sales Org 均完成轮询后,请用户自行同步 promotionmeasures Data Cloud Data Stream,并明确确认同步已完成——本技能绝不会触发该同步。
10仅当用户明确要求时,通过 scripts/sf-rest.js 中止正在进行的导出。
11按阶段报告通过/受阻/待处理状态。

规则

  • 未经用户明确同意,绝不分配权限集、写入记录或触发同步/导出。
  • 绝不猜测或硬编码 Batch_Name__c——根据捕获的基线 Id,按时间新近程度识别同步的 Batch_Run_Status__c 行,并记录完整的行集。
  • 绝不尝试以编程方式添加缺失的 Usage__c 选项列表值——用户必须通过 Setup 手动添加(链接见第 5 阶段的 references/procedure.md)。
  • 绝不询问 Usage 类型——此技能目前将 Usage__c = 'datacloudpromotionmeasuresmeta' / JSON__c.object = "promotionmeasures" 硬编码。
  • 如果请求的导出类型不是推广措施(例如 datacloudaccountplanmeasuresmeta/客户计划措施),说明此限制,然后停止,或询问用户是否要为该 Sales Org 改为导出推广措施。对于不支持的路径,不要提供逐字段手动配置说明——不得建议 Usage__c/JSON__c 值,也不得指导用户如何添加选项列表值。为此技能拒绝支持的具体路径提供变通方案,属于越界,而非帮助。将本次运行报告为受阻,而不是部分通过。
  • 绝不跳过第 6 阶段的存在性检查(以 Usage__c + Sales_Organization__c 为键)——也绝不在未另行获得用户明确同意的情况下,覆盖此检查发现的现有 RTR_Report_Configuration__c。
  • 在第 6 阶段针对各 Sales Org 的循环全部完成前,绝不触发第 7 阶段的导出——从第 6 阶段进入第 7 阶段前,始终询问用户是否要添加另一个 Sales Org。
  • 始终给用户机会提供自定义的 Internal_Name__c(第 6 阶段步骤 4)——仅当用户拒绝时,才默认使用 "Data 360 Promotion Measures Export <Sales Org Name>"(不带连字符)。此值也会作为第 7 阶段导出中的 metaname 使用——该调用中绝不另行编造其他值。
  • 第 7 阶段的导出按每个 Sales Org 执行一次,绝不针对整个运行只执行一次。
  • 用户提供的 Sales Org 和 KPI Set 都是名称,通过查询解析为 Id——此技能绝不创建 Sales_Organization__c、KPI_Set__c 或 KPI Set 关联行。
  • 除非本次运行实际创建了某个 Sales Org 的配置,否则绝不在第 6 阶段同步该配置——原样复用现有配置属于不执行任何操作,不调用同步。
  • 除非用户明确要求中止,否则绝不调用中止端点。
  • 绝不只凭第 8 阶段的 Ready 状态就声称第 9 阶段已完成——进入第 10 阶段前,始终获取用户的明确确认,确认整个批次的 promotionmeasures Data Stream 已同步。
  • 绝不在 REST 路径、Apex 代码段或 SOQL 查询中硬编码命名空间——始终使用调用方传入或自行检测到的 NS/NS_SEGMENT/NS_APEX/NS_FIELD。
  • 此技能只调用 global Apex 类、REST 端点或其自身 scripts/ 目录中的匿名 Apex 模板——绝不直接调用 public/private 方法,也绝不使用此技能目录之外的脚本或模板。

报告

每次运行结束时,按阶段(1-10)向用户提供结构化状态:通过/受阻/待处理,并说明具体受阻原因及适用时的补救操作路径(例如,缺失选项列表值时在 Setup 中的路径)。指出因试运行或用户拒绝确认而跳过的任何事项。

通过委派调用时(调用方技能使用 Skill 工具访问此文件,而非用户直接调用):此报告是中间结果,不是任务的最终结果。将报告返回给调用方技能,并让其继续执行自己的下一阶段——不要将此报告作为最终答复呈现给用户后停止。仅当用户单独调用此技能时,才直接向用户提供此报告。

评论

支持 Markdown