mcpField
S
sf-data

sf-data

github.com/jaganproデータ・データベース4241.4k 回インストール26 週間前に更新
リポジトリ

sf-data について

sf-data は、Salesforce のレコード操作、一括データ処理、テストデータ準備を支援するスキルです。スクリプト生成とリモート実行を使い分け、検証から結果確認、後片付けまで案内します。

主な機能

  1. 01レコードの作成・更新・削除・エクスポート
  2. 02一括処理とツリーデータ操作
  3. 03テストデータの生成
  4. 04項目とリレーションの検証
  5. 05結果確認と後片付けの計画

活用シーン

  1. 01Apex や Flow のテストデータ準備
  2. 02親子データセットのインポート
  3. 03データ変更後のクリーンアップ計画

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/jaganpro/sf-skills --skill sf-data

インストール後、Claude Code で/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 Data Operations Expert(sf-data)

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

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

次の作業には sf-data を使用します。

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

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

  • SOQL のみを記述する場合 → sf-soql
  • Apex テストを実行または修復する場合 → sf-testing
  • 先にメタデータをデプロイする場合 → sf-deploy
  • スキーマ/項目定義を確認する場合 → sf-metadata

重要:モードの選択

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

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

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


まず確認する必須コンテキスト

次の情報を確認するか、推測します。

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

基本的な運用ルール

  • ユーザーがローカルでのスクリプト生成を明示的に希望しない限り、sf-data はリモート組織のデータを操作します。
  • データを作成する前に、オブジェクトと項目が存在している必要があります。
  • 自動化テストでは、一括処理の動作が重要な場合、251 件以上のレコードを優先します。
  • 大量のデータや不要なデータを作成する前に、必ずクリーンアップ方法を検討します。
  • 生成するテストデータに実際の個人情報を使用しないでください。
  • 単純な CRUD では CLI を優先し、サーバー側のオーケストレーションが本当に必要な操作には匿名 Apex を使用します。

メタデータが不足している場合は、作業を中止し、次に引き継ぎます。


推奨ワークフロー

1. 前提条件を確認する

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

2. スキーマが不明確な場合は、describe を先に実行して事前検証する

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

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

実行例:

sf sobject describe --sobject ObjectName --target-org <alias> --json

便利なフィルター:

# Required + createable fields
jq '.result.fields[] | select(.nillable==false and .createable==true) | {name, type}'

# Valid picklist values for one field
jq '.result.fields[] | select(.name=="StageName") | .picklistValues[].value'

# Fields that cannot be set on create
jq '.result.fields[] | select(.createable==false) | .name'
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>

スキル間の連携

必要なこと委任先理由
オブジェクト/項目の構造を調べるsf-metadata正確なスキーマに基づく確認
一括処理に関わる Apex の検証を実行するsf-testingテストの実行とカバレッジ
不足しているスキーマを先にデプロイするsf-deployメタデータの準備
データを利用する本番ロジックを実装するsf-apex または sf-flow動作の実装

リファレンスマップ

まずはこちら
クエリ/一括処理/クリーンアップ
例/制限

スコアガイド

スコア意味
117+本番環境でも安全に実施できる、優れたデータワークフロー
104–116良好な操作。軽微な改善の余地あり
91–103許容範囲だが、レビューを推奨
78–90部分的/リスクのあるパターンが存在
< 78修正されるまで実施不可

コメント