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

Newer Version Available

This content describes an older version of this product. View Latest

Continuation クラス

SOAP または REST Web サービスに対して非同期にコールアウトを実行するには、Continuation クラスを使用します。

名前空間

System

コードの例���ついては、「Visualforce ページでの長時間コールアウトの実行」を参照してください。

Continuation のコンストラクタ

Continuation のコンストラクタは次のとおりです。

Continuation(timeout)

指定されたタイムアウト秒数を使用して、Continuation クラスのインスタンスを作成します。タイムアウトの最大値は 120 秒です。

署名

public Continuation(Integer timeout)

パラメータ

timeout
型: Integer
この継続のタイムアウト (秒)。

Continuation のプロパティ

Continuation のプロパティは次のとおりです。

continuationMethod

コールアウト応答が返された後にコールされるコールバックメソッドの名前。

署名

public String continuationMethod {get; set;}

プロパティ値

型: String

使用方法

continuationMethod プロパティが継続に設定されていない場合は、コールアウトレスポンスが返された時点で、非同期コールを行った同じアクションメソッドが再度コールされます。

メモ

timeout

継続のタイムアウト (秒)。最大値: 120 秒。

署名

public Integer timeout {get; set;}

プロパティ値

型: Integer

state

この継続で保存され、コールアウトが完了してコールバックメソッドが呼び出された後に取得可能なデータ。

署名

public Object state {get; set;}

プロパティ値

型: Object

次の例に、コントローラで継続の状態情報を保存する方法を示します。

1// Declare inner class to hold state info
2private class StateInfo {
3    String msg { get; set; }
4    List<String> urls  { get; set; }
5    StateInfo(String msg, List<String> urls) {
6        this.msg = msg;
7        this.urls = urls;
8    }
9}
10
11// Then in the action method, set state for the continuation
12continuationInstance.state = new StateInfo('Some state data', urls);

Continuation のメソッド

Continuation のメソッドは次のとおりです。

addHttpRequest(request)

この継続に関連付けられているコールアウトへの HTTP 要求を追加します。

署名

public String addHttpRequest(System.HttpRequest request)

パラメータ

request
型: HttpRequest
この継続によって外部サービスに送信される HTTP 要求。

戻り値

型: String

この継続に関連付けられている HTTP 要求を特定する一意の表示ラベル。この表示ラベルは、継続内で個々の要求を特定するために getRequests() から返される対応付けで使用されます。

使用方法

継続には最大 3 個の要求を追加できます。

渡された各要求で設定されたタイムアウトは無視されます。継続に適用されるのは、グローバルタイムアウトの最大値 (120 秒) のみです。

メモ

getRequests()

この継続に関連付けられているすべての表示ラベルと要求をキー - 値ペアとして返します。

署名

public Map<String,System.HttpRequest> getRequests()

戻り値

型: Map<String,HttpRequest>

この継続に関連付けられているすべての要求の対応付け。対応付けのキーは要求ラベルで、対応付けの値は対応する HTTP 要求です。

getResponse(requestLabel)

指定された表示ラベルに対応する要求への応答を返します。

署名

public static HttpResponse getResponse(String requestLabel)

パラメータ

requestLabel
型: String
応答を取得する要求ラベル。

戻り値

型: HttpResponse

使用方法

状況コードは、HttpResponse オブジェクトに返され、応答で getStatusCode() をコールすることによって取得できます。状況コード 200 は、要求が正常に行われたことを示します。他の状況コードの値は、発生した問題の種別を示します。

エラー状況コードのサンプル

応答で問題が発生した場合、使用される状況コードの値は次のとおりです。
  • 2000: タイムアウトになり、サーバが応答するのに間に合わなかった。
  • 2001: 接続障害が発生した。
  • 2002: 例外が発生した。
  • 2003: 応答が到着しなかった (Apex 非同期コールアウトフレームワークが再開されていないことも示します)。
  • 2004: 応答のサイズが大きすぎる (1 MB を超えている)。