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

「Callout from triggers are currently not supported (トリガからのコールアウトは現在サポートされていません)」エラー

公開日: Oct 13, 2022
説明
特定のシナリオでは、トリガからコールアウトを実行して外部 Web サービスを呼び出す必要がありますが、次のエラーによってコールアウトを呼び出すことができません。

Callout from triggers are currently not supported (トリガからのコールアウトは現在サポートされていません)



 
解決策

コールアウトを @future メソッドで囲むことで、トリガから呼び出せるようになります。

最初に @ を付けて、その後に適切なキーワードを続けることでアノテーションを定義します。メソッドにアノテーションを追加するには、メソッドまたはクラス定義の直前に指定します。次に例を示します。

global class MyClass { 
   @future (callout=true) 
   Public static void myMethod(String a) 
   { 
        //long-running Apex code 
   } 
}
アノテーションの詳細はこちらのリンクからお読みいただけます。

ただし、@future メソッドは非同期で動作するため、この方法が有効なのは、必要な操作を非同期コールで実行できる場合に限られます。

また、@future メソッドには次のガバナ制限があります:

@future メソッドで実行できる SOQL クエリ数の合計: 200

@future メソッドの合計ヒープサイズ: 12 MB

Apex 呼び出しごとに @future アノテーションを追加できるメソッド数の合計: 50

さらに、非同期メソッドの呼び出し (Batch Apex、キュー可能 Apex、スケジュール済み Apex、@future メソッドなど) についても、24 時間で Salesforce のフルユーザライセンスまたは Force.com App Subscription ユーザライセンスあたり 200 メソッドコールという制限があります。これは組織全体の制限です。Chatter のみ、Chatter カスタマーユーザ、カスタマーポータルユーザ、パートナーポータルユーザの各ライセンスは、この制限の計算には含まれません。たとえば、組織に Salesforce のフルユーザライセンスが 3 件、Force.com App Subscription ユーザライセンスが 2件、そしてカスタマーポータルユーザライセンスが 100 件あるとします。この場合の制限は 200 x (3+2+100) ではなく 200 x (3+2) として計算され、組織全体では 24 時間に 1,000 メソッドコールに制限されます。

制限の詳細はこちらをご覧ください。
 
ナレッジ記事番号

000386018

 
読み込み中
Salesforce Help | Article