(57)【特許請求の範囲】
【請求項１】
取引端末と、取引のための個別処理を実行する実行装置とに接続された制御部と、
取引のために連携して行なう複数の個別処理に関する情報を記憶した連携情報記憶部と、
前記取引端末から受信した取引電文に対応して実行した個別処理の完了情報を記録した実行情報記憶部と、
前記連携情報記憶部に記録された連携処理を実行する連携アプリケーションを実行するアプリケーション実行手段の実行状況を監視する管理部とを備えた取引管理システムであって、
前記制御部が、
前記取引端末から受信した取引電文に対応する連携アプリケーションにより、個別処理を実行するアプリケーション実行手段を起動し、
前記アプリケーション実行手段が、前記連携アプリケーションにより前記連携情報記憶部において特定される個別処理について、前記実行装置に対して、順次、前記個別処理の処理依頼を送信し、前記個別処理を完了した場合、前記個別処理についての完了情報を前記実行情報記憶部に記録し、
前記アプリケーション実行手段が、複数の個別処理を組み合わせた連携処理の一部の個別処理においてエラーを検知した場合、前記連携アプリケーションにより、前記実行情報記憶部において完了情報が記録された実行済み個別処理を特定し、前記実行済み個別処理を連携処理において取り消す取消要求電文を、順次、生成して、前記実行装置に送信するフロー取消処理を実行し、
前記管理部が、前記アプリケーション実行手段によって実行されている前記連携アプリケーションにおいてシステムエラーを検知した場合には、前記実行情報記憶部から個別処理の完了情報を取得し、
前記完了情報に基づいて、前記実行済み個別処理を取り消すための取消実行手段を起動し、
前記取消実行手段を用いて、前記実行済み個別処理のロールバック取消処理を実行する
ことを特徴とする取引管理システム。
【請求項２】
前記実行済み個別処理の取消処理を実行する場合には、前記実行済み個別処理の実行順番の逆順に前記各個別処理の取消処理を実行することを特徴とする請求項１に記載の取引管理システム。
【請求項３】
取引端末と、取引のための個別処理を実行する実行装置とに接続された制御部と、
取引のために連携して行なう複数の個別処理に関する情報を記憶した連携情報記憶部と、
前記取引端末から受信した取引電文に対応して実行した個別処理の完了情報を記録した実行情報記憶部と、
前記連携情報記憶部に記録された連携処理を実行する連携アプリケーションを実行するアプリケーション実行手段の実行状況を監視する管理部とを備えた取引管理システムを用いて、取引を管理するための方法であって、
前記制御部が、
前記取引端末から受信した取引電文に対応する連携アプリケーションにより、個別処理を実行するアプリケーション実行手段を起動し、
前記アプリケーション実行手段が、前記連携アプリケーションにより前記連携情報記憶部において特定される個別処理について、前記実行装置に対して、順次、前記個別処理の処理依頼を送信し、前記個別処理を完了した場合、前記個別処理についての完了情報を前記実行情報記憶部に記録し、
前記アプリケーション実行手段が、複数の個別処理を組み合わせた連携処理の一部の個別処理においてエラーを検知した場合、前記連携アプリケーションにより、前記実行情報記憶部において完了情報が記録された実行済み個別処理を特定し、前記実行済み個別処理を連携処理において取り消す取消要求電文を、順次、生成して、前記実行装置に送信するフロー取消処理を実行し、
前記管理部が、前記アプリケーション実行手段によって実行されている前記連携アプリケーションにおいてシステムエラーを検知した場合には、前記実行情報記憶部から個別処理の完了情報を取得し、
前記完了情報に基づいて、前記実行済み個別処理を取り消すための取消実行手段を起動し、
前記取消実行手段を用いて、前記実行済み個別処理のロールバック取消処理を実行することを特徴とする取引管理方法。
【請求項４】
取引端末と、取引のための個別処理を実行する実行装置とに接続された制御部と、
取引のために連携して行なう複数の個別処理に関する情報を記憶した連携情報記憶部と、
前記取引端末から受信した取引電文に対応して実行した個別処理の完了情報を記録した実行情報記憶部と、
前記連携情報記憶部に記録された連携処理を実行する連携アプリケーションを実行するアプリケーション実行手段の実行状況を監視する管理部とを備えた取引管理システムを用いて、取引を管理するためのプログラムであって、
前記制御部を、
前記取引端末から受信した取引電文に対応する連携アプリケーションにより、個別処理を実行するアプリケーション実行手段を起動し、
前記アプリケーション実行手段が、前記連携アプリケーションにより前記連携情報記憶部において特定される個別処理について、前記実行装置に対して、順次、前記個別処理の処理依頼を送信し、前記個別処理を完了した場合、前記個別処理についての完了情報を前記実行情報記憶部に記録し、
前記アプリケーション実行手段が、複数の個別処理を組み合わせた連携処理の一部の個
別処理においてエラーを検知した場合、前記連携アプリケーションにより、前記実行情報記憶部において完了情報が記録された実行済み個別処理を特定し、前記実行済み個別処理を連携処理において取り消す取消要求電文を、順次、生成して、前記実行装置に送信するフロー取消処理を実行し、
前記管理部が、前記アプリケーション実行手段によって実行されている前記連携アプリケーションにおいてシステムエラーを検知した場合には、前記実行情報記憶部から個別処理の完了情報を取得し、
前記完了情報に基づいて、前記実行済み個別処理を取り消すための取消実行手段を起動し、
前記取消実行手段を用いて、前記実行済み個別処理のロールバック取消処理を実行する手段として機能させることを特徴とする取引管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の処理を連携して実行する場合に、一部の処理で発生したエラーの対応を支援するための取引管理システム、取引管理方法及び取引管理プログラムに関する。
【背景技術】
【０００２】
クライアント端末から受信した処理要求に基づいて、情報処理システムにおいて各種情報処理を実行する場合、エラーが発生することがある。このようなエラーに対しては、迅速かつ効率的に対応することが望ましい。そこで、エラーが発生した場合に、要求元にエラーを返さずにロールバックや再処理を実行するための技術が検討されている（例えば、特許文献１参照。）。この文献に記載された技術においては、要求元端末からの第１サーバに対するリクエストを代理するリクエスト代理装置と、リクエスト代理装置から端末要求情報を受信し記憶する要求情報管理装置と、バックエンドサーバ又は他の外部デバイスへの第１サーバからの処理要求を代理し、接続情報を管理する接続代理装置とで構成される。そして、リクエスト代理装置は、サーバに障害を検知し、要求情報管理装置から端末要求情報を読み出して第２サーバへ送信する。第２サーバは、端末要求情報を用いて要求元端末からのリクエストを構成するトランザクション処理を継続する。そして、バックエンドサーバ又は外部デバイスへの処理要求を接続代理装置へ送信する際には、接続情報を用いて処理結果をリクエスト代理装置へ送信する。
【０００３】
また、このような情報処理においては、複数の個別処理を組み合わせて、ホストシステムにおいて行なうこともある。そこで、クライアント端末からのデータをホストシステムに転送するためのデータ転送システムも検討されている（例えば、特許文献２参照。）。この文献に記載された技術においては、電文を受信した締上げ管理サーバは、締上げ処理を実行する。そして、この電文を送信電文保管部に保管し、稼動状態のメインＨＵＢを介して電文の送信処理を実行する。そして、この文献には、一つの取引電文の取引を完了させるために、複数の個別処理を組み合わせた取引フロー（連携処理）を行なうことが記載されている。ここで、連携処理とは、複数の個別処理（例えば、営業店毎の売上げ管理や、顧客毎の顧客情報ファイル管理（ＣＩＦ）、口座管理等）を連続して一連の取引として扱う処理である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２７１８９号公報（第１頁、図１）
【特許文献２】特開２００９−２３７７８９号公報（第１頁、図１）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、エラーが発生する原因は多様であり、情報処理を実行するために必要な条件が整合していない場合に生じる業務エラーや、システム的な障害により発生するシステムエラー等がある。そして、このようなエラーの種類によって対応の仕方は異なる。ここで、業務エラーとシステムエラーとでは、既に実行済みの処理を取り消す場合にも、その取消方法が異なる。すなわち、業務エラーの場合には健全なシステムを前提として取り消すことが可能であるが、システムエラーの場合にはシステムに障害が発生しているために、業務エラーとは異なる対応が必要である。
【０００６】
また、特許文献２に記載されている連携処理においては、連携処理を構成する個別処理の順番が大切であり、取消時においても取り消す順番を考慮する必要がある。
本発明は、上述した問題に鑑みてなされたものであり、その目的は、複数の処理を連携して実行する場合に、一部の処理で発生したエラーに対して効率的な対応を支援するための取引管理システム、取引管理方法及び取引管理プログラムを提供することにある。
【課題を解決するための手段】
【０００７】
上記問題点を解決するために、請求項１に記載の発明は、取引端末と、取引のための個別処理を実行する実行装置とに接続された制御部と、取引のために連携して行なう複数の個別処理に関する情報を記憶した連携情報記憶部と、前記取引端末から受信した取引電文に対応して実行した個別処理の完了情報を記録した実行情報記憶部と、前記連携情報記憶部に記録された連携処理を実行する連携アプリケーションを実行するアプリケーション実行手段の実行状況を監視する管理部とを備えた取引管理システムであって、前記制御部が、前記取引端末から受信した取引電文に対応する連携アプリケーションにより、個別処理を実行するアプリケーション実行手段を起動し、前記アプリケーション実行手段が、前記連携アプリケーションにより前記連携情報記憶部において特定される個別処理について、前記実行装置に対して、順次、前記個別処理の処理依頼を送信し、前記個別処理を完了した場合、前記個別処理についての完了情報を前記実行情報記憶部に記録し、前記アプリケーション実行手段が、複数の個別処理を組み合わせた連携処理の一部の個別処理においてエラーを検知した場合、前記連携アプリケーションにより、前記実行情報記憶部において完了情報が記録された実行済み個別処理を特定し、前記実行済み個別処理を連携処理において取り消す取消要求電文を、順次、生成して、前記実行装置に送信するフロー取消処理を実行し、前記管理部が、前記アプリケーション実行手段によって実行されている前記連携アプリケーションにおいてシステムエラーを検知した場合には、前記実行情報記憶部から個別処理の完了情報を取得し、前記完了情報に基づいて、前記実行済み個別処理を取り消すための取消実行手段を起動し、前記取消実行手段を用いて、前記実行済み個別処理のロールバック取消処理を実行することを要旨とする。
【０００８】
請求項２に記載の発明は、請求項１に記載の取引管理システムにおいて、前記実行済み個別処理の取消処理を実行する場合には、前記実行済み個別処理の実行順番の逆順に前記各個別処理の取消処理を実行することを要旨とする。
【００１１】
請求項３に記載の発明は、取引端末と、取引のための個別処理を実行する実行装置とに接続された制御部と、取引のために連携して行なう複数の個別処理に関する情報を記憶した連携情報記憶部と、前記取引端末から受信した取引電文に対応して実行した個別処理の完了情報を記録した実行情報記憶部と、前記連携情報記憶部に記録された連携処理を実行する連携アプリケーションを実行するアプリケーション実行手段の実行状況を監視する管理部とを備えた取引管理システムを用いて、取引を管理するための方法であって、前記制御部が、前記取引端末から受信した取引電文に対応する連携アプリケーションにより、個別処理を実行するアプリケーション実行手段を起動し、前記アプリケーション実行手段が、前記連携アプリケーションにより前記連携情報記憶部において特定される個別処理について、前記実行装置に対して、順次、前記個別処理の処理依頼を送信し、前記個別処理を完了した場合、前記個別処理についての完了情報を前記実行情報記憶部に記録し、前記アプリケーション実行手段が、複数の個別処理を組み合わせた連携処理の一部の個別処理においてエラーを検知した場合、前記連携アプリケーションにより、前記実行情報記憶部において完了情報が記録された実行済み個別処理を特定し、前記実行済み個別処理を連携処理において取り消す取消要求電文を、順次、生成して、前記実行装置に送信するフロー取消処理を実行し、前記管理部が、前記アプリケーション実行手段によって実行されている前記連携アプリケーションにおいてシステムエラーを検知した場合には、前記実行情報記憶部から個別処理の完了情報を取得し、前記完了情報に基づいて、前記実行済み個別処理を取り消すための取消実行手段を起動し、前記取消実行手段を用いて、前記実行済み個別処理のロールバック取消処理を実行することを要旨とする。
【００１２】
請求項４に記載の発明は、取引端末と、取引のための個別処理を実行する実行装置とに接続された制御部と、取引のために連携して行なう複数の個別処理に関する情報を記憶した連携情報記憶部と、前記取引端末から受信した取引電文に対応して実行した個別処理の完了情報を記録した実行情報記憶部と、前記連携情報記憶部に記録された連携処理を実行する連携アプリケーションを実行するアプリケーション実行手段の実行状況を監視する管理部とを備えた取引管理システムを用いて、取引を管理するためのプログラムであって、前記制御部を、前記取引端末から受信した取引電文に対応する連携アプリケーションにより、個別処理を実行するアプリケーション実行手段を起動し、前記アプリケーション実行手段が、前記連携アプリケーションにより前記連携情報記憶部において特定される個別処理について、前記実行装置に対して、順次、前記個別処理の処理依頼を送信し、前記個別処理を完了した場合、前記個別処理についての完了情報を前記実行情報記憶部に記録し、前記アプリケーション実行手段が、複数の個別処理を組み合わせた連携処理の一部の個別処理においてエラーを検知した場合、前記連携アプリケーションにより、前記実行情報記憶部において完了情報が記録された実行済み個別処理を特定し、前記実行済み個別処理を連携処理において取り消す取消要求電文を、順次、生成して、前記実行装置に送信するフロー取消処理を実行し、前記管理部が、前記アプリケーション実行手段によって実行されている前記連携アプリケーションにおいてシステムエラーを検知した場合には、前記実行情報記憶部から個別処理の完了情報を取得し、前記完了情報に基づいて、前記実行済み個別処理を取り消すための取消実行手段を起動し、前記取消実行手段を用いて、前記実行済み個別処理のロールバック取消処理を実行する手段として機能させることを要旨とする。
【００１３】
（作用）
請求項１、３又は４に記載の発明によれば、制御部が、取引端末から受信した取引電文に対応する個別処理を実行するためのアプリケーション実行手段を起動し、アプリケーション実行手段が、連携情報記憶部において特定される個別処理について、実行装置に対して、順次、個別処理の処理依頼を送信する。個別処理を完了した場合、個別処理についての完了情報を実行情報記憶部に記録する。そして、一部の個別処理においてエラーを検知した場合、実行情報記憶部において完了情報が記録された実行済み個別処理を特定し、実行済み個別処理の取消処理を実行する。これにより、エラーが生じた場合に、実行済みの処理を取り消して、効率的に処理前の状態に戻すことができる。
【００１４】
請求項２に記載の発明によれば、実行済み個別処理の取消処理を実行する場合には、実行済み個別処理の実行順番の逆順に各個別処理の取消処理を実行する。これにより、個別処理を実行した順番を考慮して、処理前の状態に戻すことができる。
【００１５】
本発明によれば、実行済み個別処理の取消処理を実行する場合には、アプリケーション実行手段が、実行情報記憶部から個別処理の完了情報を取得し、完了情報に基づいて、実行装置に対して取消要求電文を送信する。これにより、業務エラー等のように、予め想定されるエラーに対して、アプリケーションにより、実行済み処理を取り消すことができる。
【００１６】
本発明によれば、アプリケーション実行手段においてシステムエラーを検知した場合には、アプリケーション実行手段を監視する管理部が、実行情報記憶部から個別処理の完了情報を取得する。そして、完了情報に基づいて、実行済み個別処理を取り消すための取消実行手段を起動し、取消実行手段を用いて個別処理の取消を行なう。これにより、システムエラー等のように、アプリケーションで制御できない場合にも、実行済みの処理を取り消すことができる。
【発明の効果】
【００１７】
本発明によれば、複数の処理を連携して実行する場合に、一部の処理で発生したエラーに対して効率的な対応を支援するための取引管理システム、取引管理方法及び取引管理プログラムを提供することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施形態のシステム概略図。
【図２】本発明の実施形態の各情報記憶部に記録されたデータの説明図であって、（ａ）は連携情報記憶部、（ｂ）は取引管理情報記憶部、（ｃ）はエラー情報記憶部に記録されたデータの説明図。
【図３】本実施形態の処理手順の説明図。
【図４】本実施形態の処理手順の説明図。
【図５】本実施形態の処理手順の説明図。
【図６】本実施形態の処理手順の説明図。
【発明を実施するための形態】
【００１９】
以下、本発明を具体化した一実施形態を図１〜図６に基づいて説明する。本実施形態では、取引要求に対応して、複数のプロセスを組み合わせた個別処理により各取引を実行する場合を想定する。
【００２０】
図１に示すように、ここでは、ネットワークを介して接続された取引端末１０、取引共通システム２０、サービス管理サーバ３０を用いる。
取引端末１０は、ディスプレイ等の出力手段や、キーボードやポインティングデバイス等の入力手段を備えている。
【００２１】
取引端末１０は、取引担当者によって入力された取引電文を送信するコンピュータ端末である。この取引端末１０は、例えば、店頭に設置されたフロント端末等を用いることが可能である。取引端末１０は、取引電文に対して取引種別コード、顧客コードや取引内容を取引情報記憶部（図示せず）に記録する。そして、取引端末１０は、この取引電文を、ネットワークを介して、取引共通システム２０に転送する。また、取引端末１０は、取引共通システム２０から受信した取引応答電文を出力手段に出力する。
【００２２】
取引共通システム２０は、取引電文の内容に基づいて必要な個別処理を特定し、この個別処理を実行するサービス管理サーバ３０に処理依頼電文を送信するコンピュータ装置である。ここで、制御部２１は、取引電文の内容に応じて後続の個別処理の実行が必要な場合には、新たに処理依頼電文を生成し、この個別処理を実行するサービス管理サーバ３０に送信する。そして、取引電文に対応するすべての個別処理を終了した場合には、取引電文に対応する取引応答電文を、取引端末１０に返信する。
【００２３】
取引共通システム２０は、制御部２１、連携情報記憶部２２、取引管理情報記憶部２４、エラー情報記憶部２６、取消実行ルーチン記憶部２８を備えている。
制御部２１は、制御手段（ＣＰＵ、ＲＡＭ、ＲＯＭ等）を備えている。そして、この制御部２１は、後述する処理（取引フロー管理段階、例外処理実行段階等の各処理等）を行なう。そのための取引管理プログラムを実行することにより、この制御部２１は、図１に示すように、取引フロー管理手段２１１、例外処理実行手段２１２等の各手段として機能する。
【００２４】
取引フロー管理手段２１１はアプリケーション実行手段として機能し、取引アプリケーションに基づいて、取引端末１０から受信した取引電文に対応して取引を行なう各種処理を実行する。具体的には、取引フロー管理手段２１１は、取引実行手段Ａ１及びフロー取消手段Ａ２を起動して各種処理を実行させる。取引実行手段Ａ１は、取引を行なうために必要な取引フローを特定し、この取引フローに含まれる取引プロセス（個別処理）を行なうサービス管理サーバ３０に、処理依頼電文を送信する処理を実行する。一方、フロー取消手段Ａ２は、サービス管理サーバ３０において実行される個別処理において業務エラーを検知した場合、実行済みの個別処理を取り消す処理を行なう。
【００２５】
例外処理実行手段２１２は、取引フロー管理手段２１１を監視する管理部として機能し、取引フロー管理手段２１１においてシステムエラーが生じた場合に、実行済みの個別処理を取り消す取消実行手段Ｂ１を起動する処理を行なう。ここでは、取引アプリケーションが実行されるシステム環境（実行環境）においてロールバック取消処理を実行する。
【００２６】
連携情報記憶部２２には、図２（ａ）に示すように、取引電文の取引を実現するために連携して行なう個別処理を特定するための連携管理レコード２２０が記録されている。この連携管理レコード２２０は、取引において必要な個別処理が登録された場合に記録される。連携管理レコード２２０には、取引種別、処理種別に関するデータが記録される。
【００２７】
取引種別データ領域には、取引電文における取引種別を特定するための識別子に関するデータが記録される。
処理種別データ領域には、この取引電文の取引を完了させるために必要な個別処理の処理種別を特定するための識別子に関するデータが記録される。ここでは、個別処理を実行する順番を特定できるように記録されている。
【００２８】
取引管理情報記憶部２４は実行情報記憶部として機能する。この取引管理情報記憶部２４には、図２（ｂ）に示すように、取引端末１０から受信した取引電文を管理するための取引管理レコード２４０が記録される。この取引管理レコード２４０は、取引端末１０から取引電文を受信した場合に登録される。取引管理レコード２４０には、取引電文コード、電文受信日時、取引種別、取引内容、取引結果に関するデータが記録される。更に、この取引管理レコード２４０には、処理種別に対して処理結果に関するデータが記録される。
【００２９】
取引電文コードデータ領域には、各取引電文を特定するための識別子に関するデータが記録される。
電文受信日時データ領域には、この取引電文を受信した年月日及び時刻に関するデータが記録される。
【００３０】
取引種別データ領域には、この取引電文における取引種別を特定するための識別子に関するデータが記録される。
取引内容データ領域には、この取引電文における取引の詳細に関するデータが記録される。この取引内容には、取引金額に関するデータが含まれる。
【００３１】
取引結果データ領域には、この取引電文における取引の最終結果に関するデータが記録される。本実施形態では、取引を完了した場合には完了フラグが記録される。一方、エラーが発生して取引を完了できなかった場合には、エラーフラグが記録される。
【００３２】
処理種別データ領域には、この取引電文に基づいて、連携して行なわれる個別処理の処理種別を特定するための識別子に関するデータが記録される。
処理結果データ領域には、この個別処理についての処理結果に関するデータが記録される。本実施形態では、この処理種別の個別処理を完了した場合には完了フラグ（個別処理の完了情報）が記録される。また、エラー発生に対応して、個別処理を取り消した場合には、取消フラグが記録される。
【００３３】
エラー情報記憶部２６には、図２（ｃ）に示すように、取引電文に基づいて行なわれた個別処理において発生したエラーについてのエラー管理レコード２６０が記録される。このエラー管理レコード２６０は、エラーが発生した個別処理を行なったサービス管理サーバ３０からエラー情報を取得した場合に登録される。エラー管理レコード２６０には、取引電文コード、エラー発生日時、処理種別、エラーコード、エラー詳細に関するデータが記録される。
【００３４】
取引電文コードデータ領域には、エラーが発生した取引電文を特定するための識別子に関するデータが記録される。
エラー発生日時データ領域には、エラーが発生した年月日及び時刻に関するデータが記録される。
【００３５】
処理種別データ領域には、エラーが発生した個別処理を特定するための識別子に関するデータが記録される。
エラーコードデータ領域、エラー詳細データ領域には、それぞれ、発生したエラーの内容を特定するための識別子や詳細内容に関するデータが記録される。
【００３６】
取消実行ルーチン記憶部２８には、ロールバック取消において用いるプログラム（取消実行ルーチン）が記録されている。この取消実行ルーチンを呼び出すことにより、取消実行手段Ｂ１を起動させることができる。取消実行ルーチン記憶部２８において、取消実行ルーチンは、処理種別毎に記録されている。
【００３７】
サービス管理サーバ３０は実行装置として機能し、処理依頼電文に対応するために必要な各個別処理を実行するコンピュータ装置（例えば、ホストコンピュータ）である。各サービス管理サーバ３０における個別処理には、例えば、営業店毎の売上げ管理や、顧客毎の顧客情報ファイル管理（ＣＩＦ）、口座管理等の各処理が含まれる。
【００３８】
このサービス管理サーバ３０は、取引共通システム２０から受信した処理依頼電文に基づいて、処理種別に応じた個別処理を実行する。この場合、正常終了する場合と、エラーが発生する場合とがある。そして、サービス管理サーバ３０は、処理依頼電文に基づいた個別処理の処理結果を含めた処理結果電文を返信する。この処理結果電文には、取引電文コード、処理種別に関するデータを含める。更に、エラーが発生することなく個別処理を正常終了した場合には、処理結果電文において処理結果として完了メッセージを含める。一方、エラーを検知し、個別処理を正常終了できなかった場合には、処理結果電文において処理結果としてエラーメッセージを含める。このエラーメッセージには、エラー内容を特定するためのエラーコード及びその詳細に関するデータを含める。
【００３９】
また、サービス管理サーバ３０は、取引共通システム２０から取消要求電文を受信した場合、この取消要求電文に含まれる取引電文コードにおいて行なわれた個別処理を取り消して、取引前の状態に戻す取消処理（ロールバック処理）を実行する。
【００４０】
このサービス管理サーバ３０は、取引ログ記憶部３２を備えている。この取引ログ記憶部３２には、処理依頼電文に対応して実行した個別処理についての実行履歴（取引ログ）が記録される。この取引ログには、取引電文コードに関連付けて、処理内容及び処理結果に関するデータが記録される。
【００４１】
（フロー取消の概要）
まず、図３を用いて、フロー取消の概要を説明する。
取引端末１０から取引電文を受信した取引共通システム２０の制御部２１は、この取引電文に応じたアプリケーションにより、取引実行手段Ａ１を起動する。
【００４２】
この取引実行手段Ａ１は、連携情報記憶部２２に記録されている処理種別を、順次、特定して、この処理種別の個別処理の実行を要求する。ここでは、図３に示すように、取引フローに含まれる取引プロセス（Ｓ１１、Ｓ１２、Ｓ１３、…）の順番で取引フローを実行する場合を想定する。そこで、取引実行手段Ａ１は、サービス管理サーバ３０に対して、順次、取引フローに含まれる取引プロセス（Ｓ１１、Ｓ１２、Ｓ１３、…）に対応した処理種別の処理依頼電文を送信する。この場合、サービス管理サーバ３０は、処理依頼電文に対応した個別処理を実施する。ここでは、サービス管理サーバ３０においては、取引フローに含まれる取引プロセス（Ｓ１１、Ｓ１２、Ｓ１３、…）に対応した個別処理（Ｓ３１、Ｓ３２、Ｓ３３、…）が行なわれる。
【００４３】
そして、取引実行手段Ａ１は、サービス管理サーバ３０から受信した処理結果電文に基づいて、処理結果を取引管理情報記憶部２４に記録する。
ここで、処理結果電文において業務エラーを検知した場合、取引実行手段Ａ１は、アプリケーションにより、取消プロセスＳ１ｎを実行するため、フロー取消手段Ａ２に処理を引き継ぐ。この場合、フロー取消手段Ａ２は、取引管理情報記憶部２４を用いて、実行済みの個別処理を特定する。そして、フロー取消手段Ａ２は、取消フローとして、取消要求電文作成処理Ｓ４１、電文送信処理Ｓ４２、取消結果確認処理Ｓ４３を実行する。
【００４４】
この取消要求電文作成処理Ｓ４１においては、実行済みの取引プロセスを取り消すための取消要求電文を作成する。この取消要求電文には、取消対象の取引電文コードや取引内容に関するデータを含める。
【００４５】
電文送信処理Ｓ４２においては、作成した取消要求電文を、サービス管理サーバ３０に送信する。
取消結果確認処理Ｓ４３は、サービス管理サーバ３０から受信した処理結果電文に基づいて、取消対象の取引プロセスが取り消されたことを確認する。
【００４６】
（ロールバック取消の概要）
次に、図４を用いて、アプリケーションにおいてシステムエラーが生じた場合のロールバック取消の概要を説明する。
【００４７】
ロールバック取消においても、フロー取消と同様に、取引実行手段Ａ１において取引プロセス（Ｓ１１、Ｓ１２、Ｓ１３、…）を実行し、サービス管理サーバ３０に対して、順次、処理依頼電文を送信する。そして、サービス管理サーバ３０においては、取引プロセス（Ｓ１１、Ｓ１２、Ｓ１３、…）に対応して、個別処理（Ｓ３１、Ｓ３２、Ｓ３３、…）が行なわれる。
【００４８】
ここで、取引フロー管理手段２１１においてシステムエラーが発生した場合、フロー取消手段Ａ２を起動することができない。そこで、システムエラーを検知した例外処理実行手段２１２は、取消実行手段Ｂ１を起動する。この取消実行手段Ｂ１は、取引管理情報記憶部２４を用いて、実行済みの取引プロセス（Ｓ１１、Ｓ１２、Ｓ１３）を特定する。次に、取引プロセスにおける個別処理を実行したサービス管理サーバ３０の取引ログ記憶部３２にアクセスし、取引ログを取得する。そして、取消実行手段Ｂ１は、この取引ログに基づいて、実行済みの個別処理（Ｓ３３、Ｓ３２、Ｓ３１）に対応して、個別処理を取り消すための取消処理（Ｓ５１、Ｓ５２、Ｓ５３）を実行する。
【００４９】
次に、以上のように構成されたシステムにおいて、取引を行なう場合についての手順を図５〜図６に基づいて説明する。
（取引処理）
まず、図５を用いて、取引管理処理を説明する。
ここでは、取引共通システム２０の制御部２１は、取引フローの定義処理を実行する（ステップＳ１−１）。具体的には、店頭において取引を行なう場合、取引担当者は取引端末１０に取引情報を入力する。そして、入力を完了した場合、取引端末１０は、取引電文を取引共通システム２０に送信する。この取引電文には、取引種別、顧客コード、金額に関するデータを含める。取引端末１０から取引電文を受信した取引共通システム２０の制御部２１の取引フロー管理手段２１１は、取引電文コードを付与するとともに、システムタイマから現在日時を取得し、取引電文コード及び電文受信日時として記録した取引管理レコード２４０を生成する。更に、この取引管理レコード２４０には、取引種別、取引内容（取引金額）に関するデータを含める。そして、取引フロー管理手段２１１は、生成した取引管理レコード２４０を取引管理情報記憶部２４に記録する。
更に、取引フロー管理手段２１１は、取引電文に含まれる取引種別に基づいて、連携情報記憶部２２に記録された連携管理レコード２２０を特定する。
【００５０】
次に、取引共通システム２０の制御部２１は、実行対象の個別処理の特定処理を実行する（ステップＳ１−２）。具体的には、制御部２１の取引フロー管理手段２１１は、この連携管理レコード２２０を用いて、取引電文の取引を実現するために必要な個別処理の処理種別を特定し、この処理種別を取引管理レコード２４０に記録する。そして、取引フロー管理手段２１１は、個別処理のための処理依頼電文を生成する。処理依頼電文には、取引電文コード、取引内容に関するデータを含める。
【００５１】
次に、取引共通システム２０の制御部２１は、処理依頼の送信処理を実行する（ステップＳ１−３）。具体的には、制御部２１の取引フロー管理手段２１１は、生成した処理依頼電文を、サービス管理サーバ３０に送信する。ここでは、連携管理レコード２２０に記録された個別処理の順番に処理依頼電文を送信する。
【００５２】
処理依頼電文を受信したサービス管理サーバ３０は、処理依頼電文に基づいて、個別処理を実行する。そして、サービス管理サーバ３０は、個別処理の処理結果を含めた処理結果電文を取引共通システム２０に返信する。この処理結果電文には、取引電文コード、処理種別、処理結果（完了メッセージ又はエラーメッセージ）に関するデータを含める。
【００５３】
次に、取引共通システム２０の制御部２１は、取引フローの実行結果の記録処理を実行する（ステップＳ１−４）。具体的には、制御部２１の取引フロー管理手段２１１は、サービス管理サーバ３０から受信した処理結果電文に基づいて、取引管理レコード２４０に処理種別に対応した処理結果を記録する。
【００５４】
次に、取引共通システム２０の制御部２１は、エラーが発生したかどうかについての判定処理を実行する（ステップＳ１−５）。具体的には、制御部２１の取引フロー管理手段２１１は、処理結果電文において処理結果としてエラーメッセージが含まれている場合には、エラーと判定する。
【００５５】
ここで、処理結果電文において処理結果として完了メッセージが含まれており、エラーが発生していないと判定した場合（ステップＳ１−５において「ＮＯ」の場合）、取引共通システム２０の制御部２１は、すべての個別処理を完了したかどうかについての判定処理を実行する（ステップＳ１−６）。具体的には、制御部２１の取引フロー管理手段２１１は、取引管理情報記憶部２４の取引管理レコード２４０に記録されている処理結果に基づいて、すべての個別処理を終了したかどうかを判定する。ここで、すべての処理種別に対して処理結果が記録されている場合には、取引フロー管理手段２１１は、すべての個別処理を完了したと判定する。
【００５６】
すべての個別処理を完了したと判定した場合（ステップＳ１−６において「ＹＥＳ」の場合）、取引共通システム２０の制御部２１は、取引管理レコード２４０の取引結果データ領域に完了フラグを記録し、取引端末１０に対して取引応答電文を送信して取引処理を終了する。この取引応答電文には、取引を完了したことを示すメッセージを含める。
【００５７】
一方、処理結果が記録されていない処理種別が残っており、すべての個別処理を完了していないと判定した場合（ステップＳ１−６において「ＮＯ」の場合）、取引共通システム２０の制御部２１は、ステップＳ１−２の処理から繰り返す。この場合には、取引管理レコード２４０において処理結果が記録されていない処理種別において、順番が次の処理種別の処理依頼電文をサービス管理サーバ３０に送信する。
【００５８】
また、処理結果電文において処理結果としてエラーメッセージが含まれており、エラーが発生したと判定した場合（ステップＳ１−５において「ＹＥＳ」の場合）、取引共通システム２０の制御部２１は、業務エラーに基づくフロー取消処理を実行する。ここでは、取引共通システム２０の制御部２１は、取引フローの実行結果の呼出処理を実行する（ステップＳ１−７）。具体的には、制御部２１の取引フロー管理手段２１１は、フロー取消手段Ａ２に処理を引き継ぐ。このフロー取消手段Ａ２は、システムタイマから現在日時を取得し、エラー発生日時として設定したエラー管理レコード２６０を生成する。このエラー管理レコード２６０には、サービス管理サーバ３０から受信した処理結果電文のエラーメッセージに基づいて、取引電文コード、処理種別、エラーコード、エラー詳細を含める。そして、フロー取消手段Ａ２は、生成したエラー管理レコード２６０をエラー情報記憶部２６に登録する。
【００５９】
次に、フロー取消手段Ａ２は、エラーが発生した個別処理の取引電文コードが記録された取引管理レコード２４０を取引管理情報記憶部２４から抽出する。そして、フロー取消手段Ａ２は、取引管理レコード２４０において、処理種別に関連付けてエラーフラグを記録する。
【００６０】
次に、取引共通システム２０の制御部２１は、取消対象の個別処理の特定処理を実行する（ステップＳ１−８）。具体的には、制御部２１のフロー取消手段Ａ２は、取引管理レコード２４０において完了フラグが記録されている処理種別を、取消対象の個別処理として特定する。ここでは、元の取引において個別処理を実行した順番の逆順で、取消対象の個別処理を特定する。
【００６１】
次に、取引共通システム２０の制御部２１は、取消要求の送信処理を実行する（ステップＳ１−９）。具体的には、制御部２１のフロー取消手段Ａ２は、特定した処理種別の個別処理を取り消すための取消要求電文を生成し、サービス管理サーバ３０に送信する。この取消要求電文には、取消対象の個別処理を特定するための情報（取引電文コード、取引種別、取引内容等）を含める。
【００６２】
次に、取引共通システム２０の制御部２１は、取消応答の取得処理を実行する（ステップＳ１−１０）。具体的には、取消要求を受信したサービス管理サーバ３０は、取引電文コードに対応した個別処理の取消処理を実行する。そして、サービス管理サーバ３０は、取消処理の結果を含めた取消応答電文を取引共通システム２０に返信する。取引共通システム２０の制御部２１のフロー取消手段Ａ２は、サービス管理サーバ３０から、取消要求電文に対する取消応答電文を受信する。この場合、フロー取消手段Ａ２は、取引管理レコード２４０において、取り消した処理種別に関連付けて、取消フラグを記録する。
【００６３】
次に、取引共通システム２０の制御部２１は、すべてを取り消したかどうかについての判定処理を実行する（ステップＳ１−１１）。具体的には、制御部２１のフロー取消手段Ａ２は、取引管理レコード２４０において、完了フラグが記録されている処理種別が残っていない場合には、すべてを取り消したと判定する。
【００６４】
ここで、すべてを取り消したと判定した場合（ステップＳ１−１１において「ＹＥＳ」の場合）、取引共通システム２０の制御部２１は、取引管理レコード２４０の取引結果データ領域にエラーフラグを記録し、取引端末１０に対して取引応答電文を送信して取引処理を終了する。この取引応答電文には、業務エラーにより取引を完了できなかったことを示すメッセージを含める。
【００６５】
一方、完了フラグが記録されている処理種別が残っており、すべての取消を終了していないと判定した場合（ステップＳ１−１１において「ＮＯ」の場合）、取引共通システム２０の制御部２１は、ステップＳ１−８の処理から繰り返す。
【００６６】
（ロールバック取消処理）
次に、図６を用いて、ロールバック取消処理を説明する。この処理は、例外処理実行手段２１２が、取引フロー管理手段２１１におけるシステムエラーを検出した場合に実行される。
【００６７】
まず、取引共通システム２０の制御部２１は、実行記録の取得処理を実行する（ステップＳ２−１）。具体的には、制御部２１の例外処理実行手段２１２は、エラーが発生した取引電文コードが記録された取引管理レコード２４０を取引管理情報記憶部２４から抽出する。次に、例外処理実行手段２１２は、取引管理レコード２４０において、処理種別に関連付けて、処理結果としてエラーフラグを記録する。そして、例外処理実行手段２１２は、取引管理レコード２４０において完了フラグが記録されている処理種別を、取消対象のフロー情報として特定する。
【００６８】
次に、取引共通システム２０の制御部２１は、取消対象の個別処理の特定処理を実行する（ステップＳ２−２）。具体的には、制御部２１の例外処理実行手段２１２は、取引管理レコード２４０において完了フラグが記録されている処理種別を、取消対象の個別処理として特定する。ここでは、元の取引において個別処理を実行した順番の逆順で、取消対象の個別処理を特定する。
【００６９】
次に、取引共通システム２０の制御部２１は、取消実行ルーチンの呼出処理を実行する（ステップＳ２−３）。具体的には、制御部２１の例外処理実行手段２１２は、特定した取消対象の個別処理の処理種別に対応する取消実行ルーチンを、取消実行ルーチン記憶部２８から呼び出す。そして、例外処理実行手段２１２は、呼び出した取消実行ルーチンにより、取消実行手段Ｂ１を起動する。
【００７０】
この場合、取引共通システム２０の制御部２１は、取引ログの取得処理を実行する（ステップＳ３−１）。具体的には、制御部２１の取消実行手段Ｂ１は、取消対象の処理種別の個別処理を実行するサービス管理サーバ３０にアクセスし、取引ログ記憶部３２から、取引電文コードに関連付けられた取引ログを取得する。
【００７１】
次に、取引共通システム２０の制御部２１は、取消処理を実行する（ステップＳ３−２）。具体的には、制御部２１の取消実行手段Ｂ１は、取得した取引ログに基づいて、個別処理を取り消すための取消要求電文を生成し、サービス管理サーバ３０に送信する。この取消要求電文には、取消対象の個別処理を特定するための情報（取引電文コード、取引種別、取引内容等）を含める。
【００７２】
次に、取引共通システム２０の制御部２１は、取消結果の出力処理を実行する（ステップＳ３−３）。具体的には、取消要求を受信したサービス管理サーバ３０は、取引電文コードに対応した個別処理の取消処理を実行する。そして、サービス管理サーバ３０は、取消処理の結果を含めた取消応答電文を取引共通システム２０に返信する。取引共通システム２０は、サービス管理サーバ３０から、取消要求電文に対する取消応答電文を受信し、例外処理実行手段２１２に対して取消結果を出力する。
【００７３】
次に、取引共通システム２０の制御部２１は、取消結果の取得処理を実行する（ステップＳ２−４）。具体的には、制御部２１の例外処理実行手段２１２は、取引管理レコード２４０において、取り消した処理種別に関連付けて、処理結果として取消フラグを記録する。
【００７４】
次に、取引共通システム２０の制御部２１は、すべてを取り消したかどうかについての判定処理を実行する（ステップＳ２−５）。具体的には、制御部２１の例外処理実行手段２１２は、取引管理レコード２４０において、完了フラグが記録されている処理種別が残っていない場合には、すべてを取り消したと判定する。
【００７５】
ここで、すべてを取り消したと判定した場合（ステップＳ２−５において「ＹＥＳ」の場合）、取引共通システム２０の制御部２１は、システムエラー通知処理を実行する（ステップＳ２−６）。具体的には、制御部２１の例外処理実行手段２１２は、取引管理レコード２４０の取引結果データ領域にエラーフラグを記録し、取引端末１０に対して取引応答電文を送信して取引処理を終了する。この取引応答電文には、システムエラーにより取引を完了できなかったことを示すメッセージを含める。
【００７６】
一方、完了フラグが記録されている処理種別が残っており、すべての取消を終了していないと判定した場合（ステップＳ２−５において「ＮＯ」の場合）、取引共通システム２０の制御部２１は、ステップＳ２−３の処理から繰り返す。
【００７７】
以上、本実施形態によれば、以下のような効果を得ることができる。
（１）本実施形態によれば、処理結果電文において処理結果としてエラーメッセージが含まれており、エラーが発生したと判定した場合（ステップＳ１−５において「ＹＥＳ」の場合）、取引共通システム２０の制御部２１は、業務エラーに基づくフロー取消処理を実行する。ここでは、取引共通システム２０の制御部２１は、取引フローの実行結果の呼出処理（ステップＳ１−７）、取消対象の個別処理の特定処理（ステップＳ１−８）、取消要求の送信処理（ステップＳ１−９）を実行する。これにより、業務エラーが発生した場合には、実行済みの個別処理を取り消して、効率的に元の状態に戻すことができる。
【００７８】
（２）本実施形態によれば、取引共通システム２０の制御部２１は、システムエラーを検出した場合にロールバック取消処理を実行する。これにより、アプリケーション（取引フロー管理手段２１１）によりフロー取消を実行できない場合にも、実行済みの個別処理を取り消して、効率的に元の状態に戻すことができる。
【００７９】
（３）本実施形態によれば、ロールバック取消処理において、取引共通システム２０の制御部２１は、取消実行ルーチンの呼出処理を実行する（ステップＳ２−３）。そして、制御部２１は、取消対象の処理種別の取消実行ルーチンを用いて、取引ログの取得処理（ステップＳ３−１）、取消処理（ステップＳ３−２）、取消結果の出力処理（ステップＳ３−３）を実行する。これにより、アプリケーションの実行環境において設けられている機能を用いて、実行済みの個別処理を取り消すことができる。
【００８０】
（４）本実施形態によれば、取引共通システム２０の制御部２１は、業務エラーに基づくフロー取消処理を実行する。また、制御部２１は、システムエラーを検出した場合には、ロールバック取消処理を実行する。これにより、システムのオペレータにおいて、後続のオペレーションを行なうことなく、取引前の状態に戻すことができる。
また、取引共通システム２０においては、取引管理情報記憶部２４に記録されている情報に基づいて取り消すため、汎用的な一つのフロー取消手段Ａ２を準備することにより、使い回すことができる。システム開発の効率化、メンテナンスビリティを向上させることができる。
一方、サービス管理サーバ３０においては、フロー取消、ロールバック取消の違いはなく、それぞれの取消に応じたカスタマイズを行なうことなく、取消を行なうことができる。
【００８１】
なお、上記実施形態は以下のように変更してもよい。
・上記実施形態では、取引共通システム２０の制御部２１は、取消対象の個別処理の特定処理（ステップＳ１−８、Ｓ２−２）を実行する。この場合、取引管理レコード２４０において完了フラグが記録されている処理種別を、元の取引において個別処理を実行した順番の逆順で、取消対象の個別処理を特定する。この取消順番の特定方法は、取引管理レコード２４０を用いる方法に限定されるものではない。例えば、取引種別を特定して、連携情報記憶部２２に記録されている連携管理レコード２２０を用いて、取消順番を特定することも可能である。
【００８２】
・上記実施形態では、業務エラーにおいてはフロー取消処理を実行し、システムエラーにおいてはロールバック取消処理を実行する。ここで、エラーの内容に応じて、いずれかの取消処理を実行するようにしてもよい。この場合には、制御部２１に、エラーコードやエラー内容に応じて、取消方法（フロー取消又はロールバック取消）を決定するための情報を保持させておく。
【００８３】
・上記実施形態では、ロールバック取消において、取引共通システム２０の制御部２１は、取消対象の個別処理の特定処理を実行する（ステップＳ２−２）。ここで、処理種別に応じて、ロールバック取消の実行可否を判定するようにしてもよい。この場合には、制御部２１に、ロールバック取消の実行可否を判定するためのロールバック取消条件を保持させておく。また、サービス管理サーバ３０の稼動状況に応じてロールバック取消の実行可否を判定するようにしてもよい。この場合には、ロールバック取消条件に、サービス管理サーバ３０の稼動状況を設定しておく。そして、ロールバック取消処理を実行する前に、サービス管理サーバ３０の稼動状況情報を取得し、ロールバック取消条件に基づいて実行可否を判定する。
【００８４】
・上記実施形態では、ロールバック取消において、取引共通システム２０の制御部２１は、取引ログの取得処理（ステップＳ３−１）、取消処理（ステップＳ３−２）を実行する。これに代えて、サービス管理サーバ３０が取引ログを呼び出して、取消を行なうようにしてもよい。この場合には、取引共通システム２０の制御部２１は、取引管理情報記憶部２４に記録されている取引管理レコード２４０に基づいて、実行済みの個別処理（取消対象）を特定する。そして、制御部２１は、この個別処理を行なったサービス管理サーバ３０に取消指示を送信する。取消指示を受信したサービス管理サーバ３０は、取消対象の個別処理についての取引を取り消す。これにより、取引共通システム２０とは異なるサーバにおいて実行される個別処理について、取引の取消を行なうことができる。
【００８５】
・上記実施形態では、取引共通システム２０の制御部２１は、フロー取消処理やロールバック取消処理を実行する。ここで、各取消処理の後で、付加的な処理を追加するようにしてもよい。例えば、付加的な処理としては、自動取消（フロー取消処理やロールバック取消処理）のログを、他の取消ログと識別できるように記録するようにしてもよい。また、特定の個別処理の取消を検知した場合のみ、付加的な処理を実行するようにしてもよい。また、例外処理実行手段２１２がロールバック取消を行なった場合には、付加的な処理として、取引フロー管理手段２１１の再立ち上げを行なうようにしてもよい。
【００８６】
・上記実施形態では、取引共通システム２０の制御部２１は、フロー取消処理やロールバック取消処理を実行する。ここで、フロー取消処理やロールバック取消処理の自動取消処理を失敗した場合に、手動取消を行なう。この場合、取引共通システム２０の制御部２１が、効率的に手動取消を行なえるように、手動取消の支援処理を行なうようにしてもよい。例えば、この手動取消のための情報をディスプレイに出力する。この情報には、手動取消の対象や手順等を含める。
また、取引共通システム２０において、手動取消可能な処理種別を記録したテーブルを保持させておき、自動取消処理を失敗した処理種別において手動取消についての可否を示す情報を含めるようにしてもよい。
【符号の説明】
【００８７】
１０…取引端末、２０…取引共通システム、２１…制御部、２１１…取引フロー管理手段、２１２…例外処理実行手段、Ａ１…取引実行手段、Ａ２…フロー取消手段、Ｂ１…取消実行手段、２２…連携情報記憶部、２４…取引管理情報記憶部、２６…エラー情報記憶部、２８…取消実行ルーチン記憶部、３０…サービス管理サーバ。
【図１】
0005978008.tif 000002
【図２】
0005978008.tif 000003
【図３】
0005978008.tif 000004
【図４】
0005978008.tif 000005
【図５】
0005978008.tif 000006
【図６】
0005978008.tif 000007