始めまして。 知恵をお借りしたいです。 Flow Builderを使用しての定期実行処理の実装を行っています。
この中で、"@InvocableMethod"アノテーションを付与したApexクラスからHTTPリクエストを行う処理を実装しているのですが、下記エラーが発生します。 「An Apex error occurred: System.CalloutException: You have uncommitted work pending. Please commit or rollback before calling out」 調べたところ、DML(Insert、Update、Delete)処理を行った後に、外部サービスのコールアウトを行った際に発生するとのことでしたが、DML処理を行っておりません。 Flow Builderのフローにおいて、デフォルトでDMLを行う設定があったりしますでしょうか。
2 risposte
@InvocableMethod自体はコールアウトとして認識してください。ブラウザーからSalesforceに繋がりますから。
解決方法はこちらです。要するにフローは@InvocableMethodのメソッドを実行します。@future(callout=true)にした別のメソッドはHTTPリクエストを実行します。結果として、フローは終了しますが、@futureにしたメソッドはいつか自動的に発動してくれます。