Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

スキーマビルダーを使用して、削除操作時のオブジェクトリレーション項目を特定してクエリを実行する

公開日: May 9, 2024
説明
※この記事は英語版を翻訳しており、一部機械翻訳を含むため内容は後日更新される可能性があります。最新の内容は英語版を参照してください。表示言語は画面右下の言語名から切り替えられます。

別のレコードに関連する子レコードや詳細レコードを特定することは、Salesforce 内の各オブジェクトすべてで、リレーション項目を確認する必要がある、気が遠くなりそうな手作業に思えますが、スキーマビルダーは違います。

特定のオブジェクト間のすべての関係をグラフにして表示、特定、文書化して、クエリを作成し、どこに関連レコードがあるのかを特定できます。

これは、レコード削除のパフォーマンスが悪い原因や、「削除処理対象が多すぎます」というメッセージが表示される原因を特定する必要がある場合に特に便利です。

初めて使用する際の詳細は、「スキーマビルダーを使用した独自のデータモデルの設計」と「スキーマビルダーを使う」を参照してください。

 
解決策
警告
データ操作を実行する前にデータのバックアップを必ず実行してください。詳細は、「Salesforce からバックアップデータをエクスポートする」または「データのエクスポート」を参照してください。少ないレコード数のサブセットでテストを実行し、Salesforce 内の対応するレコードを手動で開き、レコードが正しいことを確認して、操作が正常に終了したことを確認することをお勧めします。


スキーマビルダーで関連オブジェクトを検索する

 
1.スキーマビルダーの「クイック検索」検索ボックスに、影響を受けるレコードのオブジェクト名を入力します。下のセクションで返された結果がチェックされていて、表示されるようになっていることを確認します。結果のエントリにカーソルを合わせると、虫眼鏡が表示され、キャンバス上のオブジェクトの位置を簡単に確認できます。

2.オブジェクトを見つけたら、「クイック検索」からその名前を消去して、すべてのオブジェクトのリスト全体を表示できるようにします。次に、「すべて選択」リンクをクリックして、ビルダー内のすべての Salesforce オブジェクトを公開します。オブジェクトをクリックしたまま、キャンバス上の空白スペースにドラッグすると、すべてのオブジェクトのリレーション行を簡単に見ることができます。

注意: リレーション行は互いに重なり合うことがあるため、オブジェクトをキャンバス上で移動させてビューを操作し、問題のオブジェクトから他のオブジェクトへのリレーション行をすべて確認できるようにすることをおすすめします。

3.リレーションを確認したら、各行の上にマウスを合わせ、表示されるオブジェクトのリレーション情報をコピーして、他のオブジェクトから影響を受けるレコードのオブジェクトを指定するための、対応するルックアップまたは主従関係のリレーションをすべて特定します。
 

関連オブジェクトや参照項目の API 参照名を特定して、文書化する

 
1.設定で関連オブジェクトを特定し、SOQL クエリを作成するために、次の詳細を収集します。

A) オブジェクト API 参照名 (影響を受けるレコードのオブジェクトに関連するオブジェクト):

- 標準オブジェクトの API 参照名は通常、ラベルと一致します。たとえば、取引先オブジェクトの API 参照名は「取引先」です。標準オブジェクトのリストについての詳細は、「標準オブジェクト | Salesforce および Lightning Platform のオブジェクトリファレンス」のドキュメントを参照してください。

- カスタムオブジェクトの API 参照名は、設定に移動して見つけることができます。

Classic の場合、[クイック検索] ボックスに「オブジェクト」と入力し、[メニューを作成] ツリーのオブジェクトを選択します。リストから目的のオブジェクトを特定し、そのラベルをクリックして詳細ページを開き、「API 参照名」項目の値をコピーします。

Lightning の場合、オブジェクトマネージャを開き、「クイック検索」検索を実行してオブジェクトを特定して、「API 参照名」列から該当する値をコピーします。

2.前のステップの設定内の各オブジェクトを確認し、リレーション項目または影響を受けるレコードのオブジェクトを「検索」する項目を特定し、API 参照名を収集します。

API 参照名を特定する方法についての詳細は、「項目の API 参照名を検索する」を参照してください。
 

SOQL クエリを作成する


次の例をテンプレートとして使用して、影響を受けるレコード (検索項目の子側、または主従関係項目の詳細) に関連するレコードの ID を返すクエリを作成します。

SELECT Id FROM <ObjectAPINameHere> WHERE <RelationshipFieldAPINameHere> = '<AffectedRecordIdHere>'

以下を置き換えます。
<ObjectAPINameHere> を、上記ステップ 1 の関連するオブジェクトの API 参照名に置き換える
<RelationshipFieldAPINameHere>を、上記ステップ 2 のリレーション項目の API 参照名と置き換える
<AffectedRecordIdHere>を、削除するときに問題が生じたレコードの ID と置き換える

作成したクエリとデータローダなどのクライアントツールを使用して、「データのエクスポート」のドキュメントで説明されている要領でエクスポートまたはクエリを実行します。

クエリやエクスポートにより、大量の行やレコード (数千~1 万件以上) が返された場合、この関連データが削除やデータスキューなどのパフォーマンスの問題を引き起こしたり影響を及ぼしたりしている可能性があります。

大量の関連データが見つかった場合、結果のエクスポートファイルを使用して削除操作を行い、子レコードを一括削除します。データの削除についての詳細は、「データローダを使用したデータの挿入、更新、または削除」を参照してください。

関連データを削除した後は、「レコードを削除するときに「削除処理対象が多すぎます」というエラーが発生するか、処理に時間がかかりすぎる」という記事の「影響を受けるレコードの関連レコードの削除後」のセクションにある手順に従って、組織のごみ箱を空にし、関連データを消去するために物理的な削除を依頼します。

関連情報:
データ回復の廃止
ナレッジ記事番号

000382594

 
読み込み中
Salesforce Help | Article