No Results
Search Tips:
- Please consider misspellings
- Try different search keywords
Newer Version Available
非同期コールアウトを使用するプロセス
アクションメソッドでの非同期コールアウトの呼び出し
非同期コールアウトを呼び出すには、Visualforce アクションメソッドで Continuation インスタンスを使用して、外部サービスをコールします。継続を作成する場合は、タイムアウト値およびコールバックメソッドの名前を指定できます。たとえば、次のコードは、タイムアウト値を 60 秒、コールバックメソッド名を processResponse とする継続を作成します。
1Continuation cont = new Continuation(60);
2cont.continuationMethod = 'processResponse';次に、Continuation オブジェクトを外部コールアウトに関連付けます。関連付けるには、HTTP 要求を作成し、次のとおりこの要求を継続に追加します。
1String requestLabel = cont.addHttpRequest(request);コールアウト (アクションメソッド) を呼び出すメソッドは、システムがコールアウトを送信した後に現在の要求を一時停止し、コールアウト応答を待機するよう Visualforce に指示する Continuation オブジェクトを返す必要があります。Continuation オブジェクトは、実行されるコールアウトの詳細を保持します。
次はコールアウトを呼び出すメソッドの署名です。戻り値が Object 型の場合は、Continuation、PageReference、null のいずれかを表します。
1public Object calloutActionMethodName()次の表は、アクションメソッドの戻り値の一覧です。戻り値はそれぞれ異なる動作に対応します。
| 目的の結果 | アクションメソッドの戻り値 | 要求のライフサイクル |
|---|---|---|
| コールアウトを実行して、同じ Visualforce ページを表示したままにする。 | Continuation オブジェクト | システムが現在の Visualforce 要求を一時停止して、コールアウトの応答を待機します。 |
| アクションメソッドを実行後、新しい Visualforce ページにリダイレクトする (クエリパラメータを使用して、Continuation 結果オブジェクトを新しいページに渡す)。 |
PageReference オブジェクト | システムが現在の Visualforce 要求を一時停止して、コールアウトの応答を待機します。 |
| コールアウトを実行しない。 | null | システムが継続を実行せず、Visualforce 要求が一時停止されません。 |
コールバックメソッドの定義
外部サービスがコールアウトの処理を完了すると、応答が返されます。コールアウトが返された後に非同期実行するためのコールバックメソッドを指定できます。このコールバックメソッドは、コールアウト呼び出しメソッドが定義されたコントローラクラスで定義される必要があります。Visualforce ページに表示する応答の取得など、返された応答を処理するコールバックメソッドを定義できます。
コールバックメソッドは引数を取らず、次の署名が示されます。
1public Object callbackMethodName()戻り値が Object 型の場合は、Continuation、PageReference、null のいずれかを表します。元の Visualforce ページを表示して、Visualforce 要求を完了するには、コールバックメソッドで null を返します。
アクションメソッドで Visualforce Remoting を使用する場合は (@RemoteAction で付加)、コールバックメソッドが静的である必要があり、サポートされている次の署名が示されます。
1public static Object callbackMethodName(List< String> labels, Object state)および:
1public static Object callbackMethodName(Object state)システムがコールバックメソッドを呼び出し、実行されたコールアウト要求に関連付けられている表示ラベルを保持する場合は、labels パラメータがシステムによって指定されます。コントローラの Continuation.state プロパティを設定すると、state パラメータが指定されます。
次の表は、コールバックメソッドの戻り値の一覧です。戻り値はそれぞれ異なる動作に対応します。
| 目的の結果 | コールバックメソッドの戻り値 | 要求のライフサイクル |
|---|---|---|
| 元の Visualforce ページ (またはその一部) を再表示する。 | null | システムが Visualforce ページ要求を完了します。 |
| 新しい Visualforce ページにリダイレクトする。 (クエリパラメータを使用して、Continuation 結果オブジェクトを新しいページに渡す)。 |
PageReference オブジェクト | システムが Visualforce ページ要求を完了します。 |
| 別の継続を開始して、非同期コールアウトをチェーニングする。 | Continuation オブジェクト | システムが Visualforce 要求を再度一時停止して、新しいコールアウトの応答を待機します。 |