2.6.2 作業アプリケーションの同期呼び出し
作業アプリケーションの同期呼び出しをする機能として「Javaオブジェクト呼び出し」機能があります。
作業アプリケーションの同期呼び出しは,API(案件投入APIや作業完了APIなど)と同期を取り,作業アプリケーションを起動します。CSCIWと関連づけたコネクションを渡すため,APIと同じトランザクションで処理を実行できます。APIと同じトランザクションで処理を実行したい場合,または比較的処理時間の短い業務を実行する場合に使用します。
なお,処理中にエラーが発生した場合,作業アプリケーションの処理もロールバックされます。再実行するときはAPIを再実行する必要があります。
作業アプリケーション同期呼び出しの概要を次の図に示します。
図中の番号は,次の説明の番号に対応しています。
- <説明>
-
-
業務アプリケーションがトランザクションを開始します。
-
業務アプリケーションが案件投入APIを実行します。
-
CSCIWが案件を生成,開始します。
-
ビジネスプロセス定義に従い,「作業1」を生成します。
-
「作業1」に作業アプリケーションの呼び出しが定義されている場合,作業アプリケーション(「作業アプリケーション1」)の呼び出しを実行します。
-
作業アプリケーション(「作業アプリケーション1」)は業務処理を行い,戻り値で作業の完了通知を行います。
-
作業アプリケーション(「作業アプリケーション1」)から作業の完了通知を受けたCSCIWは「作業1」を完了します。
-
ビジネスプロセス定義に従い,業務ステップを遷移し,新たに「作業2」を生成します。
-
「作業2」に作業アプリケーションの呼び出しが定義されている場合,作業アプリケーション(「作業アプリケーション2」)の呼び出しを実行します。
-
作業アプリケーション(「作業アプリケーション2」)は,業務処理を行い,戻り値で作業の着手を行います。
-
作業アプリケーション(「作業アプリケーション2」)から作業の着手の指示を受けたCSCIWは「作業2」を着手します。
-
作業が完了しないため,遷移を終了して,業務アプリケーションへ戻ります。
-
業務アプリケーションはトランザクションをコミットします。
同期呼び出しの場合,作業アプリケーションも含め,すべて同一トランザクションで処理を行います。上の説明では,1.〜12.が1つのトランザクションとなります。処理の途中(例えば,10.の作業着手処理)でエラーが発生した場合,案件投入がエラーとなります。すべての処理がロールバックされるため,案件投入前の状態に戻ります。
-