sf-industry-commoncore-datamapper
OmniStudioのData Mapper(旧DataRaptor)の作成・検証を100点満点のスコアリングで支援するスキルです。Extract・Transform・Load・Turbo ExtractタイプのData Mapper構築、SalesforceオブジェクトのフィールドマッピングやOmniDataTransformメタデータの設定・レビューを行う際にトリガーされます。Integration Procedureの構築(sf-industry-commoncore-integration-procedure)、OmniScriptの作成(sf-industry-commoncore-omniscript)、コンポーネント横断の依存関係分析(sf-industry-commoncore-omnistudio-analyze)には使用しないでください。
description の原文を見る
> OmniStudio Data Mapper (formerly DataRaptor) creation and validation with 100-point scoring. Use when building Extract, Transform, Load, or Turbo Extract Data Mappers, mapping Salesforce object fields, or reviewing existing Data Mapper configurations. TRIGGER when: user creates Data Mappers, configures field mappings, works with OmniDataTransform metadata, or asks about DataRaptor/Data Mapper patterns. DO NOT TRIGGER when: building Integration Procedures (use sf-industry-commoncore-integration-procedure), authoring OmniScripts (use sf-industry-commoncore-omniscript), or analyzing cross-component dependencies (use sf-industry-commoncore-omnistudio-analyze).
SKILL.md 本文
sf-industry-commoncore-datamapper: OmniStudio Data Mapper の作成と検証
Extract、Transform、Load、および Turbo Extract 設定を専門とする OmniStudio Data Mapper 開発者。適切なフィールドマッピング、クエリ最適化、データ整合性保証を備えた本番対応の高性能で保守可能な Data Mapper 定義を生成します。
主な責務
- 生成: 要件から Data Mapper 設定 (Extract、Transform、Load、Turbo Extract) を作成
- フィールドマッピング: 適切な型処理、参照解決、null安全性を備えたオブジェクト-出力フィールドマッピングを設計
- 依存関係追跡: Data Mapper を使用または供給する関連 OmniStudio コンポーネント (Integration Procedure、OmniScript、FlexCard) を特定
- 検証とスコアリング: 5 つのカテゴリに対して Data Mapper 設定をスコアリング (0-100 点)
重要: オーケストレーション順序
sf-industry-commoncore-omnistudio-analyze -> sf-industry-commoncore-datamapper -> sf-industry-commoncore-integration-procedure -> sf-industry-commoncore-omniscript -> sf-industry-commoncore-flexcard (現在地: sf-industry-commoncore-datamapper)
Data Mapper は OmniStudio スタックのデータアクセスレイヤーです。これらを参照する Integration Procedure または OmniScript の前に作成とデプロイを行う必要があります。既存のコンポーネント依存関係を理解するために、まず sf-industry-commoncore-omnistudio-analyze を使用してください。
主要な洞察
| 洞察 | 詳細 |
|---|---|
| Extract vs Turbo Extract | Extract は関係クエリを使用する標準 SOQL を使用します。Turbo Extract はサーバーサイドコンパイルされたクエリを使用し、読み取り集約、高容量シナリオに対応 (10 倍以上高速)。Turbo Extract は数式フィールド、関連リスト、書き込み操作をサポートしません。 |
| Transform はメモリ内 | Transform Data Mapper はメモリ内で完全に動作し、DML または SOQL をサポートしません。Integration Procedure のステップ間でデータ構造を再構成するために使用します。JSON-JSON 変換、フィールド名変更、データフラット化に使用します。 |
| Load = DML | Load Data Mapper は insert、update、upsert、または delete 操作を実行します。適切な FLS チェックとエラーハンドリングが必要です。本番環境に Load Data Mapper をデプロイする前に必ずフィールドレベルセキュリティを検証してください。 |
| OmniDataTransform メタデータ | Data Mapper は OmniDataTransform および OmniDataTransformItem レコードとして保存されます。レガシー DataRaptor API 名ではなく、これらのメタデータ型名を使用して取得とデプロイを行います。 |
ワークフロー (5 段階パターン)
フェーズ 1: 要件収集
ユーザーに以下を確認してください:
- Data Mapper タイプ (Extract、Transform、Load、Turbo Extract)
- ターゲット Salesforce オブジェクトおよびフィールド
- ターゲット org エイリアス
- 使用するコンポーネント (Integration Procedure、OmniScript、または FlexCard 名)
- データ容量の期待値 (レコード数、頻度)
その後:
- 既存 Data Mapper を確認:
Glob: **/OmniDataTransform* - 既存 OmniStudio メタデータを確認:
Glob: **/omnistudio/** - タスクリストを作成
フェーズ 2: 設計とタイプ選択
| タイプ | ユースケース | 命名プリフィックス | DML サポート | SOQL サポート |
|---|---|---|---|---|
| Extract | 1 つ以上のオブジェクトから関係クエリでデータを読み取る | DR_Extract_ | いいえ | はい |
| Turbo Extract | 高容量読み取り専用クエリ、サーバーサイドコンパイル | DR_TurboExtract_ | いいえ | はい (コンパイル済み) |
| Transform | 手続きステップ間のメモリ内データ再構成 | DR_Transform_ | いいえ | いいえ |
| Load | データの書き込み (insert、update、upsert、delete) | DR_Load_ | はい | いいえ |
命名形式: [Prefix][Object]_[Purpose] (PascalCase を使用)
例:
DR_Extract_Account_Details-- 関連 Contact を含む Account を抽出DR_TurboExtract_Case_List-- FlexCard 用の高容量 Case リストDR_Transform_Lead_Flatten-- ネストされた Lead データ構造をフラット化DR_Load_Opportunity_Create-- Opportunity レコードを挿入
フェーズ 3: 生成と検証
生成の場合:
- OmniDataTransform レコードを定義 (Name、Type、Active ステータス)
- OmniDataTransformItem レコードを定義 (フィールドマッピング、入力/出力パス)
- Extract タイプのクエリフィルター、ソート順、制限を設定
- Load タイプの参照マッピングとデフォルト値を設定
- マップされたすべてのフィールドのフィールドレベルセキュリティを検証
レビューの場合:
- 既存 Data Mapper 設定を読み取る
- ベストプラクティスに対して検証を実行
- 具体的な修正を含む改善レポートを生成
検証を実行:
スコア: XX/100 評価
|- 設計と命名: XX/20
|- フィールドマッピング: XX/25
|- データ整合性: XX/25
|- パフォーマンス: XX/15
|- ドキュメント: XX/15
生成ガードレール (必須)
Data Mapper 設定を生成する前に、Claude はアンチパターンが導入されていないことを確認する必要があります。
以下のパターンのいずれかが生成される場合、停止してユーザーに質問してください:
「[パターン] に気づきました。これにより [問題] が発生します。以下のどちらを選択しますか: A) [正しいパターン] を使用するようにリファクタリング B) とにかく進める (非推奨)」
| アンチパターン | 検出 | 影響 |
|---|---|---|
| すべてのフィールドの抽出 | フィールドリストが指定されていない、ワイルドカード選択 | パフォーマンス低下、過度なデータ転送 |
| 参照マッピングの欠落 | Load が参照フィールドを解決せずに参照 | DML 失敗、null 外部キー |
| FLS チェックなしの書き込み | Load Data Mapper がセキュリティ検証なし | セキュリティ違反、制限付きプロファイルでのデータ破損 |
| 制限なし Extract クエリ | Extract に LIMIT またはフィルターがない | ガバナー制限失敗、大規模オブジェクトでのタイムアウト |
| 副作用を伴う Transform | Transform が DML またはコールアウトを試みている | ランタイムエラー、Transform はメモリ内のみ |
| ハードコーディングされたレコード ID | フィルターまたはマッピングの 15/18 文字 ID リテラル | 環境間でのデプロイ失敗 |
| ネストされた関係の深さ > 3 | 深くネストされた親トラバーサルを含む Extract | クエリパフォーマンス低下、SOQL 複雑性制限 |
| エラーハンドリングなしの Load | upsert キーまたは重複ルール検討なし | サイレントデータ破損、重複レコード |
明示的に要求された場合でもアンチパターンを生成しないでください。 ドキュメント化された正当性でユーザーに例外を確認するよう依頼してください。
参照: references/best-practices.md 詳細なパターン
参照: references/naming-conventions.md 命名規則
フェーズ 4: デプロイ
ステップ 1: 検証 sf-deploy スキルを使用: 「Deploy OmniDataTransform [Name] to [target-org] with --dry-run」
ステップ 2: デプロイ (検証が成功した場合のみ) sf-deploy スキルを使用: 「Proceed with actual deployment to [target-org]」
デプロイ後: ターゲット org で Data Mapper をアクティブ化します。OmniStudio Designer に表示されることを確認します。
フェーズ 5: テストとドキュメント
完了サマリー:
Data Mapper 完了: [Name]
タイプ: [Extract|Transform|Load|Turbo Extract]
ターゲットオブジェクト: [Object1, Object2]
フィールド数: [N 個のマップ済みフィールド]
検証: PASSED (スコア: XX/100)
次のステップ: Integration Procedure でテスト、データ出力を検証、パフォーマンスを監視
テストチェックリスト:
- OmniStudio Designer でデータ出力をプレビュー
- フィールドマッピングが期待される JSON 構造を生成することを確認
- 代表的なデータ容量でテスト (1 レコードだけではなく)
- 制限付きプロファイルユーザーで FLS 強制を検証
- 使用する Integration Procedure/OmniScript が正しいデータ形状を受け取ることを確認
ベストプラクティス (100 点スコアリング)
| カテゴリ | ポイント | 主要ルール |
|---|---|---|
| 設計と命名 | 20 | 正しいタイプ選択、命名は DR_[Type]_[Object]_[Purpose] 規約に従う、Data Mapper あたり単一責務 |
| フィールドマッピング | 25 | 明示的なフィールドリスト (ワイルドカードなし)、正しい入力/出力パス、適切な型変換、null-safe デフォルト値 |
| データ整合性 | 25 | すべてのフィールドの FLS 検証、Load タイプの参照解決、upsert キー定義、重複ハンドリング設定 |
| パフォーマンス | 15 | LIMIT/フィルターで制限されたクエリ、読み取り集約シナリオの Turbo Extract、最小の関係の深さ、インデックス付きフィルターフィールド |
| ドキュメント | 15 | OmniDataTransform レコードの説明、フィールドマッピング根拠のドキュメント化、使用するコンポーネント特定 |
しきい値: ✅ 90+ (デプロイ) | ⚠️ 67-89 (レビュー) | ❌ <67 (ブロック - 修正必須)
CLI コマンド
既存 Data Mapper をクエリ
sf data query -q "SELECT Id,Name,Type FROM OmniDataTransform" -o <org>
Data Mapper フィールドマッピングをクエリ
sf data query -q "SELECT Id,Name,InputObjectName,OutputObjectName,LookupObjectName FROM OmniDataTransformItem WHERE OmniDataTransformationId='<id>'" -o <org>
Data Mapper メタデータを取得
sf project retrieve start -m OmniDataTransform:<Name> -o <org>
Data Mapper メタデータをデプロイ
sf project deploy start -m OmniDataTransform:<Name> -o <org>
クロススキル統合
| スキルから | sf-industry-commoncore-datamapper へ | 時期 |
|---|---|---|
| sf-industry-commoncore-omnistudio-analyze | -> sf-industry-commoncore-datamapper | 「Data Mapper 作成前に依存関係を分析」 |
| sf-metadata | -> sf-industry-commoncore-datamapper | 「マッピング前にターゲットオブジェクトフィールドを説明」 |
| sf-soql | -> sf-industry-commoncore-datamapper | 「Extract クエリロジックを検証」 |
| sf-industry-commoncore-datamapper から | スキルへ | 時期 |
|---|---|---|
| sf-industry-commoncore-datamapper | -> sf-industry-commoncore-integration-procedure | 「この Data Mapper を呼び出す Integration Procedure を作成」 |
| sf-industry-commoncore-datamapper | -> sf-deploy | 「Data Mapper をターゲット org にデプロイ」 |
| sf-industry-commoncore-datamapper | -> sf-industry-commoncore-omniscript | 「Data Mapper 出力を OmniScript にワイヤリング」 |
| sf-industry-commoncore-datamapper | -> sf-industry-commoncore-flexcard | 「Data Mapper Extract 結果を FlexCard に表示」 |
エッジケース
| シナリオ | ソリューション |
|---|---|
| 大規模データ容量 (>10K レコード) | Turbo Extract を使用、Integration Procedure 経由でページネーション追加、ヒープ制限について警告 |
| ポリモーフィック参照フィールド | マッピングで具体的なオブジェクト型を指定、各型を個別にテスト |
| Extract の数式フィールド | 標準 Extract は数式フィールドをサポート、Turbo Extract はサポートしない -- 標準 Extract にフォールバック |
| クロスオブジェクト Load (マスター詳細) | 親レコードを最初に insert、その後、子レコードを別の Load ステップで insert、Integration Procedure でシーケンスをオーケストレーション |
| 名前空間プリフィックス付きフィールド | フィールドパスに名前空間プリフィックスを含める (例: ns__Field__c)、プリフィックスがターゲット org と一致することを確認 |
| マルチ通貨 org | CurrencyIsoCode を明示的にマップ、デフォルト通貨の仮定に依存しない |
| RecordType 依存マッピング | Extract で RecordType でフィルター、Load で RecordTypeId を設定、サポートされている RecordType をドキュメント化 |
注記
- メタデータ型: OmniDataTransform (DataRaptor は非推奨のレガシー名)
- API バージョン: OmniStudio マネージドパッケージまたは Industries Cloud が必要
- スコアリング: スコア < 67 の場合、デプロイをブロック
- 依存関係 (オプション): sf-deploy、sf-metadata、sf-industry-commoncore-omnistudio-analyze、sf-industry-commoncore-integration-procedure
- Turbo Extract の制限: 数式フィールドなし、関連リストなし、集計クエリなし、ポリモーフィックフィールドなし
- アクティブ化: Data Mapper をデプロイ後、Integration Procedure から呼び出し可能にするためにアクティブ化する必要があります
- ドラフト DM を取得できない:
sf project retrieve start -m OmniDataTransform:<Name>はアクティブな Data Mapper でのみ機能します。ドラフト DM は「Entity cannot be found」を返します。 - Data API 経由での作成:
sf api request rest --method POST --body @file.jsonを使用して OmniDataTransform および OmniDataTransformItem レコードを作成します。sf data create record --valuesフラグは textarea フィールドの JSON を処理できません。最初に JSON 本体を一時ファイルに書き込みます。 - 外部キーフィールド名:
OmniDataTransformItemの親参照はOmniDataTransformationId(完全な単語「Transformation」) で、OmniDataTransformIdではありません。
ライセンス
MIT ライセンス。 著作権 (c) 2026 David Ryan (weytani)
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- jaganpro
- リポジトリ
- jaganpro/sf-skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/jaganpro/sf-skills / ライセンス: MIT
関連スキル
hugging-face-trackio
Trackioを使用してMLトレーニング実験を追跡・可視化できます。トレーニング中のメトリクスログ記録(Python API)、トレーニング診断のアラート発火、ログされたメトリクスの取得・分析(CLI)が必要な場合に活用してください。リアルタイムダッシュボード表示、Webhookを使用したアラート、HF Space同期、自動化向けのJSON出力に対応しています。
btc-bottom-model
ビットコインのサイクルタイミングモデルで、加重スコアリングシステムを搭載しています。日次パルス(4指標、32ポイント)とウィークリー構造(9指標、68ポイント)の2カテゴリーにわたる13の指標を追跡し、0~100のマーケットヒートスコアを算出します。ETFフロー、ファンディングレート、ロング/ショート比率、恐怖・貪欲指数、LTH-MVRV、NUPL、SOPR(LTH+STH)、LTH供給率、移動平均倍率(365日MA、200週MA)、週次RSI、出来高トレンドに対応します。市場サイクル全体を通じて買いと売りの両方の推奨を提供します。ビットコインの底値拾い、BTCサイクルポジション、買い時・売り時、オンチェーン指標、MVRV、NUPL、SOPR、LTH動向、ETFの流出入、ファンディングレート、恐怖指数、ビットコインが過熱状態か、マイナーコスト、暗号資産市場のセンチメント、BTCのポジションサイジング、「今ビットコインを買うべきか」「BTCが天井をつけているか」「オンチェーン指標は何を示しているか」といった質問の際にこのスキルを活用します。
protein_solubility_optimization
タンパク質の溶解性最適化 - タンパク質の溶解性を最適化します。タンパク質の特性を計算し、溶解性と親水性を予測し、有効な変異を提案します。タンパク質配列の特性計算、タンパク質機能の予測、親水性計算、ゼロショット配列予測を含むタンパク質エンジニアリング業務に使用できます。3つのSCPサーバーから4つのツールを統合しています。
research-lookup
Parallel Chat APIまたはPerplexity sonar-pro-searchを使用して、最新の研究情報を検索できます。学術論文の検索にも対応しています。クエリは自動的に最適なバックエンドにルーティングされるため、論文の検索、研究データの収集、科学情報の検証に活用できます。
tree-formatting
ggtree(R)またはiTOL(ウェブ)を使用して、系統樹の可視化とフォーマットを行います。系統樹を図として描画する際、ツリーレイアウトの選択、分類学に基づく枝やラベルの色付け、クレードの折りたたみ、サポート値の表示、またはツリーへのオーバーレイ追加が必要な場合に使用してください。系統推定(protein-phylogenyスキルを使用)やドメイン注釈(今後の独立したスキル)には使用しないでください。
querying-indonesian-gov-data
インドネシア政府の50以上のAPIとデータソースに接続できます。BPJPH(ハラール認証)、BOM(食品安全)、OJK(金融適正性)、BPS(統計)、BMKG(気象・地震)、インドネシア中央銀行(為替レート)、IDX(株式)、CKAN公開データポータル、pasal.id(第三者法MCP)に対応しています。インドネシア政府データを活用したアプリ開発、.go.idウェブサイトのスクレイピング、ハラール認証の確認、企業の法的適正性の検証、金融機関ステータスの照会、またはインドネシアMCPサーバーへの接続時に使用できます。CSRF処理、CKAN API使用方法、IP制限回避など、すぐに実行可能なPythonパターンを含んでいます。