No Results
Search Tips:
- Please consider misspellings
- Try different search keywords
トリガの作成
このレッスンで作成するトリガは、請求書明細の削除の前に起動します。請求書明細に品目名が含まれる場合は、削除されないようにします。
- 開発者コンソールで、 をクリックします。
- 名前に「RestrictInvoiceDeletion」と入力し、[sObject] ドロップダウンリストから、Invoice_Statement__c を選択します。[Submit (実行)] をクリックします。
- 自動生成されたコードを削除し、次のコードを追加します。
- [Save (保存)] をクリックします。トリガは、保存するとデフォルトで有効になります。
もうひとこと...
- トリガは RestrictInvoiceDeletion という名前で、Invoice_Statement__c sObject に関連付けられます。
- 1 つ以上の Invoice_Statement__c sObject が削除される前に、トリガが実行されます。これは、before delete パラメータで指定されます。
- トリガには、トリガの対象で品目名を含む請求書明細を反復処理する SOQL for ループが含まれます。
- WHERE 句の最初の条件に含まれるネストされたクエリ (SELECT Invoice_Statement__c FROM Line_Item__c) を確認してください。各品目名には、親請求書明細を参照する Invoice_Statement__c 項目があります。このネストされたクエリは、すべての品目名の親請求書明細を取得します。
- クエリは、請求書明細の ID 値が、ネストされたクエリ WHERE Id IN (SELECT Invoice_Statement__c FROM Line_Item__c) で返された親請求書明細のセットに含まれるかどうかをチェックします。
- 2 つ目の条件は、このトリガで対象とする請求書明細のみがクエリされるように制限します。これを行うために、各 ID 値が Trigger.old に含まれるかどうかをチェックします。Trigger.old には、削除対象でまだ削除されていない古いレコードのセットが含まれます。
- 条件を満たす請求書明細ごとに、トリガは addError メソッドを使用してカスタムエラーメッセージを追加し、レコードが削除されるのを防ぎます。このカスタムエラーメッセージは、品目名を含む請求書明細を削除しようとすると、ユーザインターフェースに表示されます。これについては次のレッスンで確認します。