組み込んだ非同期アプリケーション連携実行基盤のAPIを編集します。編集が必要な部分は、Javaソースに[TODO]コメントが挿入されています。
値を設定する項目を以下に示します。
業務データの初期値(“6.2.3.1 フローを起動するAPIの組込み”の場合)
エラー処理の記述
コリレーションIDの指定(“6.2.3.2 処理結果のメッセージ取得の組込み”の場合)
値の設定はInterstage StudioのJavaエディタで行います。Javaエディタの詳細については、Interstage Studioのヘルプ一覧から“Java開発ユーザガイド”の“概念”の“Javaエディタ”を参照してください。
非同期アプリケーション連携実行基盤のJava APIの詳細は、“Interstage Business Application Server リファレンス”の“アプリケーションインタフェース(Java)”を参照してください。
■APIを実行したときのメソッドの動作
業務処理開始アプリケーションで利用する非同期アプリケーション連携実行基盤のAPIを実行したときの、メソッドの動作について説明します。APIを実行した結果を考慮してエラー処理を記述するなどの編集を行う必要があります。
◆フローを起動するAPIの動作
フローを起動するAPIを以下に示します。
突き放し型フロー起動API(sendMessageメソッド)
待ち合わせ型フロー起動API(sendMessageSyncメソッド)
APIの使い分けの詳細については、 “■突き放し型フロー起動と待ち合わせ型フロー起動の使い分け”を参照してください。フローを起動するAPIの動作を以下に示します。
メソッドの動作 | 突き放し型フロー起動API | 待ち合わせ型フロー起動API |
---|---|---|
フローの起動に成功した場合 | com.fujitsu.interstage.apfw.client.FlowMapオブジェクトを返却します。 | “◆処理結果のメッセージを取得するAPIの動作”の“sendMessageSyncメソッド”を参照してください。 |
フローの起動に失敗した場合 | FlowException例外(com.fujitsu.interstage.apfw.client.FlowException)を返却します。例外情報からエラーの対処を行い、業務処理開始アプリケーションを再実行してください。例外情報の取得についての詳細は“6.3 エラー処理”の“■com.fujitsu.interstage.apfw.client.FlowExceptionのハンドリング”を参照してください。 | “◆処理結果のメッセージを取得するAPIの動作”の“sendMessageSyncメソッド”を参照してください。 |
注意
フローの起動に成功した後、メッセージのルーティング中にエラーが発生することがあります。エラー情報は[フローの起動に成功した場合]に従って取得します。詳細については“6.3 エラー処理”の“■フローを実行した結果のハンドリング”を参照してください。
◆処理結果のメッセージを取得するAPIの動作
処理結果のメッセージを取得するAPIを以下に示します。
receiveMessageメソッド
sendMessageSyncメソッド
APIの使い分けの詳細については、 “■突き放し型フロー起動と待ち合わせ型フロー起動の使い分け”を参照してください。処理結果のメッセージを取得するAPIの動作を以下に示します。
動作 | receiveMessageメソッド | sendMessageSyncメソッド |
---|---|---|
処理結果のメッセージ取得に成功した場合 | 処理結果のメッセージである、com.fujitsu.interstage.apfw.client.FlowMapオブジェクトを返却します。 | |
処理結果のメッセージ取得に失敗した場合 | 以下の条件などにより、結果受信キューに対象の処理結果のメッセージが存在しないときに、nullを返却します。
処理結果のメッセージを再取得するためには、receiveMessageメソッドの再発行が必要です。 | 以下の条件などにより、setTimeoutメソッドで指定したタイムアウト時間に達するまでに、結果受信キューに対象の処理結果のメッセージが到達しない場合は、nullを返却します。
業務処理実行アプリケーションが、ハングなどの事象により処理を返さない |
処理結果のメッセージ取得に失敗した場合 | FlowException例外(com.fujitsu.interstage.apfw.client.FlowException)を返却します。例外情報の取得についての詳細は“6.3 エラー処理”の“■com.fujitsu.interstage.apfw.client.FlowExceptionのハンドリング”を参照してください。 |
注意
補償処理メッセージが発行された場合の情報を取得する方法は以下になります。
処理結果のメッセージ取得に成功した場合、処理結果のメッセージであるcom.fujitsu.interstage.apfw.client.FlowMapオブジェクトからgetErrorListメソッドを行うことで、補償処理の情報が格納されたオブジェクト配列を取得することができます。
詳細は“6.3 エラー処理”の“■フローを実行した結果のハンドリング”を参照してください。
■業務データの初期値を設定する
非同期アプリケーション連携実行基盤のAPIを組み込むと、以下の業務データ設定ソースが挿入されています。
業務データの型 | メソッド | 規定値 |
---|---|---|
String | putString | null |
String配列 | putStringArray | null |
Byte | putByte | (byte)0 |
Byte配列 | putByteArray | null |
Short | putShort | (short)0 |
Short配列 | putShortArray | null |
Integer | putInteger | 0 |
Integer配列 | putIntegerArray | null |
Long | putLong | 0L |
Long配列 | putLongArray | null |
Float | putFloat | 0.0f |
Float配列 | putFloatArray | null |
Double | putDouble | 0.0d |
Double配列 | putDoubleArray | null |
Boolean | putBoolean | false |
Boolean配列 | putBooleanArray | null |
ユーザ定義型情報 | putObject | null |
バイナリ | putBinary | null |
業務データ設定ソースの例を以下に示します。
// 業務データを作成します。 FlowMap flowMap = new FlowMap(); // TODO 業務データ"要素A"の値をString型で指定してください。 // この業務データはコリレーションIDです。 // 値を指定しない場合は、自動採番機能が有効になります。 flowMap.putString("要素A", ""); // TODO 業務データ"要素B"の値をint型で指定してください。 flowMap.putInteger("要素B", 0); // TODO 業務データ"要素C"の値をlong型で指定してください。 flowMap.putLong("要素C", 0L); |
初期値の設定方法を以下に示します。
例)業務データの型がStringの場合
以下のメソッドが挿入されています。メソッドパラメタに値を設定します。
2番目のパラメタに、初期状態の業務データの値を設定します。
flowMap.putString("要素A", ""); |
注意
メソッドの1番目のパラメタはキー(業務データ名)が入力されています。変更すると、正しく業務データの値が設定されなくなるため、変更しないでください。
■エラー処理を記述する
業務処理開始アプリケーションで利用する非同期アプリケーション連携実行基盤のAPIを実行したときのメソッドの動作に従ってエラー処理を記述します。
非同期アプリケーション連携実行基盤のAPIを実行したときのメソッドの動作は、“■APIを実行したときのメソッドの動作”を参照してください。
詳細については“6.3 エラー処理”を参照してください。
■コリレーションIDを指定する
“6.2.3.2 処理結果のメッセージ取得の組込み”を行った場合、コリレーションIDを指定する必要があります。
APIを組み込むと、以下のソースが挿入されています。
// TODO cidにコリレーションIDをString型で指定してください。 FlowMap result = flowClient.receiveMessage(cid); |
“cid”の値を修正します。receiveMessageの引数には、必ずsendMessageを実行したコリレーションIDを指定してください。