mcpField
H
handling-sf-data

handling-sf-data

github.com/forcedotcomデータ・データベース1.1k2.9k 回インストール1 日前に更新
リポジトリ

handling-sf-data について

CRUD、バルク転送、テストデータ生成、クリーンアップなどを扱うSalesforceデータ操作スキルです。ローカルでのスクリプト生成とリモート実行を区別し、事前検証と後処理を案内します。

主な機能

  1. 01CRUDとバルクデータのワークフロー
  2. 02テストデータファクトリーとテンプレート
  3. 03describeによる事前検証
  4. 04クリーンアップとロールバックの案内
  5. 05SOQL検証スクリプト

活用シーン

  1. 01Salesforceレコードの作成や更新
  2. 02大規模データのインポートやエクスポート
  3. 03自動化テスト用データの生成
  4. 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.apex
bulk-insert-200.apex
bulk-insert-500.apex
bulk-upsert-external-id.apex
assets/cleanup/
delete-by-created-date.apex
delete-by-name.apex
delete-test-data.apex
rollback-transaction.apex
assets/csv/
account-import.csv
contact-import.csv
custom-object-import.csv
opportunity-import.csv
assets/factories/
account-factory.apex
case-factory.apex
contact-factory.apex
custom-object-factory.apex
event-factory.apex
hierarchy-factory.apex
lead-factory.apex
opportunity-factory.apex
task-factory.apex
user-factory.apex
assets/json/
account-contact-tree.json
account-opportunity-tree.json
full-hierarchy-tree.json
assets/soql/
aggregate.soql
child-to-parent.soql
parent-to-child.soql
polymorphic.soql
subquery.soql

詳細

Salesforce データ操作エキスパート(handling-sf-data)

ユーザーが Salesforce データの作業(レコードの CRUD、バルクインポート/エクスポート、テストデータの生成、クリーンアップスクリプト、Apex、Flow、または統合の動作検証のためのデータファクトリーパターン)を必要としている場合に、このスキルを使用します。

このスキルが担当するタスク

以下を含む作業には handling-sf-data を使用します。

  • sf data CLI コマンド
  • レコードの作成、更新、削除、アップサート、エクスポート、ツリーのインポート/エクスポート
  • 現実的なテストデータの生成
  • バルクデータ操作とクリーンアップ
  • データ投入/ロールバック用の匿名 Apex スクリプト

以下の場合は、ほかのスキルに委任します。


重要なモードの選択

ユーザーが希望するモードを確認します。

モード使用する状況
スクリプト生成組織にまだ変更を加えず、再利用可能な .apex、CSV、または JSON アセットを求めている場合
リモート実行実際の組織で今すぐレコードを作成/変更したい場合

ユーザーがスクリプトのみを求めている可能性がある場合は、リモート実行を前提にしないでください。


最初に収集する必須情報

以下を確認するか、推測します。

  • 対象オブジェクト
  • リモート実行が必要な場合は組織のエイリアス
  • 操作の種類:クエリ、作成、更新、削除、アップサート、インポート、エクスポート、クリーンアップ
  • 想定されるデータ量
  • テストデータ、移行データ、または一時的なトラブルシューティング用データのいずれか
  • 先に存在している必要がある親子関係

基本的な運用ルール

  • ユーザーがローカルでのスクリプト生成を明示的に希望しない限り、handling-sf-data は リモート組織のデータを操作します。
  • データを作成する前に、オブジェクトと項目が存在している必要があります。
  • 自動化テストでバルク動作が重要な場合は、251 件以上のレコードを推奨します。
  • 大規模または大量のデータセットを作成する前に、クリーンアップを計画します。追跡されていないレコードは実行のたびに蓄積し、組織の状態を汚染します。
  • テストレコードには、合成した個人を特定できないデータを使用します。実際の個人識別情報(PII)はコンプライアンス上のリスクを生み、バルクインポート後に安全に削除できません。
  • 単純な CRUD には CLI を優先し、サーバー側のオーケストレーションが本当に必要な場合に匿名 Apex を使用します。

メタデータが不足している場合は処理を中止し、以下に引き継ぎます。


推奨ワークフロー

1. 前提条件を確認する

オブジェクト/項目の利用可否、組織の認証、必要な親レコードを確認します。

2. スキーマが不確かな場合は、describe を使った事前検証を行う

レコードを作成または更新する前に、オブジェクトの describe データを使って以下を検証します。

  • 必須項目
  • 作成可能な項目と作成不可の項目
  • 選択リストの値
  • リレーション項目と親レコードの要件

項目、選択リストの値、作成可能な制約を調べるための sf sobject describe コマンドと jq フィルターパターンについては、references/sf-cli-data-commands.md を参照してください。

3. 要件を満たす最小限の方法を選ぶ
必要な作業標準的な方法
少量の一時的な CRUDsf data の単一レコード用コマンド
大規模なインポート/エクスポートsf data ... bulk による Bulk API 2.0
親子関係を含むシードデータ一式ツリーのインポート/エクスポート
再利用可能なテストデータセットファクトリー/匿名 Apex スクリプト
元に戻せる実験クリーンアップスクリプトまたはセーブポイントを使う方法
4. 実行するか、アセットを生成する

適合する場合は、assets/ 内の組み込みテンプレートを使用します。

  • assets/factories/
  • assets/bulk/
  • assets/cleanup/
  • assets/soql/
  • assets/csv/
  • assets/json/
5. 結果を検証する

作成または更新後に、件数、リレーション、レコード ID を確認します。

6. 上限付きの再試行戦略を適用する

作成に失敗した場合:

  1. 主な CLI 形式で一度試す
  2. パラメーターを修正して一度再試行する
  3. describe を再実行して、前提を検証する
  4. 別の方法に切り替えるか、手動での回避策を提示する

同じ失敗するコマンドを延々と繰り返さないでください。

7. クリーンアップ手順を提示する

データを作成した場合は、具体的なクリーンアップコマンドまたはロールバック用アセットを提示してください。


重要度の高いルール

一括処理の安全性
  • 大量のデータには一括操作を使用する
  • 適切な場合は、レコード数が 251 件以上のデータで自動化に影響する動作をテストする
  • 一括処理のシナリオでは、1 件ずつ処理するパターンを避ける
データ整合性
  • 必須フィールドを含める
  • 作成前に選択リストの値を検証する
  • 親 ID とリレーションの整合性を確認する
  • 入力データの検証ルールと重複制約を考慮する
  • 入力ペイロードから、作成できないフィールドを除外する
クリーンアップの徹底

以下のいずれかを優先してください:

  • ID による削除
  • パターンによる削除
  • 作成日時の期間による削除
  • スクリプトベースのテスト実行におけるロールバック/セーブポイントのパターン

よくある失敗パターン

エラー考えられる原因デフォルトの修正方針
INVALID_FIELDフィールドの API 名が間違っている、または FLS の問題スキーマとアクセス権を確認する
REQUIRED_FIELD_MISSING必須フィールドが省略されているdescribe データから必須値を含める
INVALID_CROSS_REFERENCE_KEY親 ID が無効先に親を作成/確認する
FIELD_CUSTOM_VALIDATION_EXCEPTION検証ルールによってレコードが拒否された有効なテストデータを使用するか、設定を調整する
選択リストの値が無効describe で確認せずに値を推測した先に選択リストの値を確認する
書き込み不可フィールドのエラーフィールドを作成/更新できないペイロードから削除する
一括処理の制限/タイムアウトデータ量に適さないツールを使用している一括処理/段階的なインポートに切り替える

出力形式

完了時は、次の順に報告してください:

  1. 実行した操作
  2. オブジェクトと件数
  3. 対象の組織またはローカルアーティファクトのパス
  4. レコード ID/出力ファイル
  5. 検証結果
  6. クリーンアップ手順

推奨形式:

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-apexApex クラス/トリガーの作成
データを使用する Flow ロジックを実装するgenerating-flowFlow の作成と自動化

リファレンス一覧

まずはこちら
クエリ/一括処理/クリーンアップ
例/制限事項
検証スクリプト
アセットテンプレート
  • 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修正されるまでブロック

コメント