9.2.9 ビジネスプロセスの再実行を要求するサービスリクエスタの作成(Webサービス・SOAP通信基盤)
標準の同期受付(Webサービス)に要求を出すサービスリクエスタとして,ビジネスプロセスの再実行を要求するサービスリクエスタを作成できます。
標準の同期受付(Webサービス)にビジネスプロセスの再実行を要求するサービスリクエスタを作成する流れは,標準の同期受付(Webサービス)に要求を出す,通常のサービスリクエスタを作成する場合と同じです。作成の流れについては,「9.2.1 サービスリクエスタ(標準の同期受付(Webサービス))の作成手順(SOAP通信基盤)」を参照してください。
各工程で実施する内容を次に示します。
(1) WSDLの取得
WSDLの取得方法は,標準の同期受付(Webサービス)に要求を出す,通常のサービスリクエスタを作成する場合と同じです。
WSDLの取得方法については,「9.2.2 WSDLを取得する」を参照してください。
(2) スタブの生成
スタブの生成方法は,標準の同期受付(Webサービス)に要求を出す,通常のサービスリクエスタを作成する場合と同様に,サービスプラットフォームが開発支援コマンドとして提供するWSDL2Javaコマンドで生成します。
スタブの生成については,「9.2.3 スタブを生成する」を参照してください。
(3) オブジェクトの生成
オブジェクトの生成方法は,標準の同期受付(Webサービス)に要求を出す,通常のサービスリクエスタを作成する場合と同じです。
オブジェクトの生成については,「9.2.4 オブジェクトを生成する」を参照してください。
なお,ビジネスプロセスの再実行を要求するメソッドは,invokeBPXML()を使用して呼び出します。
ビジネスプロセスの再実行を要求するメソッドの例を次に示します。
(例)ビジネスプロセスの再実行を要求する場合
String result = ws.invokeBPXML( // メソッドの呼び出し
serviceName, // サービス名
bpRequestType, // ビジネスプロセス用要求タイプ
bpProcessId, // ビジネスプロセス用プロセスID
clientID, // クライアント相関ID
requestFormatID, // リクエストフォーマットID
responseFormatID, // レスポンスフォーマットID
operationName, // オペレーション名
userData); // ユーザ電文
(4) パラメタの設定
メソッドの引数となるパラメタは,標準の同期受付(Webサービス)に要求を出す,通常のサービスリクエスタを作成する場合と異なります。同期受付(Webサービス)にビジネスプロセスの再実行を要求するサービスリクエスタの場合に設定するパラメタの詳細を次に示します。
|
パラメタ名 |
データ型 |
パラメタ(invokeBPXML) |
説明 |
|---|---|---|---|
|
サービス名 (serviceName) |
java.lang.String |
in0(type="xsd:string") |
要求先のサービス名です。 このパラメタは必ず指定してください。 要求先のサービス名は,開発環境で定義したビジネスプロセスを指定してください。 |
|
ビジネスプロセス用要求タイプ (bpRequestType) |
java.lang.String |
in1(type="xsd:string") |
要求電文の種類を示します。 ビジネスプロセスの再実行を要求する場合,文字列「RECOVER」を指定してください。※1 |
|
ビジネスプロセス用プロセスID (bpProcessId) |
java.lang.String |
in2(type="xsd:string") |
ビジネスプロセスインスタンスIDです。 エラー情報から取得した値,または,メッセージログに出力された値を指定してください。 |
|
クライアント相関ID (clientID) |
java.lang.String |
in3(type="xsd:string") |
サービスリクエスタからの要求電文を一意に識別するための相関識別子です。 このパラメタにはNULLを指定してください。※1 |
|
リクエストフォーマットID (requestFormatID) |
java.lang.String |
in4(type="xsd:string") |
サービスリクエスタからの要求電文フォーマットを一意に識別するためのIDです。 このパラメタにはNULLまたは空文字("")を指定してください。※1 |
|
レスポンスフォーマットID (responseFormatID) |
java.lang.String |
in5(type="xsd:string") |
HCSCサーバからの応答電文フォーマットを一意に識別するためのIDです。 このパラメタにはNULLまたは空文字("")を指定してください。※1 |
|
オペレーション名 (operationName) |
java.lang.String |
in6(type="xsd:string") |
要求先のサービス名に対するオペレーション名です。※2 このパラメタにはNULLまたは空文字("")を指定してください。※1 |
|
ユーザ電文 (userData) |
java.lang.String |
in7(type="xsd:string") |
サービスリクエスタからの要求電文です。※2 このパラメタにはNULLまたは空文字("")を指定してください。※1 |
- (凡例)
-
inX(X=0〜7):スタブで示しているメソッドごとのパラメタです。
- 注※1
-
これらのパラメタは,指定する値として固定値(「RECOVER」,NULLまたは空文字(""))が決められています。決められた値以外の値を指定すると,正常に動作しません。
- 注※2
-
要求先のサービス部品のプロトコルがSOAPの場合,ユーザ電文のルート要素の名称(データ変換を行う場合,データ変換後の電文のルート要素の名称)から呼び出すオペレーションを決定します。そのため,ユーザ電文のルート要素に誤った名称を指定した場合,意図しないオペレーションを呼び出してしまうので注意してください。
(5) 応答電文の取得
応答電文の取得方法は,標準の同期受付(Webサービス)に要求を出す,通常のサービスリクエスタを作成する場合と同じです。
応答電文の取得については,「9.2.7 応答電文を取得する」を参照してください。
(6) エラー情報の取得
エラー情報を取得するためのサービスリクエスタの実装は,標準の同期受付(Webサービス)に要求を出す,通常のサービスリクエスタを作成する場合と同じです。
エラー情報の取得については,「9.2.8 エラー情報を取得する」を参照してください。