(57)【特許請求の範囲】
【請求項１】
複数システム間でデータを授受するための複数データ変換規則から別のデータ変換規則を導出する変換規則導出システムであって、
第１のテーブルを入力テーブルとし、第２のテーブルを出力テーブルとして、該第１のテーブルのデータを該第２のテーブルのデータに変換する第１の変換のために定義した第１の変換規則情報と、
前記第２のテーブルを入力テーブルとし、第３のテーブルを出力テーブルとして、該第２のテーブルのデータを該第３のテーブルのデータに変換する第２の変換のために定義した第２の変換規則情報と、
項目変換規則情報とを入力する変換規則入力部と、
データ項目定義情報を含むデータ形式定義情報を入力するデータ定義入力部と、
該入力した第１の変換規則情報と第２の変換規則情報、項目変換規則情報に基づき、前記第１のテーブルのデータを前記第３のテーブルのデータに変換する第３の変換のために定義した項目変換規則情報及び第３の変換規則情報を導出する変換規則導出部と、
前記変換規則入力部から入力した情報と前記変換規則導出部より既に得られた変換規則を記述した項目変換規則情報を記憶するメモリと、
前記データ定義入力部から入力されたデータ項目定義情報を記憶するメモリを有し、
前記データ項目定義情報は、前記第１のテーブル及び前記第２のテーブルの各データ項目について、データ項目ＩＤ、データ項目名、所属テーブルおよびキー項目フラグを有する複数のレコードを有し、
前記変換規則情報は、前記第１の変換及び前記第２の変換それぞれに対応して、変換規則ＩＤ、変換規則名、入力テーブルおよび出力テーブルを有する複数のレコードを有し、
前記項目変換規則情報は、前記第１の変換及び前記第２の変換の各出力項目について、項目変換規則ＩＤ、変換規則（変換規則ＩＤ）、出力項目（データ項目ＩＤ）および出力算出式を有する複数のレコードを有し、
前記変換規則導出部は、前記変換規則情報における第２の変換規則情報の変換規則ＩＤ（Ｒ００２：このカッコ内の記載は実施例との対応を明らかにするための記載である。以下同じ）と同じ変換規則ＩＤを有する前記項目変換規則情報中のレコードを１つ読み出し、該レコード中の項目変換規則ＩＤ（Ｄ００５）を変数Ｄｉに記憶し〈ステップ１〉、
該変数Ｄｉに記憶した項目変換規則ＩＤ（Ｄ００５）を有する前記項目変換規則情報中のレコードにおける出力算出式（Ａ００５）を変数Ｘに記憶し〈ステップ２〉、
変数Ｘに記憶した出力算出式（Ａ００５）中のデータ項目ＩＤを１つ取り出し（Ａ００５）、変数Ａｉに記憶し〈ステップ３〉、
前記項目変換規則情報中に前記第１の変換規則情報の変換規則ＩＤ（Ｒ００１）に等しく、かつ出力項目が前記変数Ａｉ（Ａ００５）に等しいレコードが存在するか調べ、存在すればそのレコードの項目変換規則ＩＤ（Ｄ００１）を変数Ｄｊに記憶し〈ステップ４〉、
前記変数Ｘ（Ａ００５）中の前記変数Ａｉ（Ａ００５）を前記変数Ｄｊの項目変換規則ＩＤ（Ｄ００１）を有する前記項目変換規則情報中のレコードにおける出力算出式（Ａ００１）で置換し〈ステップ５〉、
前記変数Ｘに記憶した出力算出式中のデータ項目ＩＤが複数ある場合、残りの全てのデータ項目ＩＤについてステップ３〜ステップ５を繰り返し実行し〈ステップ６〉、
ステップ１〜６で得られた、出力項目がＤｉの出力項目（Ａ００９）、出力算出式がＸ（Ａ００１）、新たな変換規則がＲｎ（Ｒ００３）となるレコードを第３の変換のための項目変換規則情報として導出し、項目変換規則情報に追加し〈ステップ７〉、
前記第２の変換規則情報の変換規則ＩＤと同じ変換規則ＩＤを有する前記項目変換規則情報中のレコードが複数ある場合、残りの全てのレコードについてステップ１〜ステップ７を繰り返し実行する〈ステップ８〉、からなるステップ１〜８の処理を実行する、ことを特徴とする変換規則導出システム。
【請求項２】
請求項１記載の変換規則導出システムにおいて、
前記変換規則入力部は、さらに前記第１のテーブルにおけるレコードのうち前記第２のテーブルへの変換対象とするレコードを選択するための条件式である第１の抽出規則情報と、前記第２のテーブルにおけるレコードのうち、前記第３のテーブルへの変換対象とするレコードを選択するための条件式である第２の抽出規則情報とを入力し、
前記抽出規則情報は、抽出規則ＩＤ、変換規則ＩＤおよび抽出条件を有する複数のレコードを有し、
前記変換規則導出部は、さらに、前記抽出規則情報中で変換規則ＩＤが前記第２の変換規則情報の変換規則ＩＤ（Ｒ００２）と同じ抽出規則情報のレコードを１つ読み出し、このレコードにおける抽出規則ＩＤ（Ｅ００１）を変数ｅｉに記憶し〈ステップ１〉、
前記ｅｉに記憶されたレコードにおける抽出条件に記憶されている文字列（Ａ００８＝＝‘０３’）を変数ｘに記憶し〈ステップ２〉、
変数ｘに記憶している文字列中に現れるデータ項目ＩＤを１つ（Ａ００８）取り出し、変数ａｉに記憶し〈ステップ３〉、
前記項目変換規則情報中で、変換規則が第１の変換規則（Ｒ００１）に等しく、かつ出力項目ＩＤが変数ａｉに記憶したデータ項目ＩＤに等しいレコードの存在を調べ、存在すればそのレコードの項目変換規則ＩＤを変数ｄｊに記憶し〈ステップ４〉、
変数ｘの値である文字列中に含まれるデータ項目ＩＤすなわち変数ａｉ（Ａ００８）を、変数ｄｊの出力算出式（ＳｔｒＣｈｏｐ（０，２，“Ａ００１”）＝＝‘０３’）で置換し〈ステップ５〉、
変数ｘ中に含まれる未処理のデータ項目がある場合には〈ステップ３〉に戻り、ない場合には次ぎの〈ステップ７〉に移る〈ステップ６〉、
新たな変換規則ＩＤがＲｎ（Ｒ００３）で、抽出条件が変数ｘ（ＳｔｒＣｈｏｐ（０，２，“Ａ００１”）＝＝‘０３’）であるレコードを第３の抽出規則情報として前記抽出規則情報に追加し〈ステップ７〉、
前記抽出規則情報中で変換規則ＩＤが前記第２の変換規則のレコードにおける抽出規則ＩＤと同じ抽出規則情報のレコードが複数ある場合、残りの全てのレコードについてステップ１〜ステップ７を繰り返し実行する〈ステップ８〉、からなるステップ１〜８の処理を実行する、ことを特徴とする変換規則導出システム。
【請求項３】
請求項１記載の変換規則導出システムにおいて、
前記変換規則導出手段が導出した前記第３の変換のための項目変換規則情報を入力とし、前記第１のテーブルからレコードを取り出し、取り出した各レコードの各データ項目値に前記第３の変換のための項目変換規則情報を適用することにより前記第３のテーブルのデータ項目それぞれについてデータ項目値を計算し、結果として得られるデータ項目値の組をレコードとして該第３のテーブルに追加することにより該第１のテーブルから該第３のテーブルへのデータ変換処理を実行する変換規則実行部をさらに有することを特徴とする変換規則導出システム。
【請求項４】
請求項２記載の変換規則導出システムにおいて、
前記変換規則導出部が導出した前記第３の変換のための項目変換規則情報と前記第３の抽出規則情報とを入力とし、前記第１のテーブルから該第３の抽出規則情報に定義した条件式に適合するレコードを取り出し、取り出した各レコードの各データ項目値に該第３の変換のための項目変換規則情報に定義した計算式を適用することにより前記第３のテーブルのデータ項目それぞれについてデータ項目値を計算し、結果として得られるデータ項目値の組をレコードとして該第３のテーブルに追加することにより該第１のテーブルから該第３のテーブルへのデータ変換処理を実行する変換規則実行部をさらに有することを特徴とする変換規則導出システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、異種の複数システムを連携させることにより複合システムを開発する上で必要となる、異種システム間のデータの授受に関わるデータ変換規則の導出技術、およびそのデータ変換の実現技術に関する。
【０００２】
【従来の技術】
近年、既存の異種システムを連携させることにより、新たな業務機能を提供する複合システムを短期間・低コストで構築する技術が注目されている。
異種システムそれぞれにおいては、扱うデータのデータ構造、型、およびコード体系といったデータ形式が異なるため、異種システム間でデータをやり取りさせるためには、異種システム間でのデータ形式の変換が不可欠となる。
このため、開発者が定義した異種システム間におけるデータ変換の規則に従ってデータ変換を行う技術や、データ変換規則に従ったデータ変換を行うプログラムを自動生成する技術があった。
【０００３】
これらの技術では、例えば互いに異なるシステムＡからシステムＢにデータにデータをシステムＡおよびシステムＢのデータ形式をスキーマとして読み込み、複合システムの開発者がシステムＡにおけるデータ項目とシステムＢにおけるデータ項目との間の対応をとることによって変換規則を定義する。
しかし、このデータ項目間の対応を取るためには、システムＡおよびシステムＢのデータ形式に関する知識が開発者に必要とされる。
また、新たにシステムＡからデータを受け取るシステムＣを導入し、システムＡとシステムＣを連携させる場合は、システムＡとシステムＣの両者のデータ形式の知識をもった複合システムの開発者がデータ項目間の対応をとる作業を行う必要がある。
さらに、この状態でシステムＡをシステムＡ’に変更することになれば、上記のシステムＡのデータ形式とシステムＢのデータ形式の変換規則の定義、およびシステムＡのデータ形式とシステムＣのデータ形式の変換規則の定義はいずれもシステムＡ’に対応するように変更する必要が生ずる。
【０００４】
このため、例えば米国特許5708828に見られるように、システムＡのデータ形式をシステムＢのデータ形式に変換する際に、複合システムの開発者が定義した汎用的、共通的な形式の中間データを設け、複合システムの開発者が定義した、システムＡのデータ形式から中間データの形式への変換規則を基に、システムＡのデータを中間データに一旦変換し、さらに開発者が定義した、中間データの形式からシステムＢのデータ形式への変換規則を基に、中間データからシステムＢのデータに変換を行う技術があった。
この技術によれば、複合システムの開発者は複合システムの開発者自身が定義した中間データの形式と連携対象の各システムのデータ形式との変換規則の定義を行う。
このため、システムＡに関する知識を持つ複合システムの開発者がシステムＡのデータ形式と中間データの形式との変換規則の定義を行い、システムＢに関する知識を持つ複合システムの開発者が中間データの形式とシステムＢのデータ形式の変換規則の定義を行う、という作業形態が可能となり、個々の開発者が連携に関わるすべてのシステムに関する知識を持つ必要がないだけでなく、これらの作業は同時並行に進めることが可能となる。
また、システムＡからデータを受け取るシステムがシステムＢ、およびシステムＣと複数存在した場合に、システムＡを新システムＡ’に変更しても、システムＡのデータ形式と中間データの形式との変換規則のみを変更すれば良いことになる。
【０００５】
【発明が解決しようとする課題】
しかし、このように中間形式のデータを一旦作成する技術では、特に多数のレコードからなる大量のデータを異種システム間でやり取りする場合には、多量のデータを中間形式として保存するための記憶領域を確保する必要があるという問題があった。
また、変換を２度行うために処理に２倍程度コストがかかる、といった問題があった。
また、システムＡからデータを受け取るシステムがシステムＢ、およびシステムＣと複数存在し、これらがいずれもシステムＡに存在する最新のデータを必要とする場合、システムＡのデータのうち、システムＢおよびシステムＣが必ずしも必要としないデータについても中間データに変換することとなり、変換処理に要するコストが大きい、という問題があった。
また、システムＡから中間データへの変換を１回のみ行い、その結果として得られる中間データからシステムＢおよびシステムＣのデータへの変換を行った場合には、システムＢおよびシステムＣが受け取るデータは過去のある時点、すなわちシステムＡのデータを中間データ形式に変換した時点のシステムＡのデータとなり、システムＢおよびシステムＣは最新のデータを受け取ることができなかった。
本発明の課題は、複合システムの開発者が定義および保守の容易な方法で異種システム間のデータ変換規則を定義でき、かつ異種システム間のデータ変換を直接行う場合と変わらない処理コストで変換処理を実行することにある。
【０００６】
【課題を解決するための手段】
上記課題を解決するため、本発明は、
複数システム間でデータを授受するための複数のデータ変換規則から別のデータ変換規則を導出する変換規則導出システムであり、
第１のデータ形式のデータを第２のデータ形式のデータに変換するための規則を定義した第１の変換規則と、該第２のデータ形式のデータを第３のデータ形式のデータに変換するための規則を定義した第２の変換規則とを入力する入力部と、
該入力した第１の変換規則と第２の変換規則に基づき、前記第１のデータ形式のデータを前記第３のデータ形式のデータに変換するための変換規則を導出する変換規則導出部を有するようにしている。
【０００７】
また、複数システム間でデータを授受するための複数のデータ変換規則から別のデータ変換規則を導出する変換規則導出システムであり、
第１のテーブルのデータを第２のテーブルのデータに変換するために該第１のテーブルのデータ項目および該第２テーブルのデータ項目を用いて定義した第１の変換規則と、該第２のテーブルのデータを第３のテーブルのデータに変換するために該第２のテーブルのデータ項目および該第３のテーブルのデータ項目を用いて定義した第２の変換規則とを入力する入力部と、
該入力した第１の変換規則と第２の変換規則に基づき、前記第１のテーブルのデータを前記第３のテーブルのデータに変換するための、前記第１のテーブルのデータ項目および前記第３テーブルのデータ項目を用いて定義した第３の変換規則を導出する変換規則導出部を有するようにしている。
【０００８】
また、前記第１のテーブルの第１のデータ項目を表す第１のアイコンを入力する第１の手段およびこれを表示する手段と、前記第２のテーブルの第２のデータ項目を表す第２のアイコンを入力する第２の手段およびこれを表示する手段と、該第１のアイコンを始点とし、該第２のアイコンを終点とする、該第１のデータ項目と該第２のデータ項目との対応を表す始点と終点を持つ第３のアイコンを入力する第３の手段およびこれを表示する手段を有する変換規則入力部をさらに有するようにしている。
【０００９】
また、前記変換規則導出手段が導出した第３の変換規則を入力とし、前記第１のテーブルからレコードを取り出し、取り出した各レコードの各データ項目値に前記第３の変換規則を適用することにより前記第３のテーブルのデータ項目それぞれについてデータ項目値を計算し、結果として得られるデータ項目値の組をレコードとして該第３のテーブルに追加することにより該第１のテーブルから該第３のテーブルへのデータ変換処理を実行する変換規則実行部をさらに有するようにしている。
【００１０】
また、前記第１および前記第２の変換規則を前記第１、第２および第３のアイコンを用いて同一画面上に表示する手段と、該第１および該第２の変換規則を用いて前記第３の変換規則の導出を前記変換規則導出部に指示するための第４の手段と、該変換規則導出部が導出した該第３の変換規則を該第１、該第２および該第３のアイコンを用いて表示する手段とをさらに有するようにしている。
【００１１】
また、前記変換規則導出部が導出した前記第３の変換規則を入力とし、前記第１のテーブルからレコードを取り出し、取り出した各レコードの各データ項目値に該第３の変換規則を適用することにより前記第３のテーブルのデータ項目それぞれについてデータ項目値を計算し、結果として得られるデータ項目値の組をレコードとして該第３のテーブルに追加することによって該第１のテーブルから該第３のテーブルへのデータ変換処理を実行する変換規則実行部をさらに有するようにしている。
【００１２】
また、複数システム間でテーブル形式のデータを授受するための複数のデータ変換規則から別のデータ変換規則を導出する変換規則導出システムであり、
第１のテーブルのデータを第２のテーブルのデータに変換するために該第１のテーブルのデータ項目を用いて該第２のテーブルのデータ項目ごとに定義した計算式である第１の変換規則と、
該第１のテーブルにおけるレコードのうち該第２のテーブルへの変換対象とするレコードを選択するための条件式である第１の抽出規則と、
該第２のテーブルのデータを第３のテーブルのデータに変換するために該第２のテーブルのデータ項目を用いて該第３のテーブルのデータ項目ごとに定義した計算式である第２の変換規則と、
該第２のテーブルにおけるレコードのうち、該第３のテーブルへの変換対象とするレコードを選択するための条件式である第２の抽出規則とを入力する入力部と、
該入力した第１の変換規則と第１の抽出規則と第２の変換規則と第２の抽出規則に基づき、前記第１のテーブルのデータを前記第３のテーブルのデータに変換するために前記第１のテーブルのデータ項目を用いて前記第３のテーブルのデータ項目ごとに定義した計算式である第３の変換規則と、前記第１のテーブルにおけるレコードのうち前記第３のテーブルへの変換対象とするレコードを選択するための条件式である第３の抽出規則とを導出する変換規則導出部を有するようにしている。
【００１３】
また、前記第１の変換規則および前記第１の抽出規則の定義手段として、前記第１のテーブルの第１のデータ項目を表す第１のアイコンを入力する第１の手段およびこれを表示する手段と、前記第２のテーブルの第２のデータ項目を表す第２のアイコンを入力する第２の手段およびこれを表示する手段と、該第１のアイコンを始点とし、該第２のアイコンを終点とする、該第１のデータ項目と該第２のデータ項目との対応を表す始点と終点を持つ第３のアイコンを入力する第３の手段およびこれを表示する手段と、該第３のアイコンに対して、該第１のデータ項目の項目値から該第２のデータ項目の項目値を算出する計算式を入力するための第４の手段と、該第１の抽出規則を入力する第５の手段とを有する変換規則入力部をさらに有するようにしている。
【００１４】
また、前記変換規則導出部が導出した前記第３の変換規則と前記第３の抽出規則とを入力とし、前記第１のテーブルから該第３の抽出規則に定義した条件式に適合するレコードを取り出し、取り出した各レコードの各データ項目値に該第３の変換規則に定義した計算式を適用することにより前記第３のテーブルのデータ項目それぞれについてデータ項目値を計算し、結果として得られるデータ項目値の組をレコードとして該第３のテーブルに追加することにより該第１のテーブルから該第３のテーブルへのデータ変換処理を実行する変換規則実行部をさらに有するようにしている。
【００１５】
また、前記第１および前記第２の変換規則を前記第１、第２および第３のアイコンを用いて同一画面上に表示する手段と、該第１および該第２の変換規則を用いて該第３の変換規則の導出を前記変換規則導出部に指示するための第６の手段と、該変換規則導出部が導出した前記第３の変換規則を該第１、該第２および該第３のアイコンを用いて表示する手段と、該変換規則導出部が導出した前記第３の抽出規則を表示する手段をさらに有するようにしている。
【００１６】
また、前記変換規則導出部が導出した前記第３の変換規則と前記第３の抽出規則とを入力とし、前記第１のテーブルから該第３の抽出規則に定義した条件式に適合するレコードを取り出し、取り出した各レコードの各データ項目値に該第３の変換規則に定義した計算式を適用することにより前記第３のテーブルのデータ項目それぞれについてデータ項目値を計算し、結果として得られるデータ項目値の組をレコードとして該第３のテーブルに追加することにより該第１のテーブルから該第３のテーブルへのデータ変換処理を実行する変換規則実行部をさらに有するようにしている。
【００１７】
【発明の実施の形態】
以下、本発明の実施の形態を図面を用いて詳細に記述する。
図１は、本発明を異なるシステム間でのデータの受け渡しに適用した場合の実施例を示すブロック図である。
図１において、１、２、および３は、プログラムに基づく逐次実行機能を有するＣＰＵ、プログラムおよびデータを実行時に記憶するメモリ、プログラムおよびデータを記録する磁気記憶装置、キーボードとテレビ画面を有する入出力装置、およびネットワークよりデータを入出力するためのネットワークアダプタを備えた、コンピュータ１、コンピュータ２、およびコンピュータ３である。
４は、コンピュータ１、コンピュータ２、およびコンピュータ３が互いにデータを授受するためのネットワークであり、コンピュータ１、コンピュータ２、およびコンピュータ３のネットワークアダプタに接続されている。
【００１８】
１００は、コンピュータ１において動作し、開発者がデータ形式の定義を入力するための、データ定義入力部である。
１０１は、コンピュータ１に存在し、開発者が１００を用いて入力したデータ形式の定義を記憶する、データ形式定義情報であり、後述するテーブル定義情報およびデータ項目定義情報からなる。
１０２は、コンピュータ１において動作し、開発者がある第１のデータ形式からある第２のデータ形式に変換する変換規則を入力するための、変換規則入力部である。
１０３は、コンピュータ１に存在し、開発者が１０２を用いて入力した変換規則、および後述する変換規則導出部１１０が導出した変換規則を記憶する変換規則定義情報であり、後述する変換規則情報、抽出規則情報、および項目変換規則情報からなる。
【００１９】
１０４は、コンピュータ２において動作するアプリケーションプログラム１であり、他のコンピュータ上のプログラムからネットワークを介して１０４にアクセスする手段を有する。
１０５は、１０４が用いるデータを記憶するデータベース１であり、１０５のデータの参照、更新、追加、および削除はすべて１０４を介して行う。
１０６は、コンピュータ３において動作するアプリケーションプログラム２であり、他のコンピュータ上のプログラムからネットワークを介して１０６にアクセスする手段を有する。
１０７は、１０６が用いるデータを記憶するデータベース２であり、１０７のデータの参照、更新、追加、および削除はすべて１０６を介して行う。
【００２０】
１０８は、コンピュータ１において動作し、アプリケーションプログラム１とネットワークを介して通信し、データベース１のデータの参照を行うためのアダプタ１であり、データベース１のテーブルと条件を指定すると、該条件に該当する該テーブル内のレコードを検索するインタフェース、この検索結果からレコードのデータを一つずつ取り出すインタフェース、およびテーブルと条件とデータ項目を指定すると、該条件に該当する該テーブルの該データ項目の値を返すインタフェースを有する。
１０９は、コンピュータ１において動作し、アプリケーションプログラム２とネットワークを介して通信してデータベース２のデータの追加を行うためのアダプタ２であり、データベース２のテーブルに対してレコードを登録するインタフェースを有する。
１１０は、コンピュータ１において動作し、開発者が１０２を用いて定義した変換規則を用いて、さらに別の変換規則を導出する、変換規則導出部である。
１１１は、コンピュータ１において動作し、１０３に記憶した変換規則に従ってデータの変換を実行する変換規則実行部である。
【００２１】
次に、図３から図１０を用いて、本実施例において例として用いるデータについて説明する。
図３および図４は、データ形式定義情報（１０１）の内容の一例を示したものである。
図３は、本実施例におけるテーブル定義情報の例であり、本実施例においてデータの変換に係るデータを保持するテーブルを一意に識別するためのテーブルＩＤ（３１）と、該テーブルの名称であるテーブル名（３２）と、該テーブルを管理するアプリケーションプログラムと通信して該テーブルにアクセスするためのアダプタを一意に識別するアダプタＩＤ（３３）との対応を保持する。
【００２２】
図４は、本実施例におけるデータ項目定義情報の例であり、本実施例においてデータの変換に係るデータを保持するテーブルのデータ項目を一意に識別するためのデータ項目ＩＤ（４１）と、該データ項目の名前であるデータ項目名（４２）と、該データ項目の所属するテーブルの識別子である所属テーブル（４３）と、該データ項目が所属テーブルにおいてキー項目であれば値’Ｔ’を、キー項目でなければ値’Ｆ’を設定するキー項目フラグ（４４）との対応を保持する。
【００２３】
図５から図７は、変換規則定義情報（１０３）の内容の一例を示したものである。
図５は、変換規則情報の例であり、変換規則を一意に識別するための識別子である変換規則ＩＤ（５１）と、該変換規則の名前である変換規則名（５２）と、該変換規則において変換元のデータを保持するテーブルの識別子である基準入力テーブル（５３）と、該変換規則において図２のフローチャートで変換結果を出力する先のテーブルの識別子である出力テーブル（５４）との対応を保持する。
【００２４】
図６は、抽出規則情報の例であり、基準テーブル上のレコードのうち、データ変換の対象となるレコードを抽出するための条件を一意に識別するための識別子である抽出規則ＩＤ（６１）と、該抽出規則を適用する変換規則の識別子である変換規則（６２）と、該抽出規則の評価に用いるデータを保持する基準テーブル上のデータ項目の識別子を用いて記述した条件式である抽出条件（６３）との対応を保持する。
【００２５】
図７は、項目変換規則情報の例であり、基準テーブル上のデータ項目、もしくはそれから算出される値が出力テーブルのどの項目に代入するかを示す項目変換規則を一意に識別するための項目変換規則ＩＤ（７１）と、該項目変換規則を適用する変換規則の識別子である変換規則（７２）と、出力データ項目の識別子である出力データ項目（７３）と、出力データ項目に代入すべき基準入力テーブルのデータ項目もしくは基準入力テーブルのデータ項目を用いて記述した算出式を保持する出力算出式（７４）との対応を保持する。
【００２６】
図８および図９は、図１のデータベース１（１０５）に存在し、アプリケーションプログラム１の処理実行において利用されるテーブルとその内容の例を示すものである。
図８は、組織テーブル１とその内容の例であり、組織コードと組織名の対応を保持する。
図９は、組織構成テーブルとその内容の例であり、ある組織の組織コードと、該組織が所属する上位組織の組織コードとの対応を保持する。
本実施例では、ある組織の組織コードの上位２桁は、該組織が所属する事業所コードものとする。
すなわち、図９において、組織コードの上位２桁が’０１’である組織は’東京本社’に属する組織であり、組織コードの上位２桁が’０３’である組織は’”横浜支社”に属する組織をあらわすものとする。
図１０は、図１のデータベース２（１０７）に存在し、アプリケーションプログラム２の処理実行において利用されるテーブルを示すものであり、ある組織の組織コードと、該組織の組織名と、該組織が所属する上位組織の組織コードとの対応を保持する。
【００２７】
本実施例では、ある作業者が、図１のデータベース１に存在する、図８および図９のデータから”横浜支社”に属する組織に関するデータをアプリケーションプログラム１およびアダプタ１を介して取り出し、アプリケーションプログラム２のデータ形式、すなわち図１０に示したデータ形式に変換した上で、アプリケーションプログラム２およびアダプタ２を介してデータベース２に格納する処理を実施する場合を例として説明する。
【００２８】
この時作業者は、まず、中間データ形式を定義し、図８および図９のアプリケーションプログラム１のデータ形式から該中間データ形式への第１の変換規則を定義し、該中間データ形式からアプリケーションプログラム２のデータ形式への第２の変換規則を定義した上で、コンピュータ１上の変換規則導出部に図２の変換規則導出処理を実行させることによって、図８およびおよび図９のアプリケーションプログラム１のデータ形式からアプリケーションプログラム２のデータ形式への第３の変換規則を作成する。
作業者は、上記手順によって作成した第３の変換規則を変換規則実行部に図３０に示す変換規則実行処理を実行させることによって、図８および図９のデータを図１０のデータ形式に変換し、アプリケーションプログラム２を介してデータベース２に格納することができる。
【００２９】
以下、図３から図１０のデータの例を用いて、変換規則導出部（１１０）が実行する、図２に示す変換規則導出処理をまず説明し、
続いて本実施例におけるデータ定義入力部が実行する、図１４に示すデータ定義入力処理およびそのユーザインタフェースであるデータ定義画面例を説明し、次に本実施例における変換規則入力部が実行する、図１９に示す変換規則定義処理およびそのユーザインタフェースである変換規則定義画面例を説明し、
変換規則導出部のユーザインタフェース画面の例を説明し、
最後に、変換規則実行部が、本実施例で示した変換規則を用いてデータ変換処理を実行する、図３０に示す変換規則実行処理を詳細に説明する。
【００３０】
まず、図３から図７のデータの例を用いて、図２のフローチャートで示した変換規則導出処理を説明する。
図２のフローチャートで示す処理では、変換の入力となるテーブルから中間データへの変換規則Ｒｉと、該中間データから変換の出力となるデータへの変換規則Ｒｅとを指定して該処理を起動すると、ＲｉとＲｅから中間データを除いて、Ｒｉの入力となるテーブルからＲｅの出力となるテーブルへデータを直接変換する変換規則Ｒｎを導出する。
ここでは、作業者がＲｉとして図５において変換規則ＩＤが’Ｒ００１’であるレコードを、Ｒｅとして図５において変換規則ＩＤが’Ｒ００２’であるレコードを、それぞれ指定した例を用いて説明する。
この例において、図２の処理は、変換規則ＩＤが‘Ｒ００１’である第１の変換規則と、変換規則ＩＤが‘Ｒ００２’である第２の変換規則を入力として、第１の変換規則と第２の変換規則を結合した第３の変換規則を導出する。
【００３１】
まず、２０１では、基準入力テーブルがＲｉの基準入力テーブルであり、出力テーブルがＲｅの出力テーブルである、新しいレコードを図５に示す変換規則情報に追加する。
ここでは、Ｒｉが‘Ｒ００１’であるので、図５より変換規則ＩＤが‘Ｒ００１’のレコードの基準入力テーブルは‘Ｔ００１’であり、したがって、Ｒｉの基準入力テーブルは‘Ｔ００１’である。
また、Ｒｅは‘Ｒ００２’であるので、図５より変換規則ＩＤが‘Ｒ００２’のレコードの出力テーブルは‘Ｔ００４’であり、したがって、Ｒｅの出力テーブルは‘Ｔ００４’である。
したがって、基準入力テーブルが’Ｔ００１’、出力テーブルが’Ｔ００４’のレコードを図５に示す変換規則情報に追加する。
このとき、追加したレコードには、他の変換規則と重ならない一意の変換規則ＩＤを付与し、これをＲｎに記憶する。
ここでは変換規則ＩＤとして’Ｒ００３’を付与しレコードを追加するものとして説明する。
またここで、変換規則名は空の文字列を設定する。
２０１の処理により、図５の変換規則情報に挿入するレコードの例を図１１に示す。
【００３２】
２０２から２０９までのループでは、図７の項目変換規則情報中で変換規則（７２）がＲｅの変換規則ＩＤに等しいレコードそれぞれについて、ループ内の処理を実行する。
まず、２０２では、図７の項目変換規則情報中で変換規則（７２）がＲｅの変換規則ＩＤに等しいレコードを１つ取り出し、この項目変換規則ＩＤを変数Ｄｉに記憶する。
ここでは、Ｒｅが‘Ｒ００２’であるため、図７において、項目変換規則ＩＤがそれぞれ’Ｄ００５’、’Ｄ００６’、および’Ｄ００７’のレコードがこれに該当する。
【００３３】
以下、２０３から２０８までの処理を、項目変換規則ＩＤ‘Ｄ００５’をＤｉに記憶した場合について説明する。
２０３では、図７の項目変換規則中で、項目変換規則ＩＤがＤｉであるレコードの出力算出式に記憶されている文字列を変数Ｘに記憶する。
ここでは、変換規則ＩＤが‘Ｄ００５’のレコードの出力算出式は図７より‘Ａ００５’であるので、Ｘに‘Ａ００５’という文字列を代入する。
２０４から２０７までのループでは、ＸすなわちＤｉの出力算出式の文字列中に現れるデータ項目ＩＤそれぞれについて、ループ内の処理を繰り返す。
まず、２０４では、ＸすなわちＤｉの出力算出式の文字列中に現れるデータ項目ＩＤを１つ取り出し、これを変数Ａｉに記憶する。
ここで示す例では、Ｘに記憶している文字列中で、データ項目ＩＤを示すものは‘Ａ００５’であり、したがって変数Ａｉには‘Ａ００５’を記憶する。
２０５では、図７の項目変換規則情報中で、変換規則がＲｉに等しく、かつ出力項目がＡｉに等しいレコードが存在するかどうかを調べ、存在すればそのレコードの項目変換規則ＩＤをＤｊに記憶して２０６以降の処理を実行し、存在しなければ、後述する２１８以降の処理を実行する。
ここで示す例では、Ｒｉの値が‘Ｒ００１’、Ａｉの値が‘Ａ００５’であり、図７の項目変換規則情報中で、変換規則が‘Ｒ００１’、出力項目が‘Ａ００５’に該当するレコードの項目変換規則ＩＤは‘Ｄ００１’であるので、‘Ｄ００１’をＤｊに記憶する。
次に２０６では、Ｘの値である文字列中に含まれるデータ項目ＩＤすなわちＡｉを、Ｄｊの出力算出式で置換する。
ここで示す例では、Ｘが‘Ａ００５’、Ａｉが‘Ａ００５’であり、図７の項目変換規則情報中で項目変換規則ＩＤがＤｊ、すなわち‘Ｄ００１’となるレコードの出力算出式は‘Ａ００１’であるため、Ｘ中の文字列‘Ａ００５’を‘Ａ００１’で置換する。
この結果、Ｘの値は‘Ａ００１’となる。
【００３４】
２０７は２０４で開始されるループの終端であり、Ｘに記憶している文字列中に複数のデータ項目ＩＤが含まれている場合に、Ｘに記憶している文字列中に含まれるすべてのデータ項目ＩＤについて、２０４から２０６までの処理を繰り返す。
ここで示す例では、２０６のステップで文字列の置換を行う前のＸの値は‘Ａ００５’であり、１つのデータ項目ＩＤしか含んでいないため、Ｘに記憶している文字列中のすべてのデータ項目ＩＤを処理したこととなり、したがって２０８の処理に移る。
【００３５】
２０８では、変換規則がＲｎ、出力項目がＤｉの出力項目、出力算出式がＸとなるレコードを図７に示す項目変換規則情報に追加する。このとき、項目変換規則ＩＤについては、他のレコードと重複しない一意の値を付与する。
ここで示す例では、Ｒｎが‘Ｒ００３’、項目変換規則情報中で項目変換規則ＩＤがＤｉすなわち‘Ｄ００５’となるレコードの出力項目が‘Ａ００９’、Ｘが‘Ａ００１’であるので、変換規則が‘Ｒ００３’、出力項目が‘Ａ００９’、出力算出式が‘Ａ００１’であるレコードを図７に示す項目変換規則情報に追加する。
【００３６】
２０９は２０２で開始されるループの終端であり、２０２から２０８までの処理を、図７の項目変換規則情報中で変換規則がＲｅの変換規則ＩＤに等しい項目変換規則Ｄｉについて繰り返す。
ここで示す例では、ステップ２０２の説明で既に示したように、変換規則がＲｅである項目変換規則情報のレコードは３つあるので、残り２つのレコード、すなわち図７の項目変換規則情報中で、項目変換規則ＩＤが‘Ｄ００６’および‘Ｄ００７’のレコードについて、ステップ２０２から２０８までの処理を実行する。
【００３７】
図１３に、結果として追加される項目変換規則情報のレコードを示す。
図１３において、項目変換規則ＩＤが‘Ｄ００８’であるレコードは、ステップ２０２において‘Ｄ００５’をＤｉに記憶した場合にステップ２０８で項目変換規則情報に追加するレコードであり、項目変換規則ＩＤが‘Ｄ００９’であるレコードは、ステップ２０２において‘Ｄ００６’をＤｉに記憶した場合にステップ２０８で項目変換規則情報に追加するレコードであり、項目変換規則ＩＤが‘Ｄ０１０’であるレコードは、ステップ２０２において‘Ｄ００７’をＤｉに記憶した場合にステップ２０８で項目変換規則情報に追加するレコードである。
【００３８】
ここで、図１３の項目変換規則ＩＤが‘Ｄ０１０’のレコードの出力算出式におけるｇｅｔＲｅｆは、変換実行時において基準入力テーブル以外のテーブルのレコードの値を参照するための関数で、第１引数に関数の返値となるデータ項目ＩＤ、第２引数に参照するテーブルＩＤ、第３引数に第２引数で示されるテーブル中でレコードを一意に識別するための条件式を与えることによって、第３引数によって示される条件により一意に識別された第２引数のテーブル中のレコードの第１引数で示されるデータ項目の値を返すものである。
つまり、‘ｇｅｔＲｅｆ（“Ａ００４”，“Ｔ００２”，“Ａ００３＝＝Ａ００１”）’は、テーブルＩＤ‘Ｔ００２’で示されるテーブルから、‘Ａ００３＝＝Ａ００１’という式で示される条件によりレコードを一意に識別し、その結果として選らばれるレコードにおけるデータ項目ＩＤ‘Ａ００１’で示されるデータ項目の値を返す出力算出式を表す。
【００３９】
２１０から２１７では、２０２から２０９と同様の処理を、図６に示す抽出規則情報のレコードに対して行う。
すなわち、２１０から２１７までのループでは、図６に示す抽出規則情報中で変換規則がＲｅの変換規則ＩＤに等しい抽出規則情報のレコードそれぞれについて、ループ内の処理を実行する。
まず、２１０では、図６の抽出規則情報中で変換規則がＲｅの変換規則に等しいレコードを１つ取り出し、この抽出規則ＩＤを変数Ｅｉに記憶する。
ここで示す例では、Ｒｅは‘Ｒ００２’であり、図６中の唯一のレコードである、抽出規則ＩＤが‘Ｅ００１’のレコードがこれに該当するため、このレコードの項目変換規則ＩＤをＥｉに記憶する。
２１１では、Ｅｉの抽出条件に記憶されている文字列を変数Ｘに記憶する。
ここで示す例では、抽出規則情報中で抽出規則ＩＤがＥｉすなわち‘Ｅ００１’であるレコードの抽出条件は、“Ａ００８＝＝‘０３’”であり、この文字列をＸに記憶する。
【００４０】
２１２から２１５までのループでは、ＸすなわちＥｉの抽出条件の文字列中に現れるデータ項目ＩＤそれぞれについて、ループ内の処理を実行する。
まず２１２では、Ｘに記憶している文字列中に現れるデータ項目ＩＤを１つとりだし、変数Ａｉに記憶する。
ここで示す例では、Ｘが記憶している文字列は“Ａ００８＝＝‘０３’”であり、この文字列中の‘Ａ００８’がデータ項目ＩＤを表す文字列であるので、これを変数Ａｉに記憶する。
２１３では、図７の項目変換規則情報中で、変換規則がＲｉに等しく、かつ出力項目がＡｉに等しいレコードが存在するかどうかを調べ、存在すればそのレコードの項目変換規則ＩＤをＤｊに記憶して２１４以降の処理を実行し、存在しなければ、２１８以降の処理を実行する。
ここで示す例では、Ｒｉの値が‘Ｒ００１’、Ａｉの値が‘Ａ００８’であり、図７の項目変換規則情報中で変換規則ＩＤが‘Ｒ００１’出力項目が‘Ａ００８’に該当するレコードの項目変換規則ＩＤは‘Ｄ００４’であるので、‘Ｄ００４’をＤｊに記憶する。
【００４１】
次に２１４では、Ｘの値である文字列中に含まれるデータ項目ＩＤすなわちＡｉを、Ｄｊの出力算出式で置換する。
ここで示す例では、Ｘが“Ａ００８＝＝‘０３’”、Ａｉが‘Ａ００８’であり、図７の項目変換規則情報中で項目変換規則ＩＤがＤｊ，すなわち‘Ｄ００４’となるレコードの出力算出式は‘ＳｔｒＣｈｏｐ（０，２，“Ａ００１”）’であるため、Ｘ中の文字列‘Ａ００８’を‘ＳｔｒＣｈｏｐ（０，２，“Ａ００１”）’で置換する処理を行う。
この結果、Ｘの値は、‘ＳｔｒＣｈｏｐ（０，２，“Ａ００１”）＝＝‘０３’’という文字列になる。
ここで、”ＳｔｒＣｈｏｐ”はあらかじめ定義された算出式であり、第３引数で指定される文字列から、文字列の先頭を０番目として数えたときの第１引数番目から、第２引数で示される文字数を取り出して作成した部分文字列を返すものである。
【００４２】
２１５は２１２で開始されるループの終端であり、Ｘに記憶している文字列中に複数のデータ項目ＩＤが含まれている場合に、Ｘに記憶している文字列中に含まれるすべてのデータ項目ＩＤについて、２１２から２１４までの処理を繰り返す。
ここで示す例では、２０６のステップで文字列の置換を行う前のＸの値は“Ａ００８＝＝‘０３’”であり、１つのデータ項目ＩＤしか含んでいないため、Ｘに記憶している文字列中のすべてのデータ項目ＩＤを処理したこととなり、したがって２１６の処理に移る。
２１６では、変換規則がＲｎ、抽出条件がＸとなるレコードを図６に示す抽出規則情報に追加する。
このとき、変換規則ＩＤについては、他のレコードと重複しない一意の値を付与する。
ここで示す例では、Ｒｎが‘Ｒ００３’、Ｘが‘ＳｔｒＣｈｏｐ（０，２，“Ａ００１”）＝＝‘０３’’であるので、変換規則が‘Ｒ００３’、抽出条件が‘ＳｔｒＣｈｏｐ（０，２，“Ａ００１”）＝＝‘０３’’であるレコードを図６に示す抽出規則情報に追加する。
【００４３】
２１７は２１０で開始されるループの終端であり、２１０から２１６までの処理を、図６の抽出規則情報中で変換規則がＲｅの変換規則ＩＤに等しい項目変換規則Ｅｉについて繰り返す。
ここで示す例では、ステップ２１０の説明で既に示したように、変換規則がＲｅである抽出規則情報のレコードは抽出規則ＩＤが‘Ｅ００１’の１つのみであり、その処理は終了したので、変換規則がＲｅで未処理のレコードは存在しないため、処理は終了する。
ステップ２１０から２１７までの処理の結果として追加される抽出規則情報のレコードの例を図１２に示す。
【００４４】
一方、図２の２０５および２１３において、図７の項目変換規則情報８０中で、変換規則がＲｉに等しく、かつ出力項目がＡｉに等しいレコードが存在しなかった場合には、処理２１８および２１９を実行する。
２１８では、エラー画面を表示することによって、作業者に入力データと中間データとの間の変換規則の定義が十分でないことを通知する。画面に表示する例以外にも、例えばエラーの記録を保持するファイルやテーブルにレコードを書き込む、といった方法もある。
２１９では、これまで図２の処理において作成したレコード、すなわち項目変換規則情報において、変換規則がＲｎに等しいレコード、および変換規則情報において、変換規則ＩＤがＲｎに等しいレコードを削除することにより、図２で示す変換規則導出処理の実行前の状態に戻す。
【００４５】
次に、変換を行う対象となる、アプリケーションプログラム１、およびアプリケーションプログラム２のデータ形式、および中間データ形式の定義を行うデータ定義入力処理の例を、図１４に示すフローチャートと、図１５および図１６に示す画面例、図１７に示すテーブル定義情報の第２の例、および図１８に示すデータ項目定義情報の第２の例を用いて説明する。
【００４６】
図１４において、まず１４０１では、作業者が定義するテーブルを指定するための画面を表示する。
この処理で表示する画面の例を図１５に示す。
１５０１は、作業者が定義するテーブルの名前を示す文字列を入力するためのフィールドである。
１５０２は、上記テーブルを保持しているアプリケーションプログラムと通信するアダプタを一意に識別するアダプタＩＤを示す文字列を入力するためのフィールドである。
作業者が１５０２に何も入力しなかった場合は、作業者が定義しているテーブルが中間データであることを意味する。
ここでは、上記１５０１には、”組織テーブル３”、１５０２には何も入力しない、つまり作業者が”組織”という名前の中間データ形式を定義する場合を例に説明する。
【００４７】
作業者が上記のデータを入力し、完了ボタン（１５０３）を、マウスなどの入力装置を用いて押すと、続いて図１４の１４０２の処理を実行する。
１４０２では、図１７に示すテーブル定義情報に、テーブル名には作業者が１５０１に入力した文字列、アダプタＩＤには作業者が１５０２に入力したアダプタＩＤを持つレコードを追加する。
この時、テーブル定義情報のテーブルＩＤには、既にテーブル定義情報に登録されているレコードのテーブルＩＤと重複しない一意の値をつけ、その値を変数Ｔに記憶する。
ここで示す例では、テーブルＩＤとして”Ｔ００３”をつけるとすると、テーブルＩＤが”Ｔ００３”、テーブル名が”組織テーブル３”、アダプタＩＤが空のレコードを図１７で示すテーブル定義情報に追加し、結果として図３に示したテーブル定義情報のようになる。
【００４８】
次に図１４の１４０３で、作業者が図１５の画面で定義したテーブルのデータ項目の定義を行う画面を表示する。
図１６に、１４０３において表示する画面の例を示す。
図１６において、１６０１は、データ項目名をあらわす文字列を作業者が入力するための入力フィールドのリストであり、表形式の縦１列の各フィールドに対してデータ項目名を入力する。
１６０２は、データ項目が図１５に示す画面で定義したテーブルにおいて、各データ項目がキー項目であるかどうかをあらわすチェックボックスであり、各行で示されるデータ項目がキー項目であれば、作業者がチェックを付与する。
図１６の画面では、テーブル名”組織テーブル３”で示されるテーブルは、データ項目名が”組織コード”、”組織名”、および”上位組織コード”となるようなデータ項目を持ち、これらのうち”組織コード”がキー項目であるテーブルを作業者が定義したときの例である。
【００４９】
図１６において作業者が完了ボタン（１６０３）をマウスなどの入力装置を用いて押すと、次に図１４の１４０４の処理を実行する。
１４０４では、図１６において作業者が定義したすべてのデータ項目について、データ項目名が図１６で定義したデータ項目名、所属テーブルがＴ、キーが図１６においてキー値をあらわすチェックボックスに作業者がチェックした場合は”Ｔ”を、チェックしなかった場合は”Ｆ”を値とするレコードを図１８に示すデータ項目定義情報に追加する。
この時、データ項目定義情報のデータ項目ＩＤには、既にデータ項目定義情報に登録されているレコードのデータ項目ＩＤと重複しない、一意の値をつける。ここで示す例では、データ項目名が”組織コード”、”組織名”、および”上位組織コード”であるレコードそれぞれについて、データ項目ＩＤとしてそれぞれ”Ａ００５”、”Ａ００６”、”Ａ００７”、および”Ａ００８”を付与し、図１８に示したデータ項目定義情報にレコードを追加すると結果として、図４に示したデータ項目定義情報のようになる。
【００５０】
ここで示した例と同様にして、作業者は、アプリケーションプログラム１およびアプリケーションプログラム２が保有しているテーブルに関するテーブル定義情報を入力することができる。
また、アダプタ１およびアダプタ２に、各アプリケーションプログラムで保有するテーブルの形式に関する情報を参照する手段をインタフェースとして用意しておき、この手段を利用することにより、自動的にアプリケーションプログラム１およびアプリケーションプログラム２のテーブル定義情報を作成する方法もある。
また、本実施例では、データ項目の定義として、各データ項目とそのデータ項目がキー項目であるかどうかの指定のみを入力させる方法を示したが、これに加えて、例えば、データ項目のバイト数、データ項目の型などの情報を記憶する領域をデータ項目定義情報に設け、これらを作業者に入力させたり、アダプタを介して各アプリケーションより取得するようにしても良い。
【００５１】
次に、図１９から図２６を用いて、変換規則定義部の処理および画面の例を説明する。
図１９は変換規則定義部が実行する変換規則定義処理の例を示すフローチャートである。
まず、１９０１で、図２０に示す、変換規則定義画面を表示する。
２００１は、ここで作業者が定義する変換規則の名称を示す文字列を入力するためのフィールドである。
ここでは、作業者が”変換規則１”という文字列を入力した場合について説明する。
２００２は、基準入力テーブルのＩＤを示す文字列を入力するためのフィールドである。
ここでは、作業者が”Ｔ００１”という文字列を入力した場合について説明する。
２００３は、出力テーブルのＩＤを示す文字列を入力するためのフィールドである。
ここでは、作業者が”Ｔ００３”という文字列を入力した場合について説明する。
本実施例では２００２および２００３は文字列の入力フィールドであるが、より操作性をよくするため、例えば、既にテーブル定義情報に定義されているテーブルを一覧表示し、それを作業者に選択させるようなユーザインタフェースでもよい。
【００５２】
図２０の画面で、作業者が完了ボタン（２００４）をマウスなどの入力装置を用いて押すと、変換規則定義部は、図１９の１９０２以降の処理を実行する。
１９０２では、変換規則情報（図５）に、変換規則名が作業者が図２０の画面で入力した変換規則名、基準入力テーブルが作業者が図２０の画面で入力した基準入力テーブルＩＤ、出力テーブルが作業者が図２０の画面で入力した出力テーブルＩＤとなるレコードを、変換規則情報に追加する。
このとき、変換規則ＩＤとしては、既に変換規則情報に登録されているレコードの変換規則ＩＤと重複しない、一意の値を付与する。
ここでは、変換規則名が”変換規則１”、基準入力テーブルＩＤが”Ｔ００１”、出力テーブルＩＤが”Ｔ００３”となるレコードを、変換規則情報に追加し、この時に付与された変換規則ＩＤが”Ｒ００１”であった場合について以後説明する。
【００５３】
１９０３では、図２１に示す項目変換規則定義画面を表示する。
図２１において、２１０１は、図２１の画面で定義する変換規則に関する抽出規則を文字列で入力するためのフィールドである。
２１０２は、図２０の画面で指定した基準入力テーブルのデータ項目を表示したものであり、データ項目定義情報（図４）から図２０の画面で指定した基準入力テーブルＩＤと一致する所属テーブルを持つレコードを抽出し、そのデータ項目を一覧表示したものである。
２１０３は、図２０の画面で指定した出力テーブルのデータ項目を表示したものであり、データ項目定義情報から図２０の画面で指定した出力テーブルＩＤと一致する所属テーブルを持つレコードを抽出し、そのデータ項目名を一覧表示したものである。
【００５４】
項目変換規則定義画面では、作業者が基準入力テーブルのデータ項目と出力テーブルのデータ項目との対応づけを行うユーザインタフェースを用意する。
例えば作業者が、基準入力テーブルのデータ項目と、出力テーブルのデータ項目をマウスなどの入力装置を用いて指定することによって、基準入力テーブルのデータ項目と出力テーブルのデータ項目との対応づけを行うユーザインタフェースがある。
図２２は、この対応づけを、２２０１から２２０３の矢印で示した例である。
図２２で示した例では、出力テーブルのデータ項目、”組織コード”、”組織名”、および”事業所コード”は、それぞれ基準入力テーブルのデータ項目、”組織コード”、”組織名”、”組織コード”より算出することをデータ項目間の対応づけにより作業者が定義したことを示す。
【００５５】
また、項目変換規則定義画面では、定義したデータ項目間の対応づけに対して、入力となるデータ項目、すなわち図２２で示した矢印の始点となるデータ項目を用いて、出力となるデータ項目、すなわち図２２で示した矢印の終点となるデータ項目の値を算出するための算出式を入力するユーザインタフェースを用意する。
図２２において、作業者が２２０３で示した矢印をマウスなどの入力装置を用いて選択し、２１０４の算出式定義ボタンを作業者がマウスなどの入力装置を用いて押すと、図２３の２３０１で示した、算出式定義画面を表示する。
２３０２は出力データの算出式を表す文字列を入力するための入力フィールドである。
作業者は、指定した基準入力テーブルのデータ項目の値から指定した出力テーブルのデータ項目の値を算出するための算出式を、入力テーブルのデータ項目のかわりに変数Ｘを用いた式として記述する。
【００５６】
図２３の２３０２では、作業者が出力データの算出式として、”ｓｔｒＣｈｏｐ（０，２，Ｘ）”という文字列を入力した例を示している。
”ｓｔｒＣｈｏｐ”は既に説明したようにあらかじめ定義された算出式であり、第３引数で指定される文字列から、文字列の先頭を０番目として数えたときの第１引数番目から、第２引数で示される文字数を取り出して作成した部分文字列を返すものである。
例えば、Ｘの値が文字列”０３２００２”であったとき、”ｓｔｒＣｈｏｐ（０，２，Ｘ）”は、文字列”０３”を返す。
図２３の状態で完了ボタンを押すと、算出式定義画面は終了し、ここで定義した算出式をデータ項目間の対応づけとともに記憶する。
また、項目変換規則定義画面では、出力テーブルのデータ項目の値を得るために必要となる、基準入力テーブル以外の参照テーブルのＩＤを作業者が入力するユーザインタフェースを用意し、作業者が入力した参照テーブルを項目変換規則定義画面に表示する。
【００５７】
図２２において、作業者が参照テーブルボタン２１０５を押すと、図２４に示す参照テーブル入力画面２４０１を表示する。
図２４において、２４０２は作業者が参照テーブルのＩＤを文字列で入力するための入力フィールドである。
図２４は、作業者が参照テーブルＩＤとして”Ｔ００２”という文字列を入力した例を示している。
本実施例では２４０２は文字列の入力フィールドであるが、より操作性をよくするため、例えば、既にテーブル定義情報に定義されているテーブルを一覧表示し、それを作業者に選択させるようなユーザインタフェースでもよい。
図２４における完了ボタン（２４０３）を作業者がマウスなどの入力装置を用いて押すことにより、２４０１の参照テーブル入力画面は終了し、項目変換規則定義画面に参照テーブルのデータ項目を表示する。
すなわち、データ項目定義情報から図２４の画面で指定した参照テーブルＩＤと一致する所属テーブルを持つレコードを抽出し、そのデータ項目名を一覧表示する。
【００５８】
図２５は、図２４において作業者が完了ボタン（２４０３）を押した状態の項目変換規則定義画面を示したものであり、２５０１がテーブルＩＤが”Ｔ００２”であるテーブル”組織構成テーブル”のデータ項目の一覧である。
また、項目変換規則定義画面では、基準入力テーブルのデータ項目と、図２５の２５０１に示される参照テーブルのデータ項目との間の対応をとるユーザインタフェースを用意する。
つまり、基準入力テーブルのレコードが一意に定まったとき、該レコードのあるデータ項目の値を用いて参照テーブルのレコードを一意に定める規則をこの対応づけにより定義する。
この対応づけは、基準入力テーブルのデータ項目、および参照テーブルのデータ項目をマウスなどの入力装置を用いて作業者が選択することによって行う。
【００５９】
図２６において、２６０１で示した破線の矢印が基準入力テーブルのデータ項目と参照テーブルのデータ項目の対応を示す。
図２６の例では、基準入力テーブルの組織コードと等しい組織コードを持つ参照テーブルのレコードを取り出し、そのデータ項目の値を出力テーブルのデータ項目の値の算出に用いることを示している。
この基準入力テーブルのデータ項目と参照テーブルのデータ項目との対応についても、図２３で示したような算出式定義を行うことができ、作業者が定義した対応の始点となる基準入力テーブルのデータ項目の値に、作業者が定義した算出式を適用した値が、作業者が定義した対応の終点となる参照テーブルのデータ項目の値と等しくなるレコードを出力テーブルのデータ項目の算出に用いることができる。
さらに、参照テーブルのデータ項目と出力テーブルのデータ項目との対応についても、図２２の２２０１、２２０２、および２２０３と同様に定義することができる。
図２６の２６０１は、参照テーブルの上位組織コードの値を出力テーブルの上位組織コードに代入することを示している。
【００６０】
図２６の画面例で、作業者が完了ボタン２１０６をマウスなどの入力装置を用いて押すと、変換規則定義部は図１９の１９０４以降の処理を実行する。
１９０４では、図２１などに示した画面で作業者が抽出規則を定義した場合、Ｒを変換規則、作業者が定義した抽出規則を抽出規則とするレコードを抽出規則情報（図６）に追加する。
この時、抽出規則ＩＤには、既に抽出規則情報に存在するレコードの抽出規則ＩＤと重複しない、一意の抽出規則ＩＤを付与する。
図２１から図２６に示した例では、作業者は抽出規則を定義していないので、１９０４では何も実行しない。
【００６１】
次に、１９０５から１９１４までの処理を、出力テーブルのデータ項目Ａについて繰り返し実行する。
１９０６では、終点がＡとなる矢印が画面上に定義されているか、すなわち基準入力テーブルもしくは参照テーブルから出力テーブルのデータ項目Ａへの対応Ｂが定義されているかどうかを調べる。
定義されていない場合は、繰り返しの終端である１９１４に処理を移し、次の繰り返しを実行する。
定義されている場合は、１９０７を実行する。
１９０７では、対応Ｂに対して、算出式が定義されているかどうかを調べる。
算出式が定義されている場合は、算出式の文字列を変数Ｆに記憶し（１９０８）、定義されていない場合は文字列”Ｘ”をＦに記憶する（１９０９）。
１９１０では、Ｂの始点となっているデータ項目が、基準入力テーブルのデータ項目か参照テーブルのデータ項目か調べ、基準入力テーブルのデータ項目の場合は１９１１の処理を、参照テーブルの場合は１９１２の処理を実行する。
【００６２】
１９１１では、Ｆの文字列中で、”Ｘ”となっている部分を、対応Ｂの始点となる基準入力テーブルまたは参照テーブルのデータ項目のデータ項目ＩＤで置換する。
１９１２では、Ｆの文字列中で、”Ｘ”となっている部分を、対応Ｂの始点となっているデータ項目のデータ項目ＩＤをα、対応Ｂの始点となっているデータ項目の所属するテーブルのテーブルＩＤをβとし、対応Ｂの始点となる参照テーブルと基準入力テーブルとの対応における基準入力テーブルのデータ項目ＩＤをδ、参照テーブルのデータ項目ＩＤをε、該対応に定義されている算出式を示す関数をζとした場合に”γ＝ζ（ε）”であらわせる評価式をγとして、”ｇｅｔＲｅｆ（α, β, γ）”と等価な算出式を表す文字列で置換する。
ここで、ｇｅｔＲｅｆは、図１におけるアダプタ１のインタフェースとしてあらかじめ用意されている関数であり、第１引数にデータ項目ＩＤ、第２引数にテーブルＩＤ、第３引数に第２引数で示したテーブルが保持するレコードからレコードを一意に識別するための条件を与えると、第２引数で指定したテーブルから第３引数で指定した条件に合致するレコードを取り出し、そのレコードの第１引数で与えたデータ項目の値を返すものである。
【００６３】
１９１３では、変換規則がＲ、出力項目がＡ、出力算出式がＦのレコードを、項目変換規則情報（図７）に追加する。
このとき、項目変換規則ＩＤとしては、既に項目変換規則情報に存在するレコードの項目変換規則ＩＤと重複しない、一意の値を設定する。
１９１４は、１９０５から始まる繰り返しの終端であり、１９０６から１９１３までの処理を、出力テーブルのすべてのデータ項目に対して繰り返す。
以上の処理により、図２０から図２６の画面を用いて作業者が定義した内容から、図５における５５、図７における７５、７６、７７および７８の各レコードを作成できる。
【００６４】
次に、図２７から図２９の画面例を用いて、図２に示した変換規則導出処理を実行するためのユーザインタフェースの例を示す。
図２７は、変換規則導出の基となる変換規則を指定する画面の例である。
２７０１は、導出する変換規則の基となる第１の変換規則である変換規則１を示す文字列を入力するための入力フィールドであり、２７０２は、導出する変換規則の基となる第２の変換規則である変換規則２を示す文字列を入力するための入力フィールドである。
図２７の例では、２７０１および２７０２に対して、それぞれ”変換規則１”、”変換規則２”という文字列を作業者が指定した場合を示している。
本実施例では２７０１および２７０２は文字列の入力フィールドであるが、より操作性をよくするため、例えば、既に変換規則情報に定義されている変換規則を一覧表示し、それを作業者に選択させるようなユーザインタフェースでもよい。
【００６５】
図２７において、作業者が完了ボタン２７０３をマウスなどの入力装置を用いて押すと、図２８に示す画面を表示する。
図２８は、既に作業者が定義した変換規則１と変換規則２を１つの画面上に表示したものであり、変換規則情報、テーブル定義情報、データ項目定義情報、抽出規則情報、および項目変換規則情報から、変換規則１における基準入力テーブルのデータ項目、変換規則１における出力テーブルすなわち変換規則２における基準入力テーブルのデータ項目、変換規則１における参照データ項目のデータ項目、変換規則１における抽出規則、変換規則１における基準入力テーブルのデータ項目と出力テーブルのデータ項目との対応、変換規則１における基準入力テーブルのデータ項目と参照テーブルのデータ項目の対応、変換規則２における出力テーブルのデータ項目、変換規則２における参照データ項目のデータ項目、変換規則２における抽出規則、変換規則２における基準入力テーブルのデータ項目と出力テーブルのデータ項目との対応、および変換規則２における基準入力テーブルのデータ項目と参照テーブルのデータ項目の対応をそれぞれ取得し、図を用いて画面上に表示する。
【００６６】
図２８において、直接変換規則生成のボタン（２８０１）を作業者がマウスなどの入力装置を用いて押すことにより、図２に示した変換規則導出処理を起動し、図２８に示した変換規則から、中間テーブルを除いた直接の変換規則を生成する。
図２の処理により作成した直接変換の変換規則を、変換規則情報、テーブル定義情報、データ項目定義情報、抽出規則情報、および項目変換規則情報から取り込み、例えば図２９に示した図で導出した結果を表示することができる。
【００６７】
最後に、図１９から図２６で説明した、作業者が定義した変換規則、または図２で説明した変換規則導出処理によって導出した変換規則を用いてデータの変換処理を行う処理について、図１のアプリケーションプログラム１が持つデータを、アプリケーションプログラム２の形式に変換して投入する処理を例に、図３０を用いて説明する。
【００６８】
図３０に示すフローチャートは、実行時に対象とする変換規則情報中のレコードの変換規則ＩＤを引数としてとりその値を変数Ｒに記憶する。
ここでは、引数に変換規則ＩＤ‘Ｒ００３’を与えた場合について説明する。
まず３００１では、変換規則情報から変換規則ＩＤがＲに一致するレコードを検索し、変換規則ＩＤがＲのレコードの、基準入力テーブルを変数Ｔｉに、出力テーブルをＴｅにそれぞれ記憶する。
ここで示す例では、Ｒが‘Ｒ００３’であり、これは図２の変換規則導出処理で導出した規則で、図１１に示したレコードが対象となる。
したがって、変数ＴｉおよびＴｅには、それぞれ‘Ｔ００１’、‘Ｔ００４’を記憶する。
【００６９】
３００２から３００７までのループでは、変換規則がＲである抽出規則をＴｉが示すテーブルのレコードに適用したときに、抽出規則が該当するレコードそれぞれに対して処理を実行する。
まず、３００２では、変換規則がＲであるレコードを抽出規則情報から検索し、該レコードの抽出条件に該当するＴｉ内のレコードを１つ取り出し、このレコー
ドを変数Ｒｉに記憶する。
ここで示す例では、Ｒが‘Ｒ００３’であり、変換規則が‘Ｒ００３’である抽出規則情報のレコードは、図2の処理で導出した規則で、図１２に示したレコードが対象となる。
図１２に示した抽出規則情報のレコードの抽出条件は‘ＳｔｒＣｈｏｐ（０，２，“Ａ００１”）＝＝‘０３’’であり、つまり「データ項目“Ａ００１”の内容となる文字列の0番目の文字から２文字取り出したものが、文字列‘０３’に等しい」という規則を表している。図８において、組織コードが‘０３１０００’のレコードから‘０３３００５’までの１０レコードがこの規則に該当し、これらのレコードについて３００７までの処理を実行する。
ここでは、組織コードが‘３１０００’のレコードをＲｉに記憶した場合について以下説明する。
【００７０】
３００３から３００５までのループでは、Ｔｅが示すテーブルに所属するデータ項目それぞれに対して処理を実行する。
３００３では、図４のデータ項目定義情報から所属テーブルがＴｅであるレコードを１つ取り出し、それを変数Ａｏに記憶する。
ここで示す例では、Ｔｅは‘Ｔ００４’であり、図４のデータ項目定義情報において所属テーブルが‘Ｔ００４’となるレコードは、項目ＩＤが‘Ａ００９’、‘Ａ０１０’、および‘Ａ０１１’の３つのレコードである。
ここでは、項目ＩＤが‘Ａ００９’のレコードをＡｏに記憶した場合について以下説明する。
【００７１】
３００４では、項目変換規則情報より、変換規則がＲであり、出力項目がＡｏであるレコードを検索し、これに該当するレコードの出力算出式に定義されている文字列中の各データ項目ＩＤに対してＲｉにおける該データ項目の値を代入して計算を実行した値を算出し、出力テーブルと同じデータ項目をもつ出力用レコードＲｏのＡｏに対応するデータ項目に記憶する。
ここで示す例では、Ｒは‘Ｒ００３’、Ａｏは‘Ａ００９’であり、変換規則が‘Ｒ００３’、出力項目が‘Ａ００９’である項目変換規則情報のレコードは、図１３中の項目変換規則ＩＤが‘Ｄ００８’のレコードである。
このレコードの出力算出式は‘Ａ００１’であるので、Ｒｉに記憶したレコードの‘Ａ００１’で示されるデータ項目の内容、すなわちＲｉの組織コードの内容である‘０３１０００’を、ＲｏのＡｏに対応するデータ項目に記憶する。
【００７２】
３００５は３００３で開始されるループの終端であり、３００３から３００４の処理を、Ｔｅのすべてのデータ項目について行う。
この結果、ループの終了時点、すなわちステップ３００６に到達する時点において、Ｒｏには、組織コードに対応するデータ項目には‘０３１０００’、組織名に対応するデータ項目には‘横浜支社’、上位組織コードに対応するデータ項目には‘ＮＵＬＬ’という値をそれぞれ持つレコードを記憶していることになる。
【００７３】
３００６では、Ｔｅが示すテーブルに対して、Ｒｏに作成したレコードを追加する。
つまり、組織コードが‘０３１０００’、組織名が ‘横浜支社’、上位組織コードが‘ＮＵＬＬ’のレコードをＴｅが示す‘Ｔ００４’というテーブルに追加する。
ここで、テーブルＴ００４は、図１のアプリケーションプログラム２が管理するデータベース２に存在するが、図３０に示した変換規則実行処理は、テーブルＴ００４の物理的な存在場所や物理的なアクセス方法は記憶しておく必要はなく、図３のテーブル定義情報からテーブルＴ００４にアクセスするためのアダプタＩＤ、‘ＡＤＰ０２’を記憶しているのみである。
これは、図１に示したアダプタ１（１０８）およびアダプタ２（１０９）は、アプリケーションプログラムおよびその場所に依存しないインタフェースを変換規則実行部に対して提供しているためである。
【００７４】
３００７は３００２で開始されるループの終端であり、３００２から３００７の処理を、基準入力テーブルのレコードのうち、抽出規則の抽出条件に該当するすべてのレコードについて繰り返す。
これにより、アプリケーションプログラム１が保持するデータのうち、アプリケーションプログラム２が必要とする、横浜支社の組織コード、組織名、および上位組織コードの対応をあらわすデータがアプリケーションプログラム２の組織テーブル２に作成できる。
【００７５】
アプリケーションプログラム１が保持する組織テーブル１および組織構成テーブルの内容がそれぞれ図８および図９に示したとおりであれば、アプリケーションプログラム２が保持する組織テーブル２の内容は、図３０の処理の実行の結果、図３１に示した通りになる。
図３０で示した例では、変換規則情報、テーブル定義情報、データ項目定義情報、抽出規則情報、項目変換規則情報を用いてデータ変換を実行する例を示したが、これと同様に、変換規則情報、テーブル定義情報、データ項目定義情報、抽出規則情報、項目変換規則情報を用いてデータ変換を実行するプログラムを生成することも可能である。
【００７６】
以上説明したように、作業者が、入力データから中間データへの変換規則、および中間データから出力データへの変換規則を定義し、図２の処理を実行することにより、入力データから出力データへの変換規則を導出することができる。
これにより、作業者がみずから定義しているため理解が容易な中間データと各アプリケーションプログラムのデータとの変換規則を定義すれば良いため定義が容易になる、連携システムのうちのいずれかが変更された場合の保守が容易になる、といった中間データを介した変換の利点を享受しつつ、中間データを介さないで入力データから出力データへの直接の変換を定義した場合の実行性能、および処理効率を得ることができる。
つまり、一旦中間データを作成する方法では、入力データから中間データ、中間データから出力データのそれぞれ変換を実行する必要があり、変換が２度必要となるが、本発明のように直接変換する規則をあらかじめ導出しておき、この直接変換する規則を適用した場合、データの変換は１度ですむ。
また一旦中間データに変換する方法では、出力データとは無関係のデータについても入力データから中間データへの変換が行われる可能性があるが、本発明によれば、出力データに無関係の中間データのデータ項目については処理されない、つまり導出された変換規則に反映されないので、データの変換が無駄なく行われる。
また、入力データから中間データへの変換規則が、出力データを中間データから得るために十分に定義されているかどうかを、データ変換の実行を行わずに検証することができる。これにより、作業者は、入力データから中間データへの変換規則の修正などの必要性を知ることができ、作業者が一貫した変換規則を定義するための支援となる。
【００７７】
【発明の効果】
以上説明したように、本発明によれば、作業者が、入力データから中間データへの変換規則、および中間データから出力データへの変換規則を定義し、変換規則導出処理を実行することにより、入力データから出力データへの変換規則を導出することができる。
これにより、作業者に理解が容易な中間データと各アプリケーションプログラムのデータとの変換規則を定義すれば良いため、定義が容易になり、また、連携システムのうちのいずれかが変更された場合の保守が容易になる。
【図面の簡単な説明】
【図１】本発明の一実施例を示すブロック図である。
【図２】変換規則導出処理の処理のフローチャートを示す図である。
【図３】テーブル定義情報の第１の例を示す図である。
【図４】データ項目定義情報の第１の例を示す図である。
【図５】変換規則情報の第１の例を示す図である。
【図６】抽出規則情報の第１の例を示す図である。
【図７】項目変換規則情報の第１の例を示す図である。
【図８】組織テーブル１の例を示す図である。
【図９】組織構成テーブルの例を示す図である。
【図１０】組織テーブル２の第１の例を示す図である。
【図１１】変換規則情報の第２の例を示す図である。
【図１２】抽出規則情報の第２の例を示す図である。
【図１３】項目変換規則情報の第２の例を示す図である。
【図１４】データ定義入力処理の処理のフローチャートを示す図である。
【図１５】テーブル定義入力画面の例を示す図である。
【図１６】データ項目定義入力画面の例を示す図である。
【図１７】テーブル定義情報の第２の例を示す図である。
【図１８】データ項目定義情報の第２の例を示す図である。
【図１９】変換規則定義処理の処理のフローチャートを示す図である。
【図２０】変換規則定義画面の例を示す図である。
【図２１】項目変換規則定義画面の第１の例を示す図である。
【図２２】項目変換規則定義画面の第２の例を示す図である。
【図２３】算出式定義画面の例を示す図である。
【図２４】参照テーブル入力画面の例を示す図である。
【図２５】項目変換規則定義画面の第３の例を示す図である。
【図２６】項目変換規則定義画面の第４の例を示す図である。
【図２７】変換規則指定画面の例を示す図である。
【図２８】直接変換規則導出画面の第１の例を示す図である。
【図２９】直接変換規則導出画面の第２の例を示す図である。
【図３０】変換規則実行処理の処理のフローチャートを示す図である。
【図３１】組織テーブル２の第２の例を示す図である。
【符号の説明】
１  コンピュータ１
２  コンピュータ２
３  コンピュータ３
４  ネットワーク
１００  データ定義入力部
１０１  データ形式定義情報
１０２  変換規則入力部
１０３  変換規則定義情報
１０４  アプリケーションプログラム１
１０５  データベース１
１０６  アプリケーションプログラム２
１０７  データベース２
１０８  アダプタ１
１０９  アダプタ２
１１０  変換規則導出部
１１１  変換規則実行部
【図１】
0004010516.tif 000002
【図２】
0004010516.tif 000003
【図３】
0004010516.tif 000004
【図４】
0004010516.tif 000005
【図５】
0004010516.tif 000006
【図６】
0004010516.tif 000007
【図７】
0004010516.tif 000008
【図８】
0004010516.tif 000009
【図９】
0004010516.tif 000010
【図１０】
0004010516.tif 000011
【図１１】
0004010516.tif 000012
【図１２】
0004010516.tif 000013
【図１３】
0004010516.tif 000014
【図１４】
0004010516.tif 000015
【図１５】
0004010516.tif 000016
【図１６】
0004010516.tif 000017
【図１７】
0004010516.tif 000018
【図１８】
0004010516.tif 000019
【図１９】
0004010516.tif 000020
【図２０】
0004010516.tif 000021
【図２１】
0004010516.tif 000022
【図２２】
0004010516.tif 000023
【図２３】
0004010516.tif 000024
【図２４】
0004010516.tif 000025
【図２５】
0004010516.tif 000026
【図２６】
0004010516.tif 000027
【図２７】
0004010516.tif 000028
【図２８】
0004010516.tif 000029
【図２９】
0004010516.tif 000030
【図３０】
0004010516.tif 000031
【図３１】
0004010516.tif 000032