この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

トリガーの定義

トリガーコードは、トリガースクリプトが関連付けられたオブジェクトの下にメタデータとして保存されます。Salesforce でトリガーを定義する手順は、次のとおりです。

  1. トリガーにアクセスするオブジェクトのオブジェクト管理設定から、[トリガー] に移動します。

    Attachment、ContentDocument、および Note 標準オブジェクトでは、Salesforce ユーザーインターフェースでトリガーを作成できません。これらのオブジェクトの場合、トリガーを作成するには、開発者コンソールや Visual Studio Code 向け Salesforce 拡張機能などの開発ツールを使用してください。または、メタデータ API を使用することもできます。

    ヒント

  2. [トリガー] リストで、[新規] をクリックします。
  3. このトリガーで使用する Apex と API のバージョンを指定するには、[バージョン設定] をクリックします。組織が AppExchange から管理パッケージをインストールした場合、このトリガーで使用する各管理パッケージのバージョンも指定できます。すべてのバージョンでデフォルト値を使用して、トリガーを Apex、API、および各管理パッケージの最新バージョンに関連付けます。最新バージョンのパッケージのものとは異なるコンポーネントや機能にアクセスする場合は、管理パッケージの古いバージョンを指定することもできます。
  4. トリガーをコンパイルして有効にする必要がある場合は、[Apex トリガー] をクリックして [有効] チェックボックスをオンにします。組織のメタデータにコードを保存するだけの場合は、このチェックボックスはオフにしておきます。このチェックボックスは、デフォルトではオンです。
  5. [内容] テキストボックスで、そのトリガーの Apex を入力します。1 つのトリガーは、最大 100 万文字までです。
    トリガーを定義するには、次の構文を使用します。
    1trigger TriggerName on ObjectName (trigger_events) {
    2                     code_block
    3                     }
    trigger_events には、次のイベントを 1 つ以上含むカンマ区切りのリストを指定できます。
    • before insert
    • before update
    • before delete
    • after insert
    • after update
    • after delete
    • after undelete
    • 定期的なイベントまたは定期的な ToDo の insertdelete、または update によって呼び出されるトリガーは、Lightning プラットフォーム API からトリガーが大量に呼び出されるとき、ランタイムエラーになります。
    • after-insert または after-update トリガーを使用して、リード、取引先責任者、または商談の所有者を変更するとします。API を使用してレコード所有権を変更する場合、または Lightning Experience ユーザーがレコードの所有者を変更する場合、メール通知は送信されません。メール通知をレコードの新しい所有者に送信するには、DMLOptions の triggerUserEmail プロパティを true に設定します。

    メモ

  6. [保存] をクリックします。

トリガーは、最後にコンパイルされて以降、依存するメタデータに変更がない限り、isValid フラグを true に設定して保存します。オブジェクトや項目の説明の編集などの表面的な変更も含めて、トリガーで使用されているオブジェクト名や項目に変更があると、Apex コンパイラーがコードを再処理するまで、isValid フラグは false に設定されます。トリガーが次に実行されるときか、ユーザーがトリガーをメタデータに再保存するときに、再コンパイルされます。

削除済みのレコードを参照項目が参照している場合、デフォルトで Salesforce は参照項目の値をクリアします。または、レコードが参照関係にある場合は削除されないように選択することもできます。

メモ

Apex トリガーエディター

Apex および Visualforce エディターには、次の機能があります。
構文の強調表示
エディターは、キーワードとすべての関数および演算子について、自動的に構文を強調表示します。
検索 (検索アイコン)
検索により、現在のページ、クラス、またはトリガーの中のテキストを検索できます。検索を使用するには、[Search (検索)] テキストボックスに文字列を入力し、[Find Next (次を検索)] をクリックします。
  • 検出した検索文字列を他の文字列で置き換えるには、[Replace (置換)] テキストボックスに新しい文字列を入力し、そのインスタンスだけを置き換える場合は [replace] をクリックし、そのインスタンスと、それ以外にそのページ、クラス、またはトリガーに出現する検索文字列のすべてのインスタンスを置き換える場合は、[Replace All (すべて置換)] をクリックします。
  • 検索操作で大文字と小文字を区別するには、[Match Case (大文字と小文字を区別する)] オプションをオンにします。
  • 検索文字列として正規表現を使用するには、[Regular Expressions (正規表現)] オプションをオンにします。正規表現は、JavaScript の正規表現規則に従います。正規表現を使った検索では、折り返されて複数行になる文字列も検索できます。

    正規表現で検出した文字列を置換操作で使用する場合、検出した検索文字列から得られる正規表現のグループ変数 ($1$2 など) をバインドすることもできます。たとえば、<h1> タグを <h2> タグで置き換え、元の <h1> の属性はすべてそのままにするには、<h1(\s+)(.*)> を検索し、それを <h2$1$2> で置き換えます。

指定行に移動 (指定行に移動アイコン)
このボタンにより、指定した行番号を強調表示できます。その行が現在表示されていない場合は、エディターがその行までスクロールします。
元に戻す (元に戻すアイコン) またはやり直し (やり直しアイコン)
[元に戻す] を使用して編集動作を取り消し、[やり直し] により、元に戻した編集動作をやり直します。
フォントサイズ
ドロップダウンリストからフォントサイズを選択し、エディターに表示される文字のサイズを制御します。
行と列の位置
カーソルの行と列の位置は、エディター下部のステータスバーに表示されます。これは、[指定行に移動] (指定行に移動アイコン) と共に使用し、エディター内をすばやく移動できます。
行と文字の計数
行と文字の合計数は、エディター下部のステータスバーに表示されます。