consumer-goods-rtr-datacloud-export-configure
consumer-goods-rtr-datacloud-export-configure について
Salesforce の Retailer Transactional Reporting から Data Cloud へ、プロモーション指標をエクスポートする設定を行うスキルです。権限と同期の確認、Sales Org ごとの設定、エクスポート状況の追跡に対応し、変更やデータストリーム同期には事前確認を求めます。
主な機能
- 01プロモーション指標エクスポートの設定
- 02権限とシステム設定の確認
- 03組織ごとの設定作成または再利用
- 04エクスポートの実行と監視
- 05各フェーズの状態と阻害要因の報告
活用シーン
- 01Sales Org の Data Cloud エクスポート準備
- 02プロモーション指標レポートの設定
- 03複数 Sales Org のエクスポート完了状況の追跡
- 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.mdprocedure.mdscripts/detect-namespace.jsrender-apex.jsresolve-id-by-name.jssf-rest.jssoql-escape.jsupsert-report-config.apexupsert-system-setting.apex詳細
RTR Data Cloud Export の設定
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 の確認結果が引き継がれます。
同じチェックアウトに類似の CSV エクスポート用 RTR スキルがある場合、そのスキルとは異なります。類似のスキルは Usage__c IN ('integrationmeta','reportmeta') を対象とし、CGCloud Processing Services ホストへの CSV エクスポートを行います。このスキルは Data Cloud エクスポートを対象とします。基盤となる RTR_Report_Configuration__c オブジェクトと KPI_Set__c の Apex パターンは同じですが、Usage__c の値と JSON__c の構造は異なります。このスキルは、類似のスキルを呼び出したり、それに依存したりしません。
現時点では、このスキルは Usage__c = 'datacloudpromotionmeasuresmeta'(JSON__c.object = "promotionmeasures")のみをサポートしています。この値はハードコードされており、入力として尋ねられることはありません。datacloudaccountplanmeasuresmeta(アカウント計画のメジャー)は、まだ組み込まれていません。
入力と名前空間の検出
開始前に references/inputs-and-namespace.md を読んでください。以下の内容を説明しています。
- Phase 1 の前に収集する(または呼び出し元のスキルから引き継ぐ)必要がある、ユーザー名/ドライラン/GenieAdmin/TPM-Admin/名前空間の入力。
- Phase 6 で Sales Org ごとに、その既存設定の確認結果が空の場合に限り、必要に応じて一度だけ収集する Sales Org/KPI Set/measure-codes/date-from の入力。
- 名前空間の検出手順(
scripts/detect-namespace.js)と、以下のすべてのフェーズで使用するNS/NS_SEGMENT/NS_APEX/NS_FIELDの 4 つの導出方法。 scripts/render-apex.js(Apex テンプレートのレンダリング)とscripts/resolve-id-by-name.js(名前から ID への検索)は、どちらもscripts/soql-escape.jsを読み込み、代入またはクエリするリテラルをエスケープして、安全に SOQL/Apex に埋め込みます。
フェーズ
各フェーズの詳しい手順、コマンド、クエリ、Apex テンプレートは references/procedure.md に記載されています。フェーズの順番どおりに実行してください。
| Phase | 概要 |
|---|---|
| 1 | GenieAdmin 権限セットを確認/割り当てし、TPM Admin ペルソナの割り当てを確認します。 |
| 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/measure-codes/date-from を収集して新規作成します。変更があった場合は同期し、その後、別の Sales Org を追加するかユーザーに尋ねます。 |
| 7 | Phase 6 のループが完全に終了したら、設定済みの Sales Org ごとに scripts/sf-rest.js でエクスポートを 1 回ずつトリガーします(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 から手動で追加する必要があります(リンクは Phase 5 のreferences/procedure.mdにあります)。 - Usage の種類を尋ねないでください。このスキルは現在、
Usage__c = 'datacloudpromotionmeasuresmeta'/JSON__c.object = "promotionmeasures"にハードコードされています。 - 要求されたエクスポートの種類が Promotion Measures 以外(例:
datacloudaccountplanmeasuresmeta/Account Plan Measures)の場合は、制限を説明してから停止するか、その Sales Org について Promotion Measures のエクスポートを代わりに行うかユーザーに尋ねてください。サポート対象外の方法について、フィールドごとの手動設定手順を提示しないでください。Usage__c/JSON__cの値を提案したり、選択リスト値の追加手順を案内したりしないでください。このスキルが明確に拒否する方法の回避策を提示するのは、支援の範囲を逸脱しています。実行結果は一部成功ではなく、ブロックとして報告してください。 - Phase 6 の存在確認(
Usage__c+Sales_Organization__cをキーとする)を決して省略しないでください。また、その確認で既存のRTR_Report_Configuration__cが見つかった場合、別途明示的なユーザー承認を得ずに上書きしないでください。 - Phase 6 の Sales Org ごとのループがすべて完了する前に、Phase 7 のエクスポートを開始しないでください。Phase 6 から Phase 7 に進む前に、別の Sales Org を追加するか必ずユーザーに確認してください。
- カスタムの
Internal_Name__cを指定する機会を必ずユーザーに与えてください(Phase 6 の手順 4)。ユーザーが指定を辞退した場合に限り、デフォルトで"Data 360 Promotion Measures Export <Sales Org Name>"(ハイフンなし)を使用してください。この値は Phase 7 のエクスポートにおけるmetanameにもなります。その呼び出しで別の値を作らないでください。 - Phase 7 のエクスポートは Sales Org ごとに 1 回実行してください。実行全体に対して 1 回だけ実行するのではありません。
- Sales Org と KPI Set はどちらも、ユーザーから Name で指定され、クエリによって Id に解決されます。このスキルは
Sales_Organization__c、KPI_Set__c、または KPI Set ジャンクション行を作成しません。 - この実行で設定を実際に作成した場合を除き、Phase 6 で Sales Org の設定を同期しないでください。既存の設定をそのまま再利用する場合は何も変更せず、同期呼び出しも行いません。
- ユーザーから明示的に中止を求められない限り、中止エンドポイントを呼び出さないでください。
- Phase 8 のステータスが
Readyになっただけで Phase 9 が完了したと判断しないでください。Phase 10 に進む前に、バッチ全体に対して一度、promotionmeasuresData Stream が同期されたことをユーザーに明示的に確認してください。 - REST パス、Apex スニペット、SOQL クエリで名前空間をハードコードしないでください。呼び出し元から渡された、または自動検出した
NS/NS_SEGMENT/NS_APEX/NS_FIELDを必ず使用してください。 - このスキルは、自身の
scripts/ディレクトリにあるglobalApex クラス、REST エンドポイント、または匿名 Apex テンプレートのみを呼び出します。public/privateメソッドを直接呼び出したり、このスキルのディレクトリ外にあるスクリプトやテンプレートを使用したりしないでください。
レポート
実行の最後に、フェーズごと(1~10)のステータスを pass/blocked/pending のいずれかで示し、該当する場合は具体的なブロック理由と解消のためのクリック手順(例:選択リスト値がない場合の Setup へのパス)を添えて、ユーザーに構造化されたステータスを提示してください。ドライランまたは承認辞退によってスキップされた項目も明記してください。
委任によって呼び出された場合(ユーザーが直接ではなく、呼び出し元のスキルが Skill ツールを使ってこのファイルに到達した場合):このレポートは中間結果であり、タスクの最終結果ではありません。呼び出し元のスキルに返して、次のフェーズを続行させてください。このレポートをユーザーに最終回答として提示して停止しないでください。このスキルが単独で呼び出された場合に限り、このレポートを直接ユーザーに提示してください。