データ変換システム及びデータ変換方法
【課題】変換元データの不整合を検出するデータ変換システムの提供。
【解決手段】固定長定義情報テーブル部101に格納した固定長データ構造情報とXML定義情報テーブル部103に格納したXMLデータ構造情報と変換定義情報テーブル部102に格納した階層名対応情報とを基に、固定長形式データ及びXMLデータが固定長データ構造情報及びXMLデータ構造情報と整合性が有るか否かを判定するためのデータチェックパラメータ情報を生成するパラメータ生成エンジン部104と、変換元データの整合性を検証するデータチェックエンジン部301とを設け、該データチェックエンジン部301が、変換元データに含まれる階層名の出現順序がデータチェックパラメータ情報に含まれる階層名の出現順序と整合するか否かを判定し、該判定により変換元データの階層名の出現順序がデータチェックパラメータ情報に含まれる階層名の出現順序と整合しないと判定したとき、エラーと通知するもの。
【解決手段】固定長定義情報テーブル部101に格納した固定長データ構造情報とXML定義情報テーブル部103に格納したXMLデータ構造情報と変換定義情報テーブル部102に格納した階層名対応情報とを基に、固定長形式データ及びXMLデータが固定長データ構造情報及びXMLデータ構造情報と整合性が有るか否かを判定するためのデータチェックパラメータ情報を生成するパラメータ生成エンジン部104と、変換元データの整合性を検証するデータチェックエンジン部301とを設け、該データチェックエンジン部301が、変換元データに含まれる階層名の出現順序がデータチェックパラメータ情報に含まれる階層名の出現順序と整合するか否かを判定し、該判定により変換元データの階層名の出現順序がデータチェックパラメータ情報に含まれる階層名の出現順序と整合しないと判定したとき、エラーと通知するもの。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、異なるデータ形式のデータを相互形式に変換することができるデータ変換システム及びデータ変換方法に係り、特に変換前のデータ形式の不整合をチェックすることができるデータ変換システム及びデータ変換方法に関する。
【背景技術】
【0002】
近年、商取引に関する情報を標準的な書式に統一し、企業間で電子的に交換するEDI(Electronic Data Interchange)システムが構築され、このEDIシステムは、企業間での受発注や見積もり/決済/出入荷などに関わる電子データを、あらかじめ定められた形式にしたがって電子化し、専用線やVANなどのネットワークを通じて送受信することが行われている。
【0003】
このEDIシステムは、データ交換の手順(通信プロトコル)や使用する業務メッセージ(発注、支払など)が企業毎に異なることが多く、更に小売企業毎にメッセージの形式が異なる場合が多いため、企業同士が直接やりとりする方式ではなく、EDIセンタという中継センタを経由してやりとりする場合が多い。このEDIシステムにおけるデータ形式としては、大別して、固定長形式と流通ビジネスメッセージ標準形式(流通BMS形式)があり、流通BMS形式の基準形式はXMLフォーマットである。尚、XML(eXxtensible Markup Language)形式データとは、文書やデータの意味や構造を記述するためのマークアップ言語により記述されたデータであり、固定長形式データとは、格納するデータ種(属性)及びデータサイズ(長さ)を予め定めた形式で記述したデータを言う。
【0004】
このようにEDIシステムは、異なる形式のデータの変換を行うデータ変換機能を備えるため、データ形式やデータ構造について、事前に双方の取り決めを行うことが不可欠であり、取り決めに適合するデータであるか否かをチェックするために、専用のデータチェックシステムを開発することが必要であった。
【0005】
また、一般にXMLデータの内容整合性チェックを行うための標準規格としてXML Schemaと呼ばれるXML木構造等の定義を表すスキーマがあり、このスキーマを用いてXMLデータの整合性チェックを実施することができる。
【0006】
尚、前記データ形式の整合性をチェックする技術が記載された文献としては下記特許文献1が挙げられる。この特許文献1には、チェック条件をデータベースに記憶させておき、チェック条件論理式を、データ名に演算子及び関数を組み合わせて作成することにより、チェック条件の変更を容易に行うことができるとする技術が記載されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2004−213488号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
従来技術によるEDIシステムにおけるデータ形式の整合性チェック手法は、変換後データの整合性のチェックの結果、不整合が判明したとしても、変換前のデータにおける不整合箇所を特定することが困難であると言う不具合があった。また、変換後XMLデータのXMLスキーマチェック項目を変換前データにおいてチェックしようとした場合、XMLスキーマ数×データ形式数だけのデータチェックシステムを開発する必要があり、作業負荷及びコストが増大すると言う不具合もあった。また、チェック定義をパラメータ等に切り出し、共通のチェックシステムを開発することも考えられるが、チェック定義を行うための作業がスキーマ数×データ形式数だけ発生すると言う不具合もあった。
【0009】
本発明の目的は、変換元のデータ形式不整合を容易にチェックすることができるデータ変換システム及びデータ変換方法を提供することである。
【課題を解決するための手段】
【0010】
前記目的を達成するために本発明は、マークアップ言語により記述されたマークアップ言語形式データとデータ種及びデータ長さを予め固定して記述された固定長形式データとの相互変換をコンピュータにより行うデータ変換システムであって、
前記固定長形式データを構成する階層名と該階層名に対応したデータ開始位置とデータ長さとデータ属性と該階層名の出現順序と必須項目か否かを示す必須フラグとを含む固定長データ構造情報を格納した固定長定義情報テーブル部と、
前記マークアップ言語形式データを構成する階層名と該階層名に対応したタグ名と該階層名の出現順序と必須項目か否かを示す必須フラグとを含むマークアップ言語データ構造情報を格納したマークアップ言語定義情報テーブル部と、
前記マークアップ言語形式データの階層名と固定長形式データの階層名との階層名対応情報を格納した変換定義情報テーブル部と、
前記固定長定義情報テーブル部に格納した固定長データ構造情報と前記マークアップ言語定義情報テーブル部に格納したマークアップ言語データ構造情報と前記変換定義情報テーブル部に格納した階層名対応情報とを読み込み、該読み込んだ固定長データ構造情報とマークアップ言語データ構造情報と階層名対応情報とを基に、固定長形式データをマークアップ言語形式データに変換又はマークアップ言語形式データを固定長形式データに変換するための変換パラメータ情報を生成すると共に、固定長形式データ及びマークアップ言語形式データが前記固定長データ構造情報及びマークアップ言語データ構造情報と整合性が有るか否かを判定するためのデータチェックパラメータ情報を生成するパラメータ生成エンジン部と、
前記データチェックパラメータ情報を基に変換元のマークアップ言語形式データ及び固定長形式データの前記整合性を検証するためのデータチェックエンジン部とを備え、
前記データチェックエンジン部が、前記変換元のマークアップ言語形式データ及び固定長形式データに含まれる階層名の出現順序が前記データチェックパラメータ情報に含まれる階層名の出現順序と整合するか否かを判定する第1工程と、該第1工程により前記変換元データの階層名の出現順序がデータチェックパラメータ情報に含まれる階層名の出現順序と整合しないと判定したとき、前記変換元データがエラーと通知する第2工程とを実行することを第1の特徴とする。
【0011】
また本発明は、第1の特徴のデータ変換システムにおいて、前記マークアップ言語定義情報テーブル部が、前記マークアップ言語形式データに含まれる階層名の出現順序を、最上階層名段を所定の値に設定し、該最上段から下層になるに従って前記所定の値を増加させる数値として格納し、
前記データチェックエンジン部が、前記変換元データを1階層毎に読み込み、今回読み込んだ階層名に対応する階層出現順位値が、前回読み込んだ階層名に対応する階層出現順位値以下か否かを判定する第3工程と、該第3工程の判定により今回読み込んだ階層出現順位値が前回読み込んだ階層出現順位値以下でないと判定したとき、該今回読み込んだ階層名の下層に必須の階層名が格納されているかを前記必須フラグを参照して判定する第4工程と、前記第3工程の判定により今回読み込んだ階層出現順位値が前回読み込んだ階層出現順位値以下であると判定したとき、前回読み込んだ階層名と今回読み込んだ階層名との間に必須の階層名があるか否かを前記必須フラグにより判定する第5工程とを実行し、
前記第4工程により下層に必須の階層名が格納されていないと判定、又は前記第5工程により前回読み込んだ階層名と今回読み込んだ階層名との間に必須の階層名がないと判定したとき、変換元データが整合ありと判定し、
前記第4工程により下層に必須の階層名が格納されていると判定、又は前記第5工程により前回読み込んだ階層名と今回読み込んだ階層名との間に必須の階層名があると判定したとき、変換元データが整合なしと判定することを第2の特徴とする。
【0012】
更に本発明は、固定長形式データを構成する階層名と該階層名に対応したデータ開始位置とデータ長さとデータ属性と該階層名の出現順序と必須項目か否かを示す必須フラグとを含む固定長データ構造情報を格納した固定長定義情報テーブル部と、
マークアップ言語形式データを構成する階層名と該階層名に対応したタグ名と該階層名の出現順序と必須項目か否かを示す必須フラグとを含むマークアップ言語データ構造情報を格納したマークアップ言語定義情報テーブル部と、
前記マークアップ言語形式データの階層名と固定長形式データの階層名との階層名対応情報を格納した変換定義情報テーブル部と、
前記固定長定義情報テーブル部に格納した固定長データ構造情報と前記マークアップ言語定義情報テーブル部に格納したマークアップ言語データ構造情報と前記変換定義情報テーブル部に格納した階層名対応情報とを読み込み、該読み込んだ固定長データ構造情報とマークアップ言語データ構造情報と階層名対応情報とを基に、固定長形式データをマークアップ言語形式データに変換又はマークアップ言語形式データを固定長形式データに変換するための変換パラメータ情報を生成すると共に、固定長形式データ及びマークアップ言語形式データが前記固定長データ構造情報及びマークアップ言語データ構造情報と整合性が有るか否かを判定するためのデータチェックパラメータ情報を生成するパラメータ生成エンジン部と、
前記データチェックパラメータ情報を基に変換元のマークアップ言語形式データ及び固定長形式データの前記整合性を検証するためのデータチェックエンジン部とを備え、マークアップ言語により記述されたマークアップ言語形式データとデータ種及びデータ長さを予め固定して記述された固定長形式データとの相互変換を行うデータ変換方法であって、
前記データチェックエンジンに、
前記変換元のマークアップ言語形式データ及び固定長形式データに含まれる階層名の出現順序が前記データチェックパラメータ情報に含まれる階層名の出現順序と整合するか否かを判定する第1工程と、該第1工程により前記変換元データの階層名の出現順序がデータチェックパラメータ情報に含まれる階層名の出現順序と整合しないと判定したとき、前記変換元データがエラーと通知する第2工程とを実行させることを第3の特徴とする。
【0013】
また本発明は、第3の特徴のデータ変換方法において、前記マークアップ言語定義情報テーブル部が、前記マークアップ言語形式データに含まれる階層名の出現順序を、最上階層名段を所定の値に設定し、該最上段から下層になるに従って前記所定の値を増加させる数値として格納し、
前記データチェックエンジン部に、
前記変換元データを1階層毎に読み込み、今回読み込んだ階層名に対応する階層出現順位値が、前回読み込んだ階層名に対応する階層出現順位値以下か否かを判定する第3工程と、該第3工程の判定により今回読み込んだ階層出現順位値が前回読み込んだ階層出現順位値以下でないと判定したとき、該今回読み込んだ階層名の下層に必須の階層名が格納されているかを前記必須フラグを参照して判定する第4工程と、前記第3工程の判定により今回読み込んだ階層出現順位値が前回読み込んだ階層出現順位値以下であると判定したとき、前回読み込んだ階層名と今回読み込んだ階層名との間に必須の階層名があるか否かを前記必須フラグにより判定する第5工程とを実行し、
前記第4工程により下層に必須の階層名が格納されていないと判定、又は前記第5工程により前回読み込んだ階層名と今回読み込んだ階層名との間に必須の階層名がないと判定したとき、変換元データが整合ありと判定し、
前記第4工程により下層に必須の階層名が格納されていると判定、又は前記第5工程により前回読み込んだ階層名と今回読み込んだ階層名との間に必須の階層名があると判定したとき、変換元データが整合なしと判定することを第4の特徴とする。
【発明の効果】
【0014】
本発明によるデータ変換システム及び方法は、前記データチェックエンジンが、前記変換元のマークアップ言語形式データ及び固定長形式データに含まれる階層名の出現順序が前記データチェックパラメータ情報に含まれる階層名の出現順序と整合するか否かを判定する第1工程と、該第1工程により前記変換元データの階層名の出現順序がデータチェックパラメータ情報に含まれる階層名の出現順序と整合しないと判定したとき、前記変換元データがエラーと通知する第2工程とを実行させることによって、階層の出現順位の相違による変換元データの不整合を検出することができる。
【図面の簡単な説明】
【0015】
【図1】本発明の一実施形態によるデータ変換システムの全体構成図。
【図2】本実施形態によるデータ変換システムの全体動作フロー図。
【図3】本実施形態によるデータ変換システムのチェック処理動作フロー図。
【図4】本実施形態によるデータ形式の不整合を説明するための図。
【図5】本実施形態による定義情報のデータ構成を説明するための図。
【図6】本実施形態による定義情報のデータ構成の具体例を示す図。
【図7】本実施形態による変換定義情報におけるコード変換テーブル例を示す図。
【図8】本実施形態によるチェックパラメータの出力フロー図。
【図9】本実施形態による変換パラメータの出力フロー図。
【図10】本実施形態による入力データ形式ワークテーブルを示す図。
【図11】本実施形態による変換定義ワークテーブルを示す図。
【図12】本実施形態による構造チェックの処理フロー図。
【図13】本実施形態による項目チェックの処理フロー図。
【図14】本実施形態によるコードリストチェックの処理フロー図。
【発明を実施するための形態】
【0016】
以下、本発明によるデータ変換方法を実現するデータ変換システムを図面を参照して説明するが、まず、本発明の前提となるデータの不整合について説明する。例えば、電子商取引における固定長データ形式は、例えば図4(a)に示す如く、最初に転送ヘッダS、該転送ヘッダSの1段下層にファイルヘッダA及びBがあり、これらファイルヘッダA及びBの1段下層に伝票ヘッダBがあり、該伝票ヘッダBの1段下層に伝票明細Dが位置する様に定義されている。本実施形態で述べるデータの不整合とは、例えば図4(b)に示す如く、2段目のファイルヘッダA(2)の1段下に存在すべき伝票ヘッダB(3)がなく、伝票明細D(5)が位置してしまうような、図4(a)に示した定義に合致しないデータ形式のことを言う。
【0017】
[全体構成]
さて、本実施形態によるデータ変換システムは、例えば電子商取引におけるEDIシステムに含まれるものであって、図1に示す如く、変換前後のデータ形式の定義情報を基に変換パラメータ201及びデータチェックパラメータ302を生成するデータ変換定義設定システム100と、該データ変換定義設定システム100が生成した変換パラメータ201を用いて入力データ(例えば固定長形式データ)202を出力データ(XML形式データ)204に変換するデータ変換システム200と、前記データチェックパラメータ302及び入力データ202を入力して入力データ202の整合性をチェックするデータチェックシステム300とから構成されている。尚、本明細書では、ハードウェア的な図示及び説明を行うが、前述の各システムはコンピュータのメモリに格納されるデータやプログラムによって構成されるものである。
【0018】
[データ変換定義設定システム100]
前記データ変換定義設定システム100は、電子商取引のデータを予め固定長のデータ形式として定義した固定長定義情報を格納する固定長定義情報テーブル部101と、電子商取引のデータを予めXMLのデータ形式として定義したXML定義情報を格納するXML定義情報テーブル部103と、前記固定長定義情報とXML定義情報間相互の変換情報を格納する変換定義情報テーブル部102と、前記固定長定義情報テーブル部101に格納した固定長定義情報とXML定義情報テーブル部103に格納したXML定義情報と前記変換定義情報テーブル部102に格納した変換情報とを基に、後述する変換パラメータ201及びデータチェックパラメータ302を生成するパラメータ生成エンジン部104とから構成される。
【0019】
[固定長定義情報テーブル部101]
前記固定長定義情報テーブル部101に格納した固定長定義情報の構造は、例えば図5(a)に示す如く、階層名として、「転送ヘッダ」「ファイルヘッダ」「伝票ヘッダ」「伝票明細」の4階層名であること、各々の識別文字が「S」「A」「B」「D」と定義されていること、各レコード長が256ビットであることがデータ構造として定義されている。この固定長定義情報テーブル部101には、項目名に応じた固定長データの開始位置/長さ/属性の固定長データの項目情報が定義されており、これは例えば図6(a)に示す如く、項目名「レコード区分」の開始位置が「1」、長さが「1」、属性が「X」の如く定義されており、他の項目名に対する項目情報も図示の通りである。
【0020】
[変換定義情報テーブル部102]
前記変換定義情報テーブル部102に格納した変換情報の構造は、図5(b)に示す如く、変換元(固定長形式)と変換後(XML形式)の定義名の対応は、変換元「階層名」が変換後「階層名」、変換元「転送ヘッダ」が変換後「SBDH」、変換元「ファイルヘッダ」が「ヘッダ」、変換元「伝票ヘッダ」が変換後「取引」、変換元「伝票明細」が変換後「明細」に各々対応しているとして定義されている。この変換定義情報テーブル部102には、変換元の固定長形式の項目名に対応する変換後のXML形式の項目名及び変換情報が登録されており、これは、例えば図6(b)に示す如く、変換元項目名「伝票番号」に対応する変換後の項目名が「明細番号」であり、変換情報が「前ゼロ埋め(桁数に対して桁数上位の空き桁にゼロを挿入する)」形式であるの如く定義されており、他の項目名に対する情報も図示の通りである。
【0021】
[XML定義情報テーブル部103]
前記XML定義情報テーブル部103に格納したXML定義情報の構造は、図5(b)に示す如く、階層名に対する「タグ名」「出現順序」「必須か任意か」の各項目が定義されており、例えば階層名「SBDH」(Standard Business Document Header)のタグ名が「shStandardBussinessDocumentHeader」、出現順序が「1」、「必須フラグ」として格納されている。このXML定義情報テーブル部103には、項目名に対するタグ名(XPath)/属性/桁数/必須か任意かの区分情報のXML項目情報が定義されており、これは例えば図6(c)に示す如く、項目名「明細番号」のタグ名(XPath)が「data/list/item/lineNumber」、属性が「英数」、桁数が「最大4」、区分情報が「必須」の如く定義されており、他の項目名に対する項目情報も図示の通りである。この前記XML定義情報テーブル部103には、項目名に対するタグ名(XPath)/属性/桁数/必須か任意かの区分情報のXML項目情報が定義されており、これは例えば図6(c)に示す如く、項目名「明細番号」のタグ名(XPath)が「data/list/item/lineNumber」、属性が「英数」、桁数が「最大4」、区分情報が「必須」の如く定義されており、他の項目名に対する項目情報も図示の通りである。尚、図6(c)では省略しているが、階層名の出現順位を図5(c)と同様に数値として格納しても良い。
【0022】
尚、前記図6(b)の「伝票レス区分」は伝票を要しない区分コードを示し、例えば図7(b)に示す如く、コード「01」が「伝票レス」(紙伝票が存在しない)、コード「02」が「伝票あり」(紙伝票が存在すること)を意味するものであって、変換前後の変換テーブルは、例えば図7(a)に示す如く、入力と出力の関係として定義づけられている。
【0023】
[動作]
次に、前述の様に構成した本実施形態によるデータ変換システム(EDIシステム)が固定長形式データをXML形式データに変換する動作を動作フロー図を参照して説明する。
[入力データの整合性チェック動作]
まず、本実施形態によるデータ変換システムによる入力データの整合性チェック動作を説明する。この整合性チェック動作は、図2に示す如く、データチェックシステム300のデータチェックエンジン部301が、データチェックパラメータ302からデータチェックパラメータを読み込むステップS501と、チェック対象の入力データの1階層データを読み込むステップS502と、該読み込んだ1階層データの構造チェックを行い、不整合(NG)と判定したときにエラーログを出力するステップS508に移行するステップS503と、該ステップS503において構造チェック結果が整合性あり(OK)と判定されたときに前記1階層データを読み込むステップS504と、該読み込んだ1階層データの項目チェックを行い、不整合(NG)と判定したときに前記ステップS508に移行するステップS505と、該ステップS505により整合性あり(OK)と判定されたときにコードリストのチェックを行い、不整合(NG)と判定したときに前記ステップS508に移行するステップS506と、チェック対象のデータが末尾(最下層)か否かを判定し、末尾でないと判定したときに前記ステップS502に戻り、末尾と判定したときに処理を終了するステップS507とを実行する。
【0024】
本実施形態によるデータチェックシステム300は、前述の各ステップを実行することによって、多層構造から成る入力データを1階層毎に読み込んで各層の構造と項目とコードリストの各チェックを実行することによって、入力データの不整合を判定することができる。
【0025】
[データチェックパラメータ及び変換パラメータ生成動作]
次いで本実施形態によるデータ変換システムは、データチェックシステム300が、前述の変換エンジン部203が変換パラメータを参照してデータ変換(例えば、固定長形式データをXML形式データに変換)するものであって、この変換動作を図3を参照して説明する。
この変換動作処理は、図3に示す如く、データ変換定義設定システム100のパラメータ生成エンジン103が、固定長定義情報テーブル部101から固定長定義情報を読み込むと共にXML定義情報テーブル部103からXML定義情報を読み込むステップS101と、これら読み込んだ定義情報を基にデータチェックパラメータ302を出力するステップS102と、データチェックエンジン部301が、固定長形式の入力データ202及び前述のデータチェックパラメータ302を基に入力データのデータチェックを行うステップS103と、該ステップS103によるチェック結果が正常(不整合がない入力データ)であるか否かを判定するステップS105と、該ステップS105により異常ありと判定したとき、チェック結果データ303を参照し、入力データの異常(不整合)箇所を修正して前記ステップS102に戻るステップS104と、前記ステップS105において異常(不整合)なしと判定したとき、前記変換パラメータ201を変換エンジン部203に出力するステップS106と、変換エンジン部203が、前記入力した変換パラメータ201を用いて入力データ202を変換し、出力データ204として出力するステップS107とを実行することによって、入力データの整合性のチェックを行った後にデータ変換を行う様に動作することができる。
【0026】
[データチェックパラメータ302出力処理]
前記ステップS102によるデータチェックパラメータを出力する処理は、図8に示す如く、パラメータ生成エンジン部104が、固定長定義情報テーブル部101から固定長定義情報を読み込むと共にXML定義情報テーブル部103からXML定義情報を読み込むステップS201と、該読み込んだ固定長定義情報及びXML定義情報を入力データチェックワークテーブル(図示しないメモリ上の一時記憶領域)に、図5に示した各情報を出現順序/必須又は任意等の階層情報として格納して反映させるステップS202と、前記入力データチェックワークテーブルに、図6に示した項目定義情報を属性/桁数/必須又は任意等の項目情報に格納して反映させるステップS203と、入力データチェックワークテーブルに格納した各データ内容をデータチェックパラメータ302として出力するステップS204とを実行することによって、データチェックパラメータ302として出力することができる。
【0027】
前記ステップS201により入力データチェックワークテーブルに格納される情報は、階層名に対応した識別文字/レコード長/出現順序/必須又は任意の区分情報であり、例えば、図10(a)に示す如く、階層名「転送ヘッダ」に対して識別文字が「S」、レコード長が「##」、出現順序が「1」、区分が「必須」の如く格納され、前記ステップS202により入力データチェックワークテーブルに格納される情報は、項目名に対応した各要素情報を格納したものであり、例えば、図10(a)に示す如く、項目名「商品コードの群版」の開始位置が「6」、長さが「12」、入力属性が「9」、出力属性が「英数」、桁数が「最大10」、必須区分が「任意」の如く格納され、他の項目名に対する要素情報も図示の通りである。
【0028】
[変換パラメータ201生成処理]
前記ステップS102による変換パラメータ201の生成(出力)処理は、図9に示す如く、パラメータ生成エンジン部104が、固定長定義情報テーブル部101から固定長定義情報を読み込むと共にXML定義情報テーブル部103からXML定義情報を読み込むステップS301と、該読み込んだ固定長定義情報及びXML定義情報を後述の如く紐付けた階層情報として変換定義ワークテーブル(図示しないメモリ上の一時記憶領域)に格納して反映させるステップS302と、前記変換定義ワークテーブルに、各定義情報を紐付けた要素情報を追加するステップS303と、該変換定義ワークテーブルに格納した各種情報をデータチェックパラメータ302として出力するステップS304とを実行する。
【0029】
前記ステップS302により変換定義ワークテーブルに格納する階層情報は、階層名に対応した識別文字/レコード長/タグ名(XPath)から成る各階層情報であって、図11(a)に示す如く、例えば、階層名「転送ヘッダ」の識別文字が「S」、レコード長が「##」(任意の値)、タグ名(XPath)が「shStandardBussinessDocumentHeader」の如く格納され、他の項目名に対する階層情報も図示の通りである。
【0030】
前記ステップS303により変換定義ワークテーブルに格納する要素情報は、項目名に対応した開始位置/長さ/タグ名(XPath)/変換情報から成る要素情報であって、図11(b)に示す如く、例えば、階層名「伝票行番号」の開始位置が「4」、長さが「3」、タグ名(XPath)が「data/list/item/lineNuber」、変換情報が「前ゼロつめ」の如く格納され、他の項目名に対する要素情報も図示の通りである。
【0031】
[ステップS105による構造チェック処理]
前述の図3変換処理においてステップS105によりデータチェックエンジン部301が実行する入力データ202の構造チェック処理手順の詳細を次に図12を参照して説明する。
このチェック処理手順は、データチェックエンジン部301が、図12に示す如く、取得した1階層情報が階層チェックが初回か否かを判定するステップS401と、該ステップS401において初回でないと判定したとき、前回のチェック対象階層情報の階層出現順序(番号)と現在のチェック対象の階層出現順序(番号)とを比較するステップS402を実行する。前記階層出現順位とは、図4に示したデータの各階層の予め定められた出現する順位(順番)であって、前述のステップS402においては、今回の階層出現順位(例えば2階層目)が、前回の階層出現順位(例えば1階層目)と等しいか小さいか(≧)を判定することによって、今回階層出現順位が前回階層出現順位と同位又は下位か否かを判定する。
【0032】
次いで本処理手順は、前記ステップS402において、今回の階層出現順位(例えば2階層目)が前回の階層出現順位(例えば1階層目)と等しいか小さい(≧)と判定したとき、即ち、今回の階層順位が前回階層順位以下と判定したとき、前回チェック対象階層データの前階層と今回チェック対象階層との間に、必須階層が存在しないか否かを判定し、必須階層が存在しないと判定したとき、不整合(NG)な入力データであると判定するステップS406に移行するステップS403と、前記ステップS402において、今回の階層出現順位(例えば2階層目)が前回の階層出現順位(例えば1階層目)と等しいか小くないと判定したとき、即ち、今回の階層順位が前回階層順位以上(同順位は除く)と判定したとき、下層に必須の階層が存在するか否かを判定し、存在すると判定したときには、整合(OK)データであると判定するステップS405に移行し、存在しないと判定したとき、不整合(NG)な入力データであると判定するステップS406に移行するステップS404とを実行する。
【0033】
このように本実施形態によるチェック処理手順は、データチェックエンジン部301が、今回階層出現順位と前回階層出現順位を比較し、今回階層出現順位が前回階層出現順位と比較して下位か否かを判定(ステップS402)する第1工程と、該第1工程による判定により上位と判定(ステップS402においてN)したとき、今回チェック階層の下層に必須の階層が存在か否かを判定する第2工程(ステップS404)と、前記第1工程により前記今回階層出現順位が前回階層出現順位と比較して下位か否かの判定において下位でないと判定したとき、前回階層と今回階層との間に必須の階層が存在するか否かを判定する第3工程(ステップS403)とを実行し、
前記第2工程において今回チェック階層の下層に必須の階層が構造定義情報では存在しないと判定(ステップS404においてN)したとき、又は第3工程において前回階層と今回階層との間に必須の階層が構造定義情報では存在すると判定したとき(ステップS403においてY)、入力データが整合性があることをチェックし、前記第2工程において今回チェック階層の下層に必須の階層が構造定義情報では存在すると判定(ステップS404においてY)したとき、又は第3工程において前回階層と今回階層との間に必須の階層が構造定義情報では存在しないと判定したとき(ステップS403においてN)、入力データが不整合性があることをチェックすることができる。
【0034】
[ステップS105による項目チェック処理]
前述の図3チェック処理においてステップS105によりデータチェックエンジン部301が実行する入力データ202のチェック処理手順の詳細を次に図13を参照して説明する。
【0035】
この項目チェック処理手順は、データチェックエンジン部301が、図12に示す如く、入力データの項目が属性情報を満たすか否かを判定するステップS501と、項目が桁数条件を満たすか否かを判定するステップS502と、入力データの項目が必須条件を満たすか否かを判定するステップS503とを実行し、前記ステップS501における何れかの条件を満たさないと判定したときに入力データが不整合とチェックし、前記各ステップS501〜S503の全条件を満たすと判定したときに入力データが整合あるとチェックすることができる。
【0036】
[フィールドリストチェック]
前記図2のコードリストチェックを行うステップS506の処理動作を次に図14を参照して説明する。このコードリストチェック処理は、図14に示す如く、まずステップS504にて取得した1項目情報がコード変換テーブル(図7[a]の変換定義情報)の該当項目入力値の何れかに一致するか否かを判定し、該当項目入力値の何れかに一致したときに整合性ありのステップS702に移行し、該当項目入力値の何れかに一致しない際には整合性なしとするステップS703に移行するステップS701を実行することによって、コードリストチェックを行うことができる。
【符号の説明】
【0037】
100:データ変換定義設定システム、101:固定長定義情報テーブル部、102:変換定義情報テーブル部、103:XML定義情報テーブル部、104:パラメータ生成エンジン部、200:データ変換システム、201:変換パラメータ、202:入力データ、203:変換エンジン部、300:データチェックシステム、301:データチェックエンジン部、302:データチェックパラメータテーブル部、303:チェック結果データ。
【技術分野】
【0001】
本発明は、異なるデータ形式のデータを相互形式に変換することができるデータ変換システム及びデータ変換方法に係り、特に変換前のデータ形式の不整合をチェックすることができるデータ変換システム及びデータ変換方法に関する。
【背景技術】
【0002】
近年、商取引に関する情報を標準的な書式に統一し、企業間で電子的に交換するEDI(Electronic Data Interchange)システムが構築され、このEDIシステムは、企業間での受発注や見積もり/決済/出入荷などに関わる電子データを、あらかじめ定められた形式にしたがって電子化し、専用線やVANなどのネットワークを通じて送受信することが行われている。
【0003】
このEDIシステムは、データ交換の手順(通信プロトコル)や使用する業務メッセージ(発注、支払など)が企業毎に異なることが多く、更に小売企業毎にメッセージの形式が異なる場合が多いため、企業同士が直接やりとりする方式ではなく、EDIセンタという中継センタを経由してやりとりする場合が多い。このEDIシステムにおけるデータ形式としては、大別して、固定長形式と流通ビジネスメッセージ標準形式(流通BMS形式)があり、流通BMS形式の基準形式はXMLフォーマットである。尚、XML(eXxtensible Markup Language)形式データとは、文書やデータの意味や構造を記述するためのマークアップ言語により記述されたデータであり、固定長形式データとは、格納するデータ種(属性)及びデータサイズ(長さ)を予め定めた形式で記述したデータを言う。
【0004】
このようにEDIシステムは、異なる形式のデータの変換を行うデータ変換機能を備えるため、データ形式やデータ構造について、事前に双方の取り決めを行うことが不可欠であり、取り決めに適合するデータであるか否かをチェックするために、専用のデータチェックシステムを開発することが必要であった。
【0005】
また、一般にXMLデータの内容整合性チェックを行うための標準規格としてXML Schemaと呼ばれるXML木構造等の定義を表すスキーマがあり、このスキーマを用いてXMLデータの整合性チェックを実施することができる。
【0006】
尚、前記データ形式の整合性をチェックする技術が記載された文献としては下記特許文献1が挙げられる。この特許文献1には、チェック条件をデータベースに記憶させておき、チェック条件論理式を、データ名に演算子及び関数を組み合わせて作成することにより、チェック条件の変更を容易に行うことができるとする技術が記載されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2004−213488号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
従来技術によるEDIシステムにおけるデータ形式の整合性チェック手法は、変換後データの整合性のチェックの結果、不整合が判明したとしても、変換前のデータにおける不整合箇所を特定することが困難であると言う不具合があった。また、変換後XMLデータのXMLスキーマチェック項目を変換前データにおいてチェックしようとした場合、XMLスキーマ数×データ形式数だけのデータチェックシステムを開発する必要があり、作業負荷及びコストが増大すると言う不具合もあった。また、チェック定義をパラメータ等に切り出し、共通のチェックシステムを開発することも考えられるが、チェック定義を行うための作業がスキーマ数×データ形式数だけ発生すると言う不具合もあった。
【0009】
本発明の目的は、変換元のデータ形式不整合を容易にチェックすることができるデータ変換システム及びデータ変換方法を提供することである。
【課題を解決するための手段】
【0010】
前記目的を達成するために本発明は、マークアップ言語により記述されたマークアップ言語形式データとデータ種及びデータ長さを予め固定して記述された固定長形式データとの相互変換をコンピュータにより行うデータ変換システムであって、
前記固定長形式データを構成する階層名と該階層名に対応したデータ開始位置とデータ長さとデータ属性と該階層名の出現順序と必須項目か否かを示す必須フラグとを含む固定長データ構造情報を格納した固定長定義情報テーブル部と、
前記マークアップ言語形式データを構成する階層名と該階層名に対応したタグ名と該階層名の出現順序と必須項目か否かを示す必須フラグとを含むマークアップ言語データ構造情報を格納したマークアップ言語定義情報テーブル部と、
前記マークアップ言語形式データの階層名と固定長形式データの階層名との階層名対応情報を格納した変換定義情報テーブル部と、
前記固定長定義情報テーブル部に格納した固定長データ構造情報と前記マークアップ言語定義情報テーブル部に格納したマークアップ言語データ構造情報と前記変換定義情報テーブル部に格納した階層名対応情報とを読み込み、該読み込んだ固定長データ構造情報とマークアップ言語データ構造情報と階層名対応情報とを基に、固定長形式データをマークアップ言語形式データに変換又はマークアップ言語形式データを固定長形式データに変換するための変換パラメータ情報を生成すると共に、固定長形式データ及びマークアップ言語形式データが前記固定長データ構造情報及びマークアップ言語データ構造情報と整合性が有るか否かを判定するためのデータチェックパラメータ情報を生成するパラメータ生成エンジン部と、
前記データチェックパラメータ情報を基に変換元のマークアップ言語形式データ及び固定長形式データの前記整合性を検証するためのデータチェックエンジン部とを備え、
前記データチェックエンジン部が、前記変換元のマークアップ言語形式データ及び固定長形式データに含まれる階層名の出現順序が前記データチェックパラメータ情報に含まれる階層名の出現順序と整合するか否かを判定する第1工程と、該第1工程により前記変換元データの階層名の出現順序がデータチェックパラメータ情報に含まれる階層名の出現順序と整合しないと判定したとき、前記変換元データがエラーと通知する第2工程とを実行することを第1の特徴とする。
【0011】
また本発明は、第1の特徴のデータ変換システムにおいて、前記マークアップ言語定義情報テーブル部が、前記マークアップ言語形式データに含まれる階層名の出現順序を、最上階層名段を所定の値に設定し、該最上段から下層になるに従って前記所定の値を増加させる数値として格納し、
前記データチェックエンジン部が、前記変換元データを1階層毎に読み込み、今回読み込んだ階層名に対応する階層出現順位値が、前回読み込んだ階層名に対応する階層出現順位値以下か否かを判定する第3工程と、該第3工程の判定により今回読み込んだ階層出現順位値が前回読み込んだ階層出現順位値以下でないと判定したとき、該今回読み込んだ階層名の下層に必須の階層名が格納されているかを前記必須フラグを参照して判定する第4工程と、前記第3工程の判定により今回読み込んだ階層出現順位値が前回読み込んだ階層出現順位値以下であると判定したとき、前回読み込んだ階層名と今回読み込んだ階層名との間に必須の階層名があるか否かを前記必須フラグにより判定する第5工程とを実行し、
前記第4工程により下層に必須の階層名が格納されていないと判定、又は前記第5工程により前回読み込んだ階層名と今回読み込んだ階層名との間に必須の階層名がないと判定したとき、変換元データが整合ありと判定し、
前記第4工程により下層に必須の階層名が格納されていると判定、又は前記第5工程により前回読み込んだ階層名と今回読み込んだ階層名との間に必須の階層名があると判定したとき、変換元データが整合なしと判定することを第2の特徴とする。
【0012】
更に本発明は、固定長形式データを構成する階層名と該階層名に対応したデータ開始位置とデータ長さとデータ属性と該階層名の出現順序と必須項目か否かを示す必須フラグとを含む固定長データ構造情報を格納した固定長定義情報テーブル部と、
マークアップ言語形式データを構成する階層名と該階層名に対応したタグ名と該階層名の出現順序と必須項目か否かを示す必須フラグとを含むマークアップ言語データ構造情報を格納したマークアップ言語定義情報テーブル部と、
前記マークアップ言語形式データの階層名と固定長形式データの階層名との階層名対応情報を格納した変換定義情報テーブル部と、
前記固定長定義情報テーブル部に格納した固定長データ構造情報と前記マークアップ言語定義情報テーブル部に格納したマークアップ言語データ構造情報と前記変換定義情報テーブル部に格納した階層名対応情報とを読み込み、該読み込んだ固定長データ構造情報とマークアップ言語データ構造情報と階層名対応情報とを基に、固定長形式データをマークアップ言語形式データに変換又はマークアップ言語形式データを固定長形式データに変換するための変換パラメータ情報を生成すると共に、固定長形式データ及びマークアップ言語形式データが前記固定長データ構造情報及びマークアップ言語データ構造情報と整合性が有るか否かを判定するためのデータチェックパラメータ情報を生成するパラメータ生成エンジン部と、
前記データチェックパラメータ情報を基に変換元のマークアップ言語形式データ及び固定長形式データの前記整合性を検証するためのデータチェックエンジン部とを備え、マークアップ言語により記述されたマークアップ言語形式データとデータ種及びデータ長さを予め固定して記述された固定長形式データとの相互変換を行うデータ変換方法であって、
前記データチェックエンジンに、
前記変換元のマークアップ言語形式データ及び固定長形式データに含まれる階層名の出現順序が前記データチェックパラメータ情報に含まれる階層名の出現順序と整合するか否かを判定する第1工程と、該第1工程により前記変換元データの階層名の出現順序がデータチェックパラメータ情報に含まれる階層名の出現順序と整合しないと判定したとき、前記変換元データがエラーと通知する第2工程とを実行させることを第3の特徴とする。
【0013】
また本発明は、第3の特徴のデータ変換方法において、前記マークアップ言語定義情報テーブル部が、前記マークアップ言語形式データに含まれる階層名の出現順序を、最上階層名段を所定の値に設定し、該最上段から下層になるに従って前記所定の値を増加させる数値として格納し、
前記データチェックエンジン部に、
前記変換元データを1階層毎に読み込み、今回読み込んだ階層名に対応する階層出現順位値が、前回読み込んだ階層名に対応する階層出現順位値以下か否かを判定する第3工程と、該第3工程の判定により今回読み込んだ階層出現順位値が前回読み込んだ階層出現順位値以下でないと判定したとき、該今回読み込んだ階層名の下層に必須の階層名が格納されているかを前記必須フラグを参照して判定する第4工程と、前記第3工程の判定により今回読み込んだ階層出現順位値が前回読み込んだ階層出現順位値以下であると判定したとき、前回読み込んだ階層名と今回読み込んだ階層名との間に必須の階層名があるか否かを前記必須フラグにより判定する第5工程とを実行し、
前記第4工程により下層に必須の階層名が格納されていないと判定、又は前記第5工程により前回読み込んだ階層名と今回読み込んだ階層名との間に必須の階層名がないと判定したとき、変換元データが整合ありと判定し、
前記第4工程により下層に必須の階層名が格納されていると判定、又は前記第5工程により前回読み込んだ階層名と今回読み込んだ階層名との間に必須の階層名があると判定したとき、変換元データが整合なしと判定することを第4の特徴とする。
【発明の効果】
【0014】
本発明によるデータ変換システム及び方法は、前記データチェックエンジンが、前記変換元のマークアップ言語形式データ及び固定長形式データに含まれる階層名の出現順序が前記データチェックパラメータ情報に含まれる階層名の出現順序と整合するか否かを判定する第1工程と、該第1工程により前記変換元データの階層名の出現順序がデータチェックパラメータ情報に含まれる階層名の出現順序と整合しないと判定したとき、前記変換元データがエラーと通知する第2工程とを実行させることによって、階層の出現順位の相違による変換元データの不整合を検出することができる。
【図面の簡単な説明】
【0015】
【図1】本発明の一実施形態によるデータ変換システムの全体構成図。
【図2】本実施形態によるデータ変換システムの全体動作フロー図。
【図3】本実施形態によるデータ変換システムのチェック処理動作フロー図。
【図4】本実施形態によるデータ形式の不整合を説明するための図。
【図5】本実施形態による定義情報のデータ構成を説明するための図。
【図6】本実施形態による定義情報のデータ構成の具体例を示す図。
【図7】本実施形態による変換定義情報におけるコード変換テーブル例を示す図。
【図8】本実施形態によるチェックパラメータの出力フロー図。
【図9】本実施形態による変換パラメータの出力フロー図。
【図10】本実施形態による入力データ形式ワークテーブルを示す図。
【図11】本実施形態による変換定義ワークテーブルを示す図。
【図12】本実施形態による構造チェックの処理フロー図。
【図13】本実施形態による項目チェックの処理フロー図。
【図14】本実施形態によるコードリストチェックの処理フロー図。
【発明を実施するための形態】
【0016】
以下、本発明によるデータ変換方法を実現するデータ変換システムを図面を参照して説明するが、まず、本発明の前提となるデータの不整合について説明する。例えば、電子商取引における固定長データ形式は、例えば図4(a)に示す如く、最初に転送ヘッダS、該転送ヘッダSの1段下層にファイルヘッダA及びBがあり、これらファイルヘッダA及びBの1段下層に伝票ヘッダBがあり、該伝票ヘッダBの1段下層に伝票明細Dが位置する様に定義されている。本実施形態で述べるデータの不整合とは、例えば図4(b)に示す如く、2段目のファイルヘッダA(2)の1段下に存在すべき伝票ヘッダB(3)がなく、伝票明細D(5)が位置してしまうような、図4(a)に示した定義に合致しないデータ形式のことを言う。
【0017】
[全体構成]
さて、本実施形態によるデータ変換システムは、例えば電子商取引におけるEDIシステムに含まれるものであって、図1に示す如く、変換前後のデータ形式の定義情報を基に変換パラメータ201及びデータチェックパラメータ302を生成するデータ変換定義設定システム100と、該データ変換定義設定システム100が生成した変換パラメータ201を用いて入力データ(例えば固定長形式データ)202を出力データ(XML形式データ)204に変換するデータ変換システム200と、前記データチェックパラメータ302及び入力データ202を入力して入力データ202の整合性をチェックするデータチェックシステム300とから構成されている。尚、本明細書では、ハードウェア的な図示及び説明を行うが、前述の各システムはコンピュータのメモリに格納されるデータやプログラムによって構成されるものである。
【0018】
[データ変換定義設定システム100]
前記データ変換定義設定システム100は、電子商取引のデータを予め固定長のデータ形式として定義した固定長定義情報を格納する固定長定義情報テーブル部101と、電子商取引のデータを予めXMLのデータ形式として定義したXML定義情報を格納するXML定義情報テーブル部103と、前記固定長定義情報とXML定義情報間相互の変換情報を格納する変換定義情報テーブル部102と、前記固定長定義情報テーブル部101に格納した固定長定義情報とXML定義情報テーブル部103に格納したXML定義情報と前記変換定義情報テーブル部102に格納した変換情報とを基に、後述する変換パラメータ201及びデータチェックパラメータ302を生成するパラメータ生成エンジン部104とから構成される。
【0019】
[固定長定義情報テーブル部101]
前記固定長定義情報テーブル部101に格納した固定長定義情報の構造は、例えば図5(a)に示す如く、階層名として、「転送ヘッダ」「ファイルヘッダ」「伝票ヘッダ」「伝票明細」の4階層名であること、各々の識別文字が「S」「A」「B」「D」と定義されていること、各レコード長が256ビットであることがデータ構造として定義されている。この固定長定義情報テーブル部101には、項目名に応じた固定長データの開始位置/長さ/属性の固定長データの項目情報が定義されており、これは例えば図6(a)に示す如く、項目名「レコード区分」の開始位置が「1」、長さが「1」、属性が「X」の如く定義されており、他の項目名に対する項目情報も図示の通りである。
【0020】
[変換定義情報テーブル部102]
前記変換定義情報テーブル部102に格納した変換情報の構造は、図5(b)に示す如く、変換元(固定長形式)と変換後(XML形式)の定義名の対応は、変換元「階層名」が変換後「階層名」、変換元「転送ヘッダ」が変換後「SBDH」、変換元「ファイルヘッダ」が「ヘッダ」、変換元「伝票ヘッダ」が変換後「取引」、変換元「伝票明細」が変換後「明細」に各々対応しているとして定義されている。この変換定義情報テーブル部102には、変換元の固定長形式の項目名に対応する変換後のXML形式の項目名及び変換情報が登録されており、これは、例えば図6(b)に示す如く、変換元項目名「伝票番号」に対応する変換後の項目名が「明細番号」であり、変換情報が「前ゼロ埋め(桁数に対して桁数上位の空き桁にゼロを挿入する)」形式であるの如く定義されており、他の項目名に対する情報も図示の通りである。
【0021】
[XML定義情報テーブル部103]
前記XML定義情報テーブル部103に格納したXML定義情報の構造は、図5(b)に示す如く、階層名に対する「タグ名」「出現順序」「必須か任意か」の各項目が定義されており、例えば階層名「SBDH」(Standard Business Document Header)のタグ名が「shStandardBussinessDocumentHeader」、出現順序が「1」、「必須フラグ」として格納されている。このXML定義情報テーブル部103には、項目名に対するタグ名(XPath)/属性/桁数/必須か任意かの区分情報のXML項目情報が定義されており、これは例えば図6(c)に示す如く、項目名「明細番号」のタグ名(XPath)が「data/list/item/lineNumber」、属性が「英数」、桁数が「最大4」、区分情報が「必須」の如く定義されており、他の項目名に対する項目情報も図示の通りである。この前記XML定義情報テーブル部103には、項目名に対するタグ名(XPath)/属性/桁数/必須か任意かの区分情報のXML項目情報が定義されており、これは例えば図6(c)に示す如く、項目名「明細番号」のタグ名(XPath)が「data/list/item/lineNumber」、属性が「英数」、桁数が「最大4」、区分情報が「必須」の如く定義されており、他の項目名に対する項目情報も図示の通りである。尚、図6(c)では省略しているが、階層名の出現順位を図5(c)と同様に数値として格納しても良い。
【0022】
尚、前記図6(b)の「伝票レス区分」は伝票を要しない区分コードを示し、例えば図7(b)に示す如く、コード「01」が「伝票レス」(紙伝票が存在しない)、コード「02」が「伝票あり」(紙伝票が存在すること)を意味するものであって、変換前後の変換テーブルは、例えば図7(a)に示す如く、入力と出力の関係として定義づけられている。
【0023】
[動作]
次に、前述の様に構成した本実施形態によるデータ変換システム(EDIシステム)が固定長形式データをXML形式データに変換する動作を動作フロー図を参照して説明する。
[入力データの整合性チェック動作]
まず、本実施形態によるデータ変換システムによる入力データの整合性チェック動作を説明する。この整合性チェック動作は、図2に示す如く、データチェックシステム300のデータチェックエンジン部301が、データチェックパラメータ302からデータチェックパラメータを読み込むステップS501と、チェック対象の入力データの1階層データを読み込むステップS502と、該読み込んだ1階層データの構造チェックを行い、不整合(NG)と判定したときにエラーログを出力するステップS508に移行するステップS503と、該ステップS503において構造チェック結果が整合性あり(OK)と判定されたときに前記1階層データを読み込むステップS504と、該読み込んだ1階層データの項目チェックを行い、不整合(NG)と判定したときに前記ステップS508に移行するステップS505と、該ステップS505により整合性あり(OK)と判定されたときにコードリストのチェックを行い、不整合(NG)と判定したときに前記ステップS508に移行するステップS506と、チェック対象のデータが末尾(最下層)か否かを判定し、末尾でないと判定したときに前記ステップS502に戻り、末尾と判定したときに処理を終了するステップS507とを実行する。
【0024】
本実施形態によるデータチェックシステム300は、前述の各ステップを実行することによって、多層構造から成る入力データを1階層毎に読み込んで各層の構造と項目とコードリストの各チェックを実行することによって、入力データの不整合を判定することができる。
【0025】
[データチェックパラメータ及び変換パラメータ生成動作]
次いで本実施形態によるデータ変換システムは、データチェックシステム300が、前述の変換エンジン部203が変換パラメータを参照してデータ変換(例えば、固定長形式データをXML形式データに変換)するものであって、この変換動作を図3を参照して説明する。
この変換動作処理は、図3に示す如く、データ変換定義設定システム100のパラメータ生成エンジン103が、固定長定義情報テーブル部101から固定長定義情報を読み込むと共にXML定義情報テーブル部103からXML定義情報を読み込むステップS101と、これら読み込んだ定義情報を基にデータチェックパラメータ302を出力するステップS102と、データチェックエンジン部301が、固定長形式の入力データ202及び前述のデータチェックパラメータ302を基に入力データのデータチェックを行うステップS103と、該ステップS103によるチェック結果が正常(不整合がない入力データ)であるか否かを判定するステップS105と、該ステップS105により異常ありと判定したとき、チェック結果データ303を参照し、入力データの異常(不整合)箇所を修正して前記ステップS102に戻るステップS104と、前記ステップS105において異常(不整合)なしと判定したとき、前記変換パラメータ201を変換エンジン部203に出力するステップS106と、変換エンジン部203が、前記入力した変換パラメータ201を用いて入力データ202を変換し、出力データ204として出力するステップS107とを実行することによって、入力データの整合性のチェックを行った後にデータ変換を行う様に動作することができる。
【0026】
[データチェックパラメータ302出力処理]
前記ステップS102によるデータチェックパラメータを出力する処理は、図8に示す如く、パラメータ生成エンジン部104が、固定長定義情報テーブル部101から固定長定義情報を読み込むと共にXML定義情報テーブル部103からXML定義情報を読み込むステップS201と、該読み込んだ固定長定義情報及びXML定義情報を入力データチェックワークテーブル(図示しないメモリ上の一時記憶領域)に、図5に示した各情報を出現順序/必須又は任意等の階層情報として格納して反映させるステップS202と、前記入力データチェックワークテーブルに、図6に示した項目定義情報を属性/桁数/必須又は任意等の項目情報に格納して反映させるステップS203と、入力データチェックワークテーブルに格納した各データ内容をデータチェックパラメータ302として出力するステップS204とを実行することによって、データチェックパラメータ302として出力することができる。
【0027】
前記ステップS201により入力データチェックワークテーブルに格納される情報は、階層名に対応した識別文字/レコード長/出現順序/必須又は任意の区分情報であり、例えば、図10(a)に示す如く、階層名「転送ヘッダ」に対して識別文字が「S」、レコード長が「##」、出現順序が「1」、区分が「必須」の如く格納され、前記ステップS202により入力データチェックワークテーブルに格納される情報は、項目名に対応した各要素情報を格納したものであり、例えば、図10(a)に示す如く、項目名「商品コードの群版」の開始位置が「6」、長さが「12」、入力属性が「9」、出力属性が「英数」、桁数が「最大10」、必須区分が「任意」の如く格納され、他の項目名に対する要素情報も図示の通りである。
【0028】
[変換パラメータ201生成処理]
前記ステップS102による変換パラメータ201の生成(出力)処理は、図9に示す如く、パラメータ生成エンジン部104が、固定長定義情報テーブル部101から固定長定義情報を読み込むと共にXML定義情報テーブル部103からXML定義情報を読み込むステップS301と、該読み込んだ固定長定義情報及びXML定義情報を後述の如く紐付けた階層情報として変換定義ワークテーブル(図示しないメモリ上の一時記憶領域)に格納して反映させるステップS302と、前記変換定義ワークテーブルに、各定義情報を紐付けた要素情報を追加するステップS303と、該変換定義ワークテーブルに格納した各種情報をデータチェックパラメータ302として出力するステップS304とを実行する。
【0029】
前記ステップS302により変換定義ワークテーブルに格納する階層情報は、階層名に対応した識別文字/レコード長/タグ名(XPath)から成る各階層情報であって、図11(a)に示す如く、例えば、階層名「転送ヘッダ」の識別文字が「S」、レコード長が「##」(任意の値)、タグ名(XPath)が「shStandardBussinessDocumentHeader」の如く格納され、他の項目名に対する階層情報も図示の通りである。
【0030】
前記ステップS303により変換定義ワークテーブルに格納する要素情報は、項目名に対応した開始位置/長さ/タグ名(XPath)/変換情報から成る要素情報であって、図11(b)に示す如く、例えば、階層名「伝票行番号」の開始位置が「4」、長さが「3」、タグ名(XPath)が「data/list/item/lineNuber」、変換情報が「前ゼロつめ」の如く格納され、他の項目名に対する要素情報も図示の通りである。
【0031】
[ステップS105による構造チェック処理]
前述の図3変換処理においてステップS105によりデータチェックエンジン部301が実行する入力データ202の構造チェック処理手順の詳細を次に図12を参照して説明する。
このチェック処理手順は、データチェックエンジン部301が、図12に示す如く、取得した1階層情報が階層チェックが初回か否かを判定するステップS401と、該ステップS401において初回でないと判定したとき、前回のチェック対象階層情報の階層出現順序(番号)と現在のチェック対象の階層出現順序(番号)とを比較するステップS402を実行する。前記階層出現順位とは、図4に示したデータの各階層の予め定められた出現する順位(順番)であって、前述のステップS402においては、今回の階層出現順位(例えば2階層目)が、前回の階層出現順位(例えば1階層目)と等しいか小さいか(≧)を判定することによって、今回階層出現順位が前回階層出現順位と同位又は下位か否かを判定する。
【0032】
次いで本処理手順は、前記ステップS402において、今回の階層出現順位(例えば2階層目)が前回の階層出現順位(例えば1階層目)と等しいか小さい(≧)と判定したとき、即ち、今回の階層順位が前回階層順位以下と判定したとき、前回チェック対象階層データの前階層と今回チェック対象階層との間に、必須階層が存在しないか否かを判定し、必須階層が存在しないと判定したとき、不整合(NG)な入力データであると判定するステップS406に移行するステップS403と、前記ステップS402において、今回の階層出現順位(例えば2階層目)が前回の階層出現順位(例えば1階層目)と等しいか小くないと判定したとき、即ち、今回の階層順位が前回階層順位以上(同順位は除く)と判定したとき、下層に必須の階層が存在するか否かを判定し、存在すると判定したときには、整合(OK)データであると判定するステップS405に移行し、存在しないと判定したとき、不整合(NG)な入力データであると判定するステップS406に移行するステップS404とを実行する。
【0033】
このように本実施形態によるチェック処理手順は、データチェックエンジン部301が、今回階層出現順位と前回階層出現順位を比較し、今回階層出現順位が前回階層出現順位と比較して下位か否かを判定(ステップS402)する第1工程と、該第1工程による判定により上位と判定(ステップS402においてN)したとき、今回チェック階層の下層に必須の階層が存在か否かを判定する第2工程(ステップS404)と、前記第1工程により前記今回階層出現順位が前回階層出現順位と比較して下位か否かの判定において下位でないと判定したとき、前回階層と今回階層との間に必須の階層が存在するか否かを判定する第3工程(ステップS403)とを実行し、
前記第2工程において今回チェック階層の下層に必須の階層が構造定義情報では存在しないと判定(ステップS404においてN)したとき、又は第3工程において前回階層と今回階層との間に必須の階層が構造定義情報では存在すると判定したとき(ステップS403においてY)、入力データが整合性があることをチェックし、前記第2工程において今回チェック階層の下層に必須の階層が構造定義情報では存在すると判定(ステップS404においてY)したとき、又は第3工程において前回階層と今回階層との間に必須の階層が構造定義情報では存在しないと判定したとき(ステップS403においてN)、入力データが不整合性があることをチェックすることができる。
【0034】
[ステップS105による項目チェック処理]
前述の図3チェック処理においてステップS105によりデータチェックエンジン部301が実行する入力データ202のチェック処理手順の詳細を次に図13を参照して説明する。
【0035】
この項目チェック処理手順は、データチェックエンジン部301が、図12に示す如く、入力データの項目が属性情報を満たすか否かを判定するステップS501と、項目が桁数条件を満たすか否かを判定するステップS502と、入力データの項目が必須条件を満たすか否かを判定するステップS503とを実行し、前記ステップS501における何れかの条件を満たさないと判定したときに入力データが不整合とチェックし、前記各ステップS501〜S503の全条件を満たすと判定したときに入力データが整合あるとチェックすることができる。
【0036】
[フィールドリストチェック]
前記図2のコードリストチェックを行うステップS506の処理動作を次に図14を参照して説明する。このコードリストチェック処理は、図14に示す如く、まずステップS504にて取得した1項目情報がコード変換テーブル(図7[a]の変換定義情報)の該当項目入力値の何れかに一致するか否かを判定し、該当項目入力値の何れかに一致したときに整合性ありのステップS702に移行し、該当項目入力値の何れかに一致しない際には整合性なしとするステップS703に移行するステップS701を実行することによって、コードリストチェックを行うことができる。
【符号の説明】
【0037】
100:データ変換定義設定システム、101:固定長定義情報テーブル部、102:変換定義情報テーブル部、103:XML定義情報テーブル部、104:パラメータ生成エンジン部、200:データ変換システム、201:変換パラメータ、202:入力データ、203:変換エンジン部、300:データチェックシステム、301:データチェックエンジン部、302:データチェックパラメータテーブル部、303:チェック結果データ。
【特許請求の範囲】
【請求項1】
マークアップ言語により記述されたマークアップ言語形式データとデータ種及びデータ長さを予め固定して記述された固定長形式データとの相互変換をコンピュータにより行うデータ変換システムであって、
前記固定長形式データを構成する階層名と該階層名に対応したデータ開始位置とデータ長さとデータ属性と該階層名の出現順序と必須項目か否かを示す必須フラグとを含む固定長データ構造情報を格納した固定長定義情報テーブル部と、
前記マークアップ言語形式データを構成する階層名と該階層名に対応したタグ名と該階層名の出現順序と必須項目か否かを示す必須フラグとを含むマークアップ言語データ構造情報を格納したマークアップ言語定義情報テーブル部と、
前記マークアップ言語形式データの階層名と固定長形式データの階層名との階層名対応情報を格納した変換定義情報テーブル部と、
前記固定長定義情報テーブル部に格納した固定長データ構造情報と前記マークアップ言語定義情報テーブル部に格納したマークアップ言語データ構造情報と前記変換定義情報テーブル部に格納した階層名対応情報とを読み込み、該読み込んだ固定長データ構造情報とマークアップ言語データ構造情報と階層名対応情報とを基に、固定長形式データをマークアップ言語形式データに変換又はマークアップ言語形式データを固定長形式データに変換するための変換パラメータ情報を生成すると共に、固定長形式データ及びマークアップ言語形式データが前記固定長データ構造情報及びマークアップ言語データ構造情報と整合性が有るか否かを判定するためのデータチェックパラメータ情報を生成するパラメータ生成エンジン部と、
前記データチェックパラメータ情報を基に変換元のマークアップ言語形式データ及び固定長形式データの前記整合性を検証するためのデータチェックエンジン部とを備え、
前記データチェックエンジン部が、前記変換元のマークアップ言語形式データ及び固定長形式データに含まれる階層名の出現順序が前記データチェックパラメータ情報に含まれる階層名の出現順序と整合するか否かを判定する第1工程と、該第1工程により前記変換元データの階層名の出現順序がデータチェックパラメータ情報に含まれる階層名の出現順序と整合しないと判定したとき、前記変換元データがエラーと通知する第2工程とを実行するデータ変換システム。
【請求項2】
前記マークアップ言語定義情報テーブル部が、前記マークアップ言語形式データに含まれる階層名の出現順序を、最上階層名段を所定の値に設定し、該最上段から下層になるに従って前記所定の値を増加させる数値として格納し、
前記データチェックエンジン部が、前記変換元データを1階層毎に読み込み、今回読み込んだ階層名に対応する階層出現順位値が、前回読み込んだ階層名に対応する階層出現順位値以下か否かを判定する第3工程と、該第3工程の判定により今回読み込んだ階層出現順位値が前回読み込んだ階層出現順位値以下でないと判定したとき、該今回読み込んだ階層名の下層に必須の階層名が格納されているかを前記必須フラグを参照して判定する第4工程と、前記第3工程の判定により今回読み込んだ階層出現順位値が前回読み込んだ階層出現順位値以下であると判定したとき、前回読み込んだ階層名と今回読み込んだ階層名との間に必須の階層名があるか否かを前記必須フラグにより判定する第5工程とを実行し、
前記第4工程により下層に必須の階層名が格納されていないと判定、又は前記第5工程により前回読み込んだ階層名と今回読み込んだ階層名との間に必須の階層名がないと判定したとき、変換元データが整合ありと判定し、
前記第4工程により下層に必須の階層名が格納されていると判定、又は前記第5工程により前回読み込んだ階層名と今回読み込んだ階層名との間に必須の階層名があると判定したとき、変換元データが整合なしと判定する請求項1記載のデータ変換システム。
【請求項3】
固定長形式データを構成する階層名と該階層名に対応したデータ開始位置とデータ長さとデータ属性と該階層名の出現順序と必須項目か否かを示す必須フラグとを含む固定長データ構造情報を格納した固定長定義情報テーブル部と、
マークアップ言語形式データを構成する階層名と該階層名に対応したタグ名と該階層名の出現順序と必須項目か否かを示す必須フラグとを含むマークアップ言語データ構造情報を格納したマークアップ言語定義情報テーブル部と、
前記マークアップ言語形式データの階層名と固定長形式データの階層名との階層名対応情報を格納した変換定義情報テーブル部と、
前記固定長定義情報テーブル部に格納した固定長データ構造情報と前記マークアップ言語定義情報テーブル部に格納したマークアップ言語データ構造情報と前記変換定義情報テーブル部に格納した階層名対応情報とを読み込み、該読み込んだ固定長データ構造情報とマークアップ言語データ構造情報と階層名対応情報とを基に、固定長形式データをマークアップ言語形式データに変換又はマークアップ言語形式データを固定長形式データに変換するための変換パラメータ情報を生成すると共に、固定長形式データ及びマークアップ言語形式データが前記固定長データ構造情報及びマークアップ言語データ構造情報と整合性が有るか否かを判定するためのデータチェックパラメータ情報を生成するパラメータ生成エンジン部と、
前記データチェックパラメータ情報を基に変換元のマークアップ言語形式データ及び固定長形式データの前記整合性を検証するためのデータチェックエンジン部とを備え、マークアップ言語により記述されたマークアップ言語形式データとデータ種及びデータ長さを予め固定して記述された固定長形式データとの相互変換を行うデータ変換方法であって、
前記データチェックエンジンに、
前記変換元のマークアップ言語形式データ及び固定長形式データに含まれる階層名の出現順序が前記データチェックパラメータ情報に含まれる階層名の出現順序と整合するか否かを判定する第1工程と、該第1工程により前記変換元データの階層名の出現順序がデータチェックパラメータ情報に含まれる階層名の出現順序と整合しないと判定したとき、前記変換元データがエラーと通知する第2工程とを実行するデータ変換方法。
【請求項4】
前記マークアップ言語定義情報テーブル部が、前記マークアップ言語形式データに含まれる階層名の出現順序を、最上階層名段を所定の値に設定し、該最上段から下層になるに従って前記所定の値を増加させる数値として格納し、
前記データチェックエンジン部に、
前記変換元データを1階層毎に読み込み、今回読み込んだ階層名に対応する階層出現順位値が、前回読み込んだ階層名に対応する階層出現順位値以下か否かを判定する第3工程と、該第3工程の判定により今回読み込んだ階層出現順位値が前回読み込んだ階層出現順位値以下でないと判定したとき、該今回読み込んだ階層名の下層に必須の階層名が格納されているかを前記必須フラグを参照して判定する第4工程と、前記第3工程の判定により今回読み込んだ階層出現順位値が前回読み込んだ階層出現順位値以下であると判定したとき、前回読み込んだ階層名と今回読み込んだ階層名との間に必須の階層名があるか否かを前記必須フラグにより判定する第5工程とを実行し、
前記第4工程により下層に必須の階層名が格納されていないと判定、又は前記第5工程により前回読み込んだ階層名と今回読み込んだ階層名との間に必須の階層名がないと判定したとき、変換元データが整合ありと判定し、
前記第4工程により下層に必須の階層名が格納されていると判定、又は前記第5工程により前回読み込んだ階層名と今回読み込んだ階層名との間に必須の階層名があると判定したとき、変換元データが整合なしと判定する請求項3記載のデータ変換方法。
【請求項1】
マークアップ言語により記述されたマークアップ言語形式データとデータ種及びデータ長さを予め固定して記述された固定長形式データとの相互変換をコンピュータにより行うデータ変換システムであって、
前記固定長形式データを構成する階層名と該階層名に対応したデータ開始位置とデータ長さとデータ属性と該階層名の出現順序と必須項目か否かを示す必須フラグとを含む固定長データ構造情報を格納した固定長定義情報テーブル部と、
前記マークアップ言語形式データを構成する階層名と該階層名に対応したタグ名と該階層名の出現順序と必須項目か否かを示す必須フラグとを含むマークアップ言語データ構造情報を格納したマークアップ言語定義情報テーブル部と、
前記マークアップ言語形式データの階層名と固定長形式データの階層名との階層名対応情報を格納した変換定義情報テーブル部と、
前記固定長定義情報テーブル部に格納した固定長データ構造情報と前記マークアップ言語定義情報テーブル部に格納したマークアップ言語データ構造情報と前記変換定義情報テーブル部に格納した階層名対応情報とを読み込み、該読み込んだ固定長データ構造情報とマークアップ言語データ構造情報と階層名対応情報とを基に、固定長形式データをマークアップ言語形式データに変換又はマークアップ言語形式データを固定長形式データに変換するための変換パラメータ情報を生成すると共に、固定長形式データ及びマークアップ言語形式データが前記固定長データ構造情報及びマークアップ言語データ構造情報と整合性が有るか否かを判定するためのデータチェックパラメータ情報を生成するパラメータ生成エンジン部と、
前記データチェックパラメータ情報を基に変換元のマークアップ言語形式データ及び固定長形式データの前記整合性を検証するためのデータチェックエンジン部とを備え、
前記データチェックエンジン部が、前記変換元のマークアップ言語形式データ及び固定長形式データに含まれる階層名の出現順序が前記データチェックパラメータ情報に含まれる階層名の出現順序と整合するか否かを判定する第1工程と、該第1工程により前記変換元データの階層名の出現順序がデータチェックパラメータ情報に含まれる階層名の出現順序と整合しないと判定したとき、前記変換元データがエラーと通知する第2工程とを実行するデータ変換システム。
【請求項2】
前記マークアップ言語定義情報テーブル部が、前記マークアップ言語形式データに含まれる階層名の出現順序を、最上階層名段を所定の値に設定し、該最上段から下層になるに従って前記所定の値を増加させる数値として格納し、
前記データチェックエンジン部が、前記変換元データを1階層毎に読み込み、今回読み込んだ階層名に対応する階層出現順位値が、前回読み込んだ階層名に対応する階層出現順位値以下か否かを判定する第3工程と、該第3工程の判定により今回読み込んだ階層出現順位値が前回読み込んだ階層出現順位値以下でないと判定したとき、該今回読み込んだ階層名の下層に必須の階層名が格納されているかを前記必須フラグを参照して判定する第4工程と、前記第3工程の判定により今回読み込んだ階層出現順位値が前回読み込んだ階層出現順位値以下であると判定したとき、前回読み込んだ階層名と今回読み込んだ階層名との間に必須の階層名があるか否かを前記必須フラグにより判定する第5工程とを実行し、
前記第4工程により下層に必須の階層名が格納されていないと判定、又は前記第5工程により前回読み込んだ階層名と今回読み込んだ階層名との間に必須の階層名がないと判定したとき、変換元データが整合ありと判定し、
前記第4工程により下層に必須の階層名が格納されていると判定、又は前記第5工程により前回読み込んだ階層名と今回読み込んだ階層名との間に必須の階層名があると判定したとき、変換元データが整合なしと判定する請求項1記載のデータ変換システム。
【請求項3】
固定長形式データを構成する階層名と該階層名に対応したデータ開始位置とデータ長さとデータ属性と該階層名の出現順序と必須項目か否かを示す必須フラグとを含む固定長データ構造情報を格納した固定長定義情報テーブル部と、
マークアップ言語形式データを構成する階層名と該階層名に対応したタグ名と該階層名の出現順序と必須項目か否かを示す必須フラグとを含むマークアップ言語データ構造情報を格納したマークアップ言語定義情報テーブル部と、
前記マークアップ言語形式データの階層名と固定長形式データの階層名との階層名対応情報を格納した変換定義情報テーブル部と、
前記固定長定義情報テーブル部に格納した固定長データ構造情報と前記マークアップ言語定義情報テーブル部に格納したマークアップ言語データ構造情報と前記変換定義情報テーブル部に格納した階層名対応情報とを読み込み、該読み込んだ固定長データ構造情報とマークアップ言語データ構造情報と階層名対応情報とを基に、固定長形式データをマークアップ言語形式データに変換又はマークアップ言語形式データを固定長形式データに変換するための変換パラメータ情報を生成すると共に、固定長形式データ及びマークアップ言語形式データが前記固定長データ構造情報及びマークアップ言語データ構造情報と整合性が有るか否かを判定するためのデータチェックパラメータ情報を生成するパラメータ生成エンジン部と、
前記データチェックパラメータ情報を基に変換元のマークアップ言語形式データ及び固定長形式データの前記整合性を検証するためのデータチェックエンジン部とを備え、マークアップ言語により記述されたマークアップ言語形式データとデータ種及びデータ長さを予め固定して記述された固定長形式データとの相互変換を行うデータ変換方法であって、
前記データチェックエンジンに、
前記変換元のマークアップ言語形式データ及び固定長形式データに含まれる階層名の出現順序が前記データチェックパラメータ情報に含まれる階層名の出現順序と整合するか否かを判定する第1工程と、該第1工程により前記変換元データの階層名の出現順序がデータチェックパラメータ情報に含まれる階層名の出現順序と整合しないと判定したとき、前記変換元データがエラーと通知する第2工程とを実行するデータ変換方法。
【請求項4】
前記マークアップ言語定義情報テーブル部が、前記マークアップ言語形式データに含まれる階層名の出現順序を、最上階層名段を所定の値に設定し、該最上段から下層になるに従って前記所定の値を増加させる数値として格納し、
前記データチェックエンジン部に、
前記変換元データを1階層毎に読み込み、今回読み込んだ階層名に対応する階層出現順位値が、前回読み込んだ階層名に対応する階層出現順位値以下か否かを判定する第3工程と、該第3工程の判定により今回読み込んだ階層出現順位値が前回読み込んだ階層出現順位値以下でないと判定したとき、該今回読み込んだ階層名の下層に必須の階層名が格納されているかを前記必須フラグを参照して判定する第4工程と、前記第3工程の判定により今回読み込んだ階層出現順位値が前回読み込んだ階層出現順位値以下であると判定したとき、前回読み込んだ階層名と今回読み込んだ階層名との間に必須の階層名があるか否かを前記必須フラグにより判定する第5工程とを実行し、
前記第4工程により下層に必須の階層名が格納されていないと判定、又は前記第5工程により前回読み込んだ階層名と今回読み込んだ階層名との間に必須の階層名がないと判定したとき、変換元データが整合ありと判定し、
前記第4工程により下層に必須の階層名が格納されていると判定、又は前記第5工程により前回読み込んだ階層名と今回読み込んだ階層名との間に必須の階層名があると判定したとき、変換元データが整合なしと判定する請求項3記載のデータ変換方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2011−70285(P2011−70285A)
【公開日】平成23年4月7日(2011.4.7)
【国際特許分類】
【出願番号】特願2009−218968(P2009−218968)
【出願日】平成21年9月24日(2009.9.24)
【出願人】(000152985)株式会社日立情報システムズ (409)
【Fターム(参考)】
【公開日】平成23年4月7日(2011.4.7)
【国際特許分類】
【出願日】平成21年9月24日(2009.9.24)
【出願人】(000152985)株式会社日立情報システムズ (409)
【Fターム(参考)】
[ Back to top ]