(57)【要約】      （修正有）【課題】データベースから変数へのデータ取得及び変数からデータベースへのデータ更新を行うデータ処理プログラムを、データを加工するデータ変換処理を含めて自動生成すること。【解決手段】このデータ処理プログラム自動生成システム２は、仕様記憶部１に本システムで生成すべきデータ取得プログラムの仕様を記憶し、その仕様を入力情報として、仕様入力手段２１と、データ変換処理文生成規則記憶部２２と、データ変換処理文生成手段２３と、カーソル定義文生成手段２４と、データ取得文生成手段２５と、プログラムスケルトン記憶部２６と、プログラム合成手段２７とから構成され、生成プログラムを作成して生成プログラム記憶部３に出力する。【選択図】図１
2006178706.tif 000002
【特許請求の範囲】
【請求項１】
仕様記憶部に記憶されているデータ取得プログラムの仕様を入力する仕様入力手段と、
前記仕様に応じたデータ変換処理文を生成するデータ変換処理文生成規則を保持するデータ変換処理文生成規則記憶部と、
前記仕様に応じた前記データ変換処理文生成規則を基にデータ変換処理文を生成するデータ変換処理文生成手段と、
前記データ変換処理文生成手段が生成した前記データ変換処理文を基にカーソルを定義するカーソル定義文を生成するカーソル定義文生成手段と、
データベースからデータを取得するデータ取得文を生成するデータ取得文生成手段と、
プログラムの雛形の内容があらかじめ格納されているプログラムスケルトン記憶部と、
前記プログラムスケルトン記憶部の内容に、前記カーソル定義文生成手段から受け取る前記カーソル定義文、及び前記データ取得文生成手段から受け取る前記データ取得文を挿入し、データ取得プログラムを生成して生成プログラム記憶部に保持するプログラム合成手段と
を備えることを特徴とするデータ処理プログラム自動生成システム。
【請求項２】
データ取得プログラムの仕様に応じたデータ変換処理文を生成し、
前記仕様に応じた前記データ変換処理文生成規則を基にデータ変換処理文を生成し、
前記データ変換処理文を基にカーソルを定義するカーソル定義文を生成し、
データベースからデータを取得するデータ取得文を生成し、
プログラムの雛形の内容があらかじめ格納されているプログラムスケルトンの内容に、前記カーソル定義文、及び前記データ取得文を挿入し、前記データ取得プログラムを生成することを特徴とするデータ処理プログラム自動生成方法。
【請求項３】
コンピュータに、
データ取得プログラムの仕様に応じたデータ変換処理文を生成し、
前記仕様に応じた前記データ変換処理文生成規則を基にデータ変換処理文を生成し、
前記データ変換処理文を基にカーソルを定義するカーソル定義文を生成し、
前記カーソルを利用してデータベースからデータを取得するデータ取得文を生成し、
プログラムの雛形の内容があらかじめ格納されているプログラムスケルトンの内容に、前記カーソル定義文、及び前記データ取得文を挿入し、前記データ取得プログラムを生成することを実現させるためのデータ処理プログラム自動生成用プログラム。
【請求項４】
仕様記憶部に記憶されているデータ取得プログラムの仕様を入力する仕様入力手段と、
前記仕様に応じたデータ変換処理文を生成するデータ変換処理文生成規則を保持するデータ変換処理文生成規則記憶部と、
前記仕様に応じた前記データ変換処理文生成規則を基にデータ変換処理文を生成するデータ変換処理文生成手段と、
前記データ変換処理文生成手段が生成した前記データ変換処理文を基にデータを出力するための出力処理文を生成する出力処理文生成手段と、
プログラムの雛形の内容があらかじめ格納されているプログラムスケルトン記憶部と、
前記プログラムスケルトン記憶部の内容に、前記出力処理文生成手段から受け取る前記出力処理文を挿入し、データ取得プログラムを生成して生成プログラム記憶部に保持するプログラム合成手段と
を備えることを特徴とするデータ処理プログラム自動生成システム。
【請求項５】
データ取得プログラムの仕様に応じたデータ変換処理文を生成し、
前記仕様に応じた前記データ変換処理文生成規則を基にデータ変換処理文を生成し、
前記データ変換処理文を基にデータを出力するための出力処理文を生成し、
プログラムの雛形の内容があらかじめ格納されているプログラムスケルトンの内容に、前記出力処理文を挿入し、データ取得プログラムを生成する
ことを特徴とするデータ処理プログラム自動生成方法。
【請求項６】
コンピュータに、
データ取得プログラムの仕様に応じたデータ変換処理文を生成し、
前記仕様に応じた前記データ変換処理文生成規則を基にデータ変換処理文を生成し、
前記データ変換処理文を基にデータを出力するための出力処理文を生成し、
プログラムの雛形の内容があらかじめ格納されているプログラムスケルトンの内容に、前記出力処理文を挿入し、データ取得プログラムを生成する
ことを実現させるためのデータ処理プログラム自動生成用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理プログラム自動生成システム、データ処理プログラム自動生成方法及びデータ処理プログラム自動生成用プログラムに関し、特に、データベースから変数へのデータ取得、及び変数からデータベースへのデータ更新を行うデータ処理プログラムを、データを加工するデータ変換処理を含めて自動生成するデータ処理プログラム自動生成システム、データ処理プログラム自動生成方法およびデータ処理プログラム自動生成用プログラムに関する。
【背景技術】
【０００２】
従来のデータ処理プログラム自動生成システムの一例が、特許文献１に記載されている。特許文献１に記載されたデータ処理プログラム自動生成システムは、情報処理システム上に構築されたデータベースの表のデータを参照してデータ処理を行い、処理結果を再度データベースの表に格納したり、処理結果に基づいてデータベースの表のデータを更新したり、削除したりするデータ処理プログラムを自動的に生成するシステムに関する。
【０００３】
【特許文献１】特開２００１−６０１５０号公報（［００１７］〜［００４５］、図１〜１０）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述した特許文献１に記載されているシステムが生成するデータ処理プログラムでは、データ処理にデータの型や形式を考慮しないので、以下のような問題点がある。
【０００５】
すなわち、データを取得して変数に格納するデータ取得処理や、データを変数の内容で更新するデータ更新処理において、データベースと変数とに型や形式の相違がある場合には、型や形式を合わせるためのデータ変換処理が必要となるということである。
【０００６】
例えば、日付を表現するデータでも、データベース上では日付型で格納するが、変数としては文字列で扱う必要がある場合がある。そのような場合には、データベースからデータを取得して変数に格納する際にはデータを日付型から文字列型へ変換するデータ変換処理が必要となり、変数の値でデータベースのデータを更新する際には文字列型から日付型への変換するデータ変換処理が必要となる。
【０００７】
このようなデータ変換処理をユーザー自らに記述させると、記述ミス等で正確なデータ変換処理を記述できない可能性がある。
【０００８】
本発明の目的は、データベースからデータを取得して変数に格納するデータ取得処理や、変数の値でデータベースのデータを更新するデータ更新処理を行うデータ処理プログラムを、データの型や形式を整合させるデータ変換処理を含めて自動生成するデータ処理プログラム自動生成システム、データ処理プログラム自動生成方法及びデータ処理プログラム自動生成用プログラムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明のデータ処理プログラム自動生成システムは、
仕様記憶部に記憶されているデータ取得プログラムの仕様を入力する仕様入力手段と、
前記仕様に応じたデータ変換処理文を生成するデータ変換処理文生成規則を保持するデータ変換処理文生成規則記憶部と、
前記仕様に応じた前記データ変換処理文生成規則を基にデータ変換処理文を生成するデータ変換処理文生成手段と、
前記データ変換処理文生成手段が生成した前記データ変換処理文を基にカーソルを定義するカーソル定義文を生成するカーソル定義文生成手段と、
データベースからデータを取得するデータ取得文を生成するデータ取得文生成手段と、
プログラムの雛形の内容があらかじめ格納されているプログラムスケルトン記憶部と、
前記プログラムスケルトン記憶部の内容に、前記カーソル定義文生成手段から受け取る前記カーソル定義文、及び前記データ取得文生成手段から受け取る前記データ取得文を挿入し、データ取得プログラムを生成して生成プログラム記憶部に保持するプログラム合成手段と
を備える。
【００１０】
また、本発明のデータ処理プログラム自動生成方法は、データ取得プログラムの仕様に応じたデータ変換処理文を生成し、
前記仕様に応じた前記データ変換処理文生成規則を基にデータ変換処理文を生成し、
前記データ変換処理文を基にカーソルを定義するカーソル定義文を生成し、
データベースからデータを取得するデータ取得文を生成し、
プログラムの雛形の内容があらかじめ格納されているプログラムスケルトンの内容に、前記カーソル定義文、及び前記データ取得文を挿入し、前記データ取得プログラムを生成することを特徴とする。
【００１１】
さらに、本発明のデータ処理プログラム自動生成用プログラムは、コンピュータに、
データ取得プログラムの仕様に応じたデータ変換処理文を生成し、
前記仕様に応じた前記データ変換処理文生成規則を基にデータ変換処理文を生成し、
前記データ変換処理文を基にカーソルを定義するカーソル定義文を生成し、
前記カーソルを利用してデータベースからデータを取得するデータ取得文を生成し、
プログラムの雛形の内容があらかじめ格納されているプログラムスケルトンの内容に、前記カーソル定義文、及び前記データ取得文を挿入し、前記データ取得プログラムを生成することを実現させる。
【００１２】
さらに、本発明のデータ処理プログラム自動生成システムは、仕様記憶部に記憶されているデータ取得プログラムの仕様を入力する仕様入力手段と、
前記仕様に応じたデータ変換処理文を生成するデータ変換処理文生成規則を保持するデータ変換処理文生成規則記憶部と、
前記仕様に応じた前記データ変換処理文生成規則を基にデータ変換処理文を生成するデータ変換処理文生成手段と、
前記データ変換処理文生成手段が生成した前記データ変換処理文を基にデータを出力するための出力処理文を生成する出力処理文生成手段と、
プログラムの雛形の内容があらかじめ格納されているプログラムスケルトン記憶部と、
前記プログラムスケルトン記憶部の内容に、前記出力処理文生成手段から受け取る前記出力処理文を挿入し、データ取得プログラムを生成して生成プログラム記憶部に保持するプログラム合成手段と
を備える。
【００１３】
さらに、本発明のデータ処理プログラム自動生成方法は、データ取得プログラムの仕様に応じたデータ変換処理文を生成し、
前記仕様に応じた前記データ変換処理文生成規則を基にデータ変換処理文を生成し、
前記データ変換処理文を基にデータを出力するための出力処理文を生成し、
プログラムの雛形の内容があらかじめ格納されているプログラムスケルトンの内容に、前記出力処理文を挿入し、データ取得プログラムを生成することを特徴とする。
【００１４】
さらに、本発明のデータ処理プログラム自動生成用プログラムは、コンピュータに、
データ取得プログラムの仕様に応じたデータ変換処理文を生成し、
前記仕様に応じた前記データ変換処理文生成規則を基にデータ変換処理文を生成し、
前記データ変換処理文を基にデータを出力するための出力処理文を生成し、
プログラムの雛形の内容があらかじめ格納されているプログラムスケルトンの内容に、前記出力処理文を挿入し、データ取得プログラムを生成することを実現させる。
【発明の効果】
【００１５】
本発明は、データベースからデータを取得するデータ処理プログラムを多数開発することが要求されるプロジェクトにおいて、プログラムの品質を安定させることができる、という効果を有している。その理由は、データ変換のためのデータ変換処理文を自動生成することで、規約に従った統一的なデータ変換処理文を実装できるからである。
【００１６】
また、本発明は、データ変換のためのデータ変換処理文を実装するための規約が、プロジェクト進行中に変更になっても問題が発生しない、という効果を有している。その理由は、データ変換処理文を自動生成するための規約を、データ変換処理文生成規則という容易な形式で保持しているため、変更が容易であり、かつ生成プログラムを変更後の規約に従わせることができるからである。
【００１７】
さらに、本発明は、データ取得の際のデータ変換処理文を実装する工数を削減できる、という効果を有している。その理由は、データ取得の際のデータ変換処理文が自動生成されるため、本システムの利用者はデータ変換処理文を記述する必要が無いからである。プロジェクトの規約に沿ってデータ変換処理文生成規則を定義する必要はあるが、これは容易なものであるため、適用のための負荷は少ないと考えられるからである。
【発明を実施するための最良の形態】
【００１８】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００１９】
本発明の第１の実施の形態の構成を示す図１を参照すると、この実施の形態のデータ処理プログラム自動生成システム２は、仕様記憶部１に記憶されている仕様を入力情報として、仕様入力手段２１と、データ変換処理文生成規則記憶部２２と、データ変換処理文生成手段２３と、カーソル定義文生成手段２４と、データ取得文生成手段２５と、プログラムスケルトン記憶部２６と、プログラム合成手段２７とから構成され、生成プログラムを作成して生成プログラム記憶部３に出力する。
【００２０】
仕様記憶部１は、本システムで生成すべき仕様として、例えば図２のように、データ取得元表仕様と、データ取得先変数仕様と、セレクト条件仕様とを保持する。
【００２１】
データ取得元表仕様は、データを取得する元表の名称である表名と、表が含む項目名称である項目名と、それら項目の型情報とを含む。
【００２２】
データ取得先変数仕様は、データ取得先変数の名称である変数名と、その変数の型と、その変数に対応するデータ取得元である対応項目名の情報を含む。
【００２３】
例えば、図２において、０２１１の行を参照すると、表名が商品マスタ、項目名が商品コードであるような項目の型が、′char(9)′型であることを示している。また、０２２１の行を参照すると、変数名が選択商品区分である変数が、′char(3)′型であり、かつ対応項目名が商品マスタ．商品コードであることを示している。
【００２４】
仕様入力手段２１は、このような仕様記憶部１に記憶されている仕様を入力し、データ変換処理文生成手段２３及びデータ取得文生成手段２５へ受け渡す。
【００２５】
データ変換処理文生成規則記憶部２２は、本システムで自動的に生成するデータ変換処理仕様として、例えば図３のような、データ変換処理文生成規則をあらかじめ保持する。
【００２６】
データ変換処理文生成規則は、データ変換処理文生成規則を適用すべき変数の名称を示す変数名、その型を示す変数型、データ変換処理文生成規則を適用すべき対応項目名、その型を示す対応項目型、及び生成すべきデータ変換処理から構成される。
【００２７】
ここで、変数名及び対応項目名の中に、′${<数値>}′(<数値>の部分は任意の数字)という記述を含む場合があるが、このような場合、′${<数値>}′の部分にはどのような文字列が入っても良いという意味となる。ただし、同じ数値のものが複数存在する場合には、同じ文字列を意味するものとする。
【００２８】
例えば、図３において、０３１の行を参照すると、変数名が′${1}商品区分′で、対応項目名が′${2}商品コード′であるような場合に、′SUBSTRB(${2}商品コード,1,3)′というデータ変換処理文を生成するというデータ変換処理文生成規則を意味する。また、０３２の行を参照すると、変数型が′char(8)′で、対応項目名が′${1}′で、対応項目型が′date′であるような場合に、′TO_CHAR(${1},′YYYYMMDD′)′というデータ変換処理文を生成するというデータ変換処理文生成規則を意味する。
【００２９】
データ変換処理文生成手段２３は、仕様入力手段２１から仕様を受け取り、データ変換処理文生成規則記憶部２２に格納された情報を基にデータ変換処理文を生成し、仕様に追加し、カーソル定義文生成手段２４へ受け渡す。
【００３０】
カーソル定義文生成手段２４は、データ変換処理文生成手段２３からデータ変換処理を含んだ仕様を受け取り、カーソル定義文を生成し、プログラム合成手段２７へ受け渡す。
【００３１】
データ取得文生成手段２５は、仕様入力手段２１から仕様を受け取り、データ取得文を生成し、プログラム合成手段２７へ受け渡す。
【００３２】
プログラムスケルトン記憶部２６は、仕様によらず出力するプログラムの雛形であり、図１１のような内容があらかじめ格納されている。本実施の形態では、データベースからカーソルを使用してデータを取得し、そのデータを既存の変数へと格納するようなデータ処理プログラムを生成対象としているが、そのようなプログラムにおいては、カーソルを定義するカーソル定義文、及びカーソルを用いてデータを取得するデータ取得文以外の部分については、常に共通の内容を使用することができる。このプログラムスケルトン記憶部２６では、その共通の部分を保持し、カーソル定義文及びデータ取得文については、埋め込む場所を示すのみとなっている（例えば、図１１の′<<カーソル定義文挿入箇所>>′、及び′<<データ取得文挿入箇所>>′）。
【００３３】
プログラム合成手段２７は、プログラムスケルトン記憶部２６の内容に、カーソル定義文生成手段２４から受け取るカーソル定義文、及びデータ取得文生成手段２５から受け取るデータ取得文を挿入し、本システムの出力である生成プログラムを生成して生成プログラム記憶部３に保持する。
【００３４】
次に、図５のフローチャートを参照して、この第１の実施の形態の動作について詳細に説明する。この実施の形態においては、図２に示す形式で表現された仕様を入力し、ＰＬ／ＳＱＬ言語で記述されたデータベースからデータを取得するデータ処理プログラム図１２を出力する。
【００３５】
まず、仕様入力手段２１により仕様入力を行う（図５のステップ０５１）。このステップでは、仕様記憶部１に格納されている図２に示す仕様をシステム内部に読み込み、データ変換処理文生成手段２３及びデータ取得文生成手段２５へと受け渡す。
【００３６】
次に、データ変換処理文生成手段２３により、データ変換処理生成を行う（図５のステップ０５２）。このステップの詳細を、図６のフローチャートを参照して説明する。
【００３７】
まず、仕様入力を行う（図６のステップ０６１）。このステップでは、仕様入力手段２１から、図２に示す仕様を受け取る。
【００３８】
次に、仕様に含まれる変数の定義すべて、すなわち図２における０２２１の行、０２２２の行、０２２３の行それぞれに対し、図６のステップ０６２からステップ０６７の処理を行う。
【００３９】
最初に、図２における０２２１の行の変数定義についての処理を行う。まず、データ変換処理文生成規則の選択を行う（図６のステップ０６３）。このステップでは、図３に示すデータ変換処理文生成規則と、現在扱っている変数定義である図２における０２２１の行における変数名、変数型、対応項目名、対応項目型が一致するものを、適用すべきデータ変換処理文生成規則として選択する。この場合、図３における０３１の行で定義されるデータ変換処理文生成規則が選択される。この理由は、０３１の行における変数名′${1}商品区分′は、′${1}′を′選択′とみなすことにより、図２の０２２１の行における変数名である′選択商品区分′と一致し、かつ０３１の行における対応項目名′${2}商品コード′は、′${2}′を′商品マスタ.′とみなすことにより、図２の０２２１の行における対応項目名である′商品マスタ．商品コード′と一致するからである。
【００４０】
次に、データ変換処理が選択されたかどうかで処理の分岐を行う（図６のステップ０６４）。この場合、ステップ０６３において、図３における０３１の行で定義されるデータ変換処理文生成規則が選択されているため、選択されたと判定し、ステップ０６５へ進む。
【００４１】
次に、データ変換処理生成を行う（図６のステップ０６５）。このステップでは、ステップ０６３において選択された、図３における０３１の行で定義されるデータ変換処理文生成規則で指定されたデータ変換処理文を生成する。０３１の行で定義されるデータ変換処理は′SUBSTRB(${2}商品コード,1,3)′となっているが、ステップ０６３において′${2}′は′商品マスタ.′とみなしているため、′SUBSTRB(商品マスタ．商品コード,1,3)′という文字列となる。これをデータ取得先変数仕様へと書き込む（図４の０４２１の行におけるデータ変換処理欄）。以上が、図２における０２２１の行の変数定義についての処理である。
【００４２】
次に、図２における０２２２の行の変数定義についての処理を行う。まず、データ変換処理文生成規則の選択を行う（図６のステップ０６３）。この場合、データ変換処理文生成規則が選択されない。この理由は、図３に示される変数名や型名が一致する行が存在しないためである。
【００４３】
次に、データ変換処理が選択されたかどうかで処理の分岐を行う（図６のステップ０６４）。この場合、ステップ０６３においてデータ変換処理文生成規則が選択されなかったため、選択されなかったと判断し、ステップ０６６へ進む。
【００４４】
次に、対応項目名のデータ変換処理への転記を行う（図６のステップ０６６）。このステップでは、もとの仕様に存在した対応項目名の内容を、そのままの内容でデータ変換処理として書き込む。図４における０４２２の行の変数定義において、対応項目名は′商品マスタ．商品名′であるため、データ変換処理′商品マスタ．商品名′として書き込む（図４の０４２２の行におけるデータ変換処理欄）。
【００４５】
以上が、図２における０２２２の行の変数定義についての処理である。
【００４６】
次に、図２における０２２３の行の変数定義についての処理を行う。まず、データ変換処理文生成規則の選択を行う（図６のステップ０６３）。
【００４７】
この場合、図３における０３２の行で定義されるデータ変換処理文生成規則が選択される。この理由は、０３２の行における変数型′char(8)′は、０２２３の行における型である′char(8)′と一致し、かつ０３２の行における対応項目型′date′は、０２２３の行において対応項目として指定されている′商品マスタ．商品更新日′、すなわち０２１３の行で示される項目の型である′date′と一致し、さらに０３２の行における対応項目名′${1}′は、′${1}′を′商品マスタ．商品更新日′とみなすことにより、０２２３の行における対応項目名である′商品マスタ．商品更新日′と一致するからである。
【００４８】
次に、データ変換処理が選択されたかどうかで処理の分岐を行う（図６のステップ０６４）。この場合、ステップ０６３において、図３における０３２の行で定義されるデータ変換処理文生成規則が選択されているため、選択されたと判定し、ステップ０６５へ進む。
【００４９】
次に、データ変換処理生成を行う（図６のステップ０６５）。このステップでは、ステップ０６３において選択された、図３における０３２の行で定義されるデータ変換処理文生成規則で指定されたデータ変換処理文を生成する。０３２の行で定義されるデータ変換処理は′TO_CHAR(${1},′YYYYMMDD′)′となっているが、ステップ０６３において′${1}′は′商品マスタ．商品更新日′とみなしているため、′TO_CHAR(商品マスタ．商品更新日，′YYYYMMDD′)′という文字列となる。これをデータ取得先変数仕様に書き込む（図４の０４２３の行におけるデータ変換処理欄）。
以上が、図２における０２２３の行の変数定義についての処理である。
【００５０】
ここまでで、データ取得先変数仕様の含む変数の定義すべてに対して図６のステップ０６２からステップ０６７の処理を行うという繰り返しの処理が終了した。
【００５１】
最後に、仕様出力を行う（図６のステップ０６８）。このステップでは、前述の過程によりデータ変換処理文が生成されたデータ取得先変数仕様である図４の内容を、カーソル定義文生成手段２４に対して出力する。
【００５２】
データ変換処理生成の詳細は以上である。
【００５３】
次に、カーソル定義文生成手段２４により、カーソル定義文生成を行う（図５のステップ０５３）。このステップでは、図９の内容のカーソル定義文を出力するが、その詳細を、図７のフローチャートを参照して説明する。
【００５４】
まず、仕様入力を行う（図７のステップ０７０１）。このステップでは、データ変換処理文生成手段２３から図４で示されるデータ取得先変数仕様を受け取る。
【００５５】
次に、図７のステップ０７０２に示すように、′CURSOR cur IS SELECT′という文字列を出力する。これは、図９の０９０１で示される行に相当する。
【００５６】
次に、データ取得先変数仕様の含む変数の定義すべて、すなわち図４の０４２１、０４２２、０４２３のそれぞれの行で定義されている変数について、図７のステップ０７０３から０７０５の間のステップを繰り返す。
【００５７】
まず、図４の０４２１について、ＳＥＬＥＣＴ句要素出力を行う（図７のステップ０７０４）。このステップでは、′<データ変換処理>WORK_<変数名>′という内容を出力する。ただし、繰り返しの最後でないかぎり、末尾にコンマ記号(′,′)を付加する。そして、′＜データ変換処理＞′の部分にはデータ取得先変数仕様で示されたデータ変換処理が、＜変数名＞の部分にはデータ取得先変数仕様で示された変数名が挿入される。図４の０４２１の行の場合、データ変換処理は′SUBSTRB(商品マスタ．商品コード，1,3)′であり、変数名は′選択商品区分′であるので、結果として図９の０９０２で示される行が出力される。
【００５８】
次に、図４の０４２２について、ＳＥＬＥＣＴ句要素出力を行う（図７のステップ０７０４）。図４の０４２２の場合、データ変換処理は′商品名′であり、変数名は′Ｖ選択商品名′であるので、結果として図９の０９０３で示される行が出力される。
【００５９】
次に、図４の０４２３について、ＳＥＬＥＣＴ句要素出力を行う（図７のステップ０７０４）。図４の０４２３の場合、データ変換処理は′TO_CHAR(商品更新日,′YYYYMMDD′)′であり、変数名は′V選択商品更新日′であるる。また、繰り返しの最後であるため、末尾にコンマ記号(′,′)は付加されない。これらの結果として、図９の０９０４で示される行が出力される。
【００６０】
図７のステップ０７０３から０７０５までの繰り返しは以上である。
【００６１】
次に、図７のステップ０７０６に示すように、′FROM′という文字列を出力する。これは、図９の０９０５で示される行に相当する。
【００６２】
次に、表名を出力する（図７のステップ０７０７）。このステップでは、図４に示す表名である′商品マスタ′を出力する。これは、図９の０９０６で示される行に相当する。
【００６３】
次に、図７のステップ０７０８に示すように、′WHERE′という文字列を出力する。これは、図９の０９０７で示される行に相当する。
【００６４】
次に、セレクト条件を出力する（図７のステップ０７０９）。このステップでは、図４の０４３に示すセレクト条件を出力する。これは、図９の０９０８で示される行に相当する。
【００６５】
最後に、プログラム出力を行う（図７のステップ０７１０）。このステップでは、図９に示される内容を、カーソル定義文としてプログラム合成手段２７へと受け渡す。
【００６６】
カーソル定義文生成の詳細は以上である。
【００６７】
次に、データ取得文生成を行う（図５のステップ０５４）。このステップでは、図１０の内容のデータ取得文を出力するが、その詳細を図８のフローチャートを参照して説明する。
【００６８】
まず、仕様入力を行う（図８のステップ０８１）。このステップでは、仕様入力手段２１から図２で示されるデータ取得先変数仕様を受け取る。
【００６９】
次に、データ取得先変数仕様の含む変数の定義すべて、すなわち図２の０２２１、０２２２、０２２３のそれぞれの行で定義されている変数について、図８のステップ０８２から０８４の間のステップを繰り返す。
【００７０】
まず、図２の０２２１について、データ取得文出力を行う（図８の０８３）。このステップでは、′<変数名>(counter):=line.WORK_<変数名>;′という内容を出力する。ただし、＜変数名＞の部分には仕様で示された変数名が挿入される。図２の０２２１の場合、変数名は′選択商品区分′であるので、結果として図１０の１００１で示される行が出力される。
【００７１】
次に、図２の０２２２について、データ取得文出力を行う（図８の０８３）。図２の０２２１の場合、変数名は′選択商品名′であるので、結果として図１０の１００２で示される行が出力される。
【００７２】
次に、図２の０２２３について、データ取得文出力を行う（図８の０８３）。図２の０２２３の場合、変数名は′選択商品更新日′であるので、結果として図１０の１００３で示される行が出力される。
【００７３】
図８のステップ０８２から０８４までの繰り返しは以上である。
【００７４】
最後に、プログラム出力を行う（図８のステップ０８５）。このステップでは、図１０に示される内容を、データ取得文としてプログラム合成手段２７へと受け渡す。
【００７５】
データ取得文生成の詳細は以上である。
【００７６】
次に、プログラム合成を行う（図５のステップ０５５）。このステップでは、カーソル定義文生成手段２４より図９に示すカーソル文定義を受け取り、データ取得文生成手段２５より図１０に示すデータ取得文を受け取り、プログラムスケルトン記憶部２６の内容である図１１における′<<カーソル定義文挿入箇所>>′（１１０２で示す行）及び′<<データ取得文挿入箇所>>′（１１０９で示す行）へと挿入し、これにより完成した生成プログラムである図１２を出力する。
第１の実施の形態の動作の説明は以上である。なお本説明では、仕様記憶部１及びデータ変換処理文生成規則記憶部２２及びカーソル定義文生成手段２４が生成するカーソル定義文及びデータ取得文生成手段２５が生成するデータ取得文及びプログラムスケルトン記憶部２６及びシステムによって生成される生成プログラム記憶部３を、ＰＬ／ＳＱＬ言語に従って記述し説明しているが、同様の構成で他のプログラミング言語のプログラムを生成することが可能である。
【００７７】
次に、本発明の第２の実施の形態の構成について図面を参照して詳細に説明する。
【００７８】
本発明の第２の実施の形態の構成を示す図１３を参照すると、この実施の形態のデータ処理プログラム自動生成システム２００は、仕様記憶部１００に記憶されているデータ更新プログラム仕様を入力情報として、仕様入力手段２２１と、データ変換処理文生成規則記憶部２２２と、データ変換処理文生成手段２２３と、出力処理文生成手段２２８と、プログラムスケルトン記憶部２２６と、プログラム合成手段２２７とから構成され、生成プログラム記憶部３００に生成プログラムを出力する。
【００７９】
仕様記憶部１００は、本システムで生成すべきデータ更新プログラム仕様として、例えば図１４のように、データ更新用変数仕様、及びデータ更新先表仕様を保持する。
【００８０】
仕様入力手段２２１は、このような仕様記憶部１００に保持されているデータ更新プログラム仕様を入力し、データ変換処理文生成手段２２３へ受け渡す。
【００８１】
データ変換処理文生成規則記憶部２２２は、本システムで自動で生成するデータ変換処理文生成規則として、例えば図１５のようなデータ変換処理文生成規則をあらかじめ保持する。
【００８２】
データ変換処理文生成規則は、適用すべき項目の名称を示す項目名、その型を示す項目型、適用すべき対応変数名、その型を示す対応変数型、及び生成すべきデータ変換処理から構成される。
【００８３】
ここで、項目名及び対応変数名の中に、′${<数値>}′(<数値>の部分は任意の数字）という記述を含む場合があるが、このような場合、′${<数値>}′の部分にはどのような文字列が入っても良いという意味となる。ただし、同じ数値のものが複数存在する場合には、同じ文字列を意味するものとする。
【００８４】
例えば図１５において１５１の行を参照すると、項目名が′${1}商品コード′で、対応変数名が′${2}商品区分,${2}商品番号′であるような場合に、′${2}商品区分||′-′||${3}商品番号′というデータ変換処理文を生成するというデータ変換処理文生成規則を意味する。
【００８５】
データ変換処理文生成手段２２３は、仕様入力手段２２１からデータ更新プログラム仕様を受け取り、データ変換処理文生成規則記憶部２２２に格納された情報を元にデータ変換処理文を生成し、データ更新プログラム仕様に追加し、出力処理文生成手段２２８へ受け渡す。
【００８６】
出力処理文生成手段２２８は、データ変換処理文生成手段２２３からデータ変換処理を含んだ仕様を受け取り、出力処理文を生成し、プログラム合成手段２２７へ受け渡す。
【００８７】
プログラムスケルトン記憶部２２６は、データ更新プログラム仕様によらず出力するプログラムの雛形を記憶していて、図２１のような内容があらかじめ格納されている。本実施の形態では、データベースの内容を、既存の変数を用いて更新するようなデータ処理プログラムを生成対象としているが、そのようなプログラムにおいては、データベースに対する出力を行う出力処理文以外の部分については、常に共通の内容を使用することができる。このプログラムスケルトン記憶部２２６では、その共通の部分を保持し、出力処理文については埋め込む場所を示すのみとなっている（図２１の′<<出力処理文挿入箇所>>′）。
【００８８】
プログラム合成手段２２７は、プログラムスケルトン記憶部２２６の内容に、出力処理文生成手段２２８から受け取る出力処理文を挿入し、本システムの出力である生成プログラムを生成プログラム記憶部３００に出力する。
【００８９】
次に、図１７のフローチャートを参照して、本発明の第２の実施の形態の動作について詳細に説明する。この実施の形態においては、図１４に示す形式で表現されたデータ更新プログラム仕様を入力し、ＰＬ／ＳＱＬ言語で記述された、データベースのデータを更新するデータ処理プログラム図２２を出力する。
【００９０】
まず、仕様入力手段２２１により仕様入力を行う(図１７のステップ１７１)。このステップでは、仕様記憶部１００に格納されている図１４に示すデータをシステム内部に読み込み、データ変換処理文生成手段２２３へ受け渡す。
【００９１】
次に、データ変換処理文生成手段２２３により、データ変換処理生成を行う（図１７のステップ１７２）。このステップの詳細を、図１８のフローチャートを参照して詳細に説明する。
【００９２】
まず、仕様入力を行う(図１８のステップ１８１)。このステップでは、仕様入力手段２２１から図１４に示す仕様を受け取る。
【００９３】
次に、データ更新先表仕様の含む変数の定義すべて、すなわち図１４における１４２１の行、１４２２の行の行それぞれに対し、図１８のステップ１８２からステップ１８７の処理を行う。
【００９４】
最初に、図１４における１４２１の行の変数定義についての処理を行う。まず、データ変換処理文生成規則の選択を行う（図１８のステップ１８３）。このステップでは、図１５に示すデータ変換処理文生成規則と、現在扱っている変数定義である図１４における１４２１における表名、項目名、型、対応変数名が一致するものを、適用すべきデータ変換処理文生成規則として選択する。
【００９５】
この場合、図１５における１５１の行で定義されるデータ変換処理文生成規則が選択される。この理由は、１５１における項目名′${1}商品コード′は、′${1}′を空文字列(′′)とみなすことにより、１４２１における項目名である′商品コード′と一致し、かつ１５１における対応変数名′${2}商品区分,${2}商品番号′は、′${2}′を′選択′とみなすことにより、１４２１における対応項目名である′選択商品区分，選択商品番号′と一致しするからである。
【００９６】
次に、データ変換処理が選択されたかどうかで処理の分岐を行う（図１８のステップ１８４）。この場合、ステップ１８３において、図１５における１５１の行で定義されるデータ変換処理文生成規則が選択されているため、選択されたと判定し、ステップ１８５へ進む。
【００９７】
次に、データ変換処理生成を行う（図１８のステップ１８５）。このステップでは、ステップ１８３において選択された、図１５における１５１の行で定義されるデータ変換処理文生成規則で指定されたデータ変換処理文を生成する。１５１の行で定義されるデータ変換処理は′${2}商品区分||′-′||${2}商品番号′となっているが、ステップ１８３において′${2}′を′選択′とみなしているため、′選択商品区分||′-′||選択商品番号′という文字列となる。これをデータ登録先表仕様へと書き込む（図１６の１６２１の行におけるデータ変換処理欄）。
【００９８】
以上が、図１４における１４２１の行の変数定義についての処理である。
【００９９】
次に、図１４における１４２２の行の変数定義についての処理を行う。まず、データ変換処理文生成規則の選択を行う（図１８のステップ１８３）。この場合、データ変換処理文生成規則が選択されない。この理由は、図１５に示される変数名や型名が一致する行が存在しないためである。
【０１００】
次に、データ変換処理が選択されたかどうかで処理の分岐を行う（図１８のステップ１８４）。この場合、ステップ１８３においてデータ変換処理文生成規則が選択されなかったため、選択されなかったと判断し、ステップ１８６へ進む。
【０１０１】
次に、対応変数名のデータ変換処理への転記を行う（図１８のステップ１８６）。このステップでは、もとの仕様に存在した対応変数名の内容を、そのままの内容でデータ変換処理として書き込む。図１４における１４２２の行の変数定義において、対応変数名は′選択商品名′であるため、データ変換処理′選択商品名′として書き込む（図１６の１６２２の行におけるデータ変換処理欄）。
【０１０２】
以上が、図１４における１４２２の行の変数定義についての処理である。
【０１０３】
ここまでで、データ更新先表仕様の含む変数の定義すべてに対して、図１８のステップ１８２からステップ１８７の処理を行うという繰り返しの処理が終了した。
【０１０４】
最後に、仕様出力を行う（図１８のステップ１８８）。このステップでは、前述の過程によりデータ変換処理が生成された仕様である図１６の内容を、出力処理文生成手段２２８に対して出力する。
【０１０５】
データ変換処理生成の詳細は以上である。
【０１０６】
次に、出力処理文生成手段２２８により、出力処理文生成を行う（図１７のステップ１７３）。このステップでは、図２０の内容の出力処理文を出力するが、その詳細を、図１９のフローチャートを参照して説明する。
【０１０７】
まず、仕様入力を行う（図１９のステップ１９０１）。このステップでは、データ変換処理文生成手段２２８から図１６で示されるデータ登録先表仕様を受け取る。
【０１０８】
次に、図１９のステップ１９０２に示すように、′INSERT INTO′という文字列を出力する。これは、図２０の２００１で示される行に相当する。
【０１０９】
次に、表名を出力する（図１９のステップ１９０３）。このステップでは、図１６に示す表名である′商品マスタ′を出力する。これは、図２０の２００２で示される行に相当する。
【０１１０】
次に、図１９のステップ１９０４に示すように、′(′という文字列を出力する。これは、図２０の２００３で示される行に相当する。
【０１１１】
次に、データ登録先表仕様の含む変数の定義すべて、すなわち図１６の１６２１、１６２２のそれぞれの行で定義されている変数について、図１９のステップ１９０５と１９０７の間のステップを繰り返す。
【０１１２】
まず、図１６の１６２１について、項目名出力を行う（図１９の１９０６）。このステップでは、データ登録先表仕様における項目名を出力する。加えて、繰り返しの最後でないかぎり、末尾にコンマ記号(′,′)を付加する。ここでは、図１６の１６２１に示すように項目名が′商品コード′であるため、結果として図２０の２００４で示される行が出力される。
【０１１３】
次に、図１６の１６２２について、項目名出力を行う（図１９の１９０６）。図１６の１６２２に示すように、項目名は′商品名′である。また、繰り返しの最後であるため、末尾にコンマ記号(′,′)は付加されない。結果として図２０の２００５で示される行が出力される。
【０１１４】
図１９のステップ１９０５から１９０７までの繰り返しは以上である。
【０１１５】
次に、図１９のステップ１９０８に示すように、′)VALUES(′という文字列を出力する。これは、図２０の２００６で示される行に相当する。
【０１１６】
次に、データ登録先表仕様の含む変数の定義すべて、すなわち図１６の１６２１、１６２２のそれぞれの行で定義されている変数について、図１９のステップ１９０９から１９１１の間のステップを繰り返す。
【０１１７】
まず、図１６の１６２１について、データ変換処理出力を行う（図１９のステップ１９１０）。このステップでは、データ登録先表仕様におけるデータ変換処理を出力する。また、データ変換処理を出力する際には、出力処理文をループの中で使用できるようにする目的で、変数名に相当する文字列の直後にはループカウンターとなる文字列′(counter)′を付加する。加えて、繰り返しの最後でないかぎり、末尾にコンマ記号(′,′)を付加する。ここでは、図１６の１６２１に示すようにデータ変換処理が′選択商品区分||′-′||選択商品番号′であるが、変数名に相当する文字列である′選択商品区分′及び′選択商品番号′の直後に文字列′(counter)′を付加すると、′選択商品区分(counter)||′-′||選択商品番号(counter)′という文字列となる。また、繰り返しの最後ではないため末尾にコンマ記号(′,′)を付加するので、結果として図２０の２００７で示される行が出力される。
【０１１８】
次に、図１６の１６２２について、データ変換処理出力を行う（図１９のステップ１９１０）。図１６の１６２２に示すようにデータ変換処理が′選択商品名′であり、変数名に相当する文字列である′選択商品名′の直後に文字列′(counter)′を付加すると、′選択商品名(counter)′という文字列となる。また、繰り返しの最後なので、コンマ記号(′,′)は付加されない。結果として図２０の２００８で示される行が出力される。
【０１１９】
図１９のステップ１９０９から１９１１までの繰り返しは以上である。
【０１２０】
次に、図１９のステップ１９１２に示すように、′);′という文字列を出力する。これは、図２０の２００９で示される行に相当する。
【０１２１】
最後に、プログラム出力を行う（図１９のステップ１９１３）。このステップでは、図２０に示される内容を、出力処理文としてプログラム合成手段２２７へと受け渡す。
【０１２２】
出力処理文生成の詳細は以上である。
【０１２３】
次に、プログラム合成を行う（図１７のステップ１７４）。このステップでは、出力処理文生成手段２２８より図２０に示す出力処理文を受け取り、プログラムスケルトン記憶部２２６の内容である図２１における′<<出力処理文挿入箇所>>′（２１０５で示す行）へと挿入し、これにより完成した生成プログラムである図２２を出力する。
【０１２４】
第２の実施の形態の動作の説明は以上である。
【０１２５】
以上説明したように、本発明の第２の実施の形態によれば、データベースのデータを更新するデータ処理プログラムを多数開発することが要求されるプロジェクトにおいて、プログラムの品質を安定させることができる。
【０１２６】
また、データ変換のためのデータ変換処理を実装するための規約が、プロジェクト進行中に変更になっても問題が発生しない。
【０１２７】
さらに、データ変化の際のデータ変換処理を実装する工数を削減できる。この理由は、データ更新の際のデータ変換処理が自動生成されるため、本システムの利用者はデータ変換処理を記述する必要が無いからである。
【図面の簡単な説明】
【０１２８】
【図１】本発明の第１の実施の形態の構成を示すブロック図である。
【図２】第１の実施の形態おける生成すべきデータ取得プログラムの仕様を示す図である。
【図３】第１の実施の形態おけるデータ変換処理文生成規則の仕様を示す図である。
【図４】第１の実施の形態おけるデータ取得元表仕様、データ取得先変数仕様、及びセレクト条件を示す図である。
【図５】第１の実施の形態の動作を示す流れ図である。
【図６】第１の実施の形態おけるデータ変換処理生成の詳細を示す図である。
【図７】第１の実施の形態おけるカーソル定義文出力動作の詳細を示す図である。
【図８】第１の実施の形態おけるデータ取得文生成動作の詳細を説明する流れ図である。
【図９】第１の実施の形態おけるカーソル定義文の一例を示す図である。
【図１０】第１の実施の形態おけるデータ取得文の一例を示す図である。
【図１１】第１の実施の形態おけるプログラムスケルトン記憶部の内容の一例を示す図である。
【図１２】第１の実施の形態おける完成した生成プログラムの一例を示す図である。
【図１３】本発明の第２の実施の形態の構成を示すブロック図である。
【図１４】第２の実施の形態おける生成すべきデータ取得プログラムの仕様を示す図である。
【図１５】第２の実施の形態おけるデータ変換処理文生成規則の仕様を示す図である。
【図１６】第２の実施の形態おけるデータ登録プログラム仕様、データ登録先表仕様を示す図である。
【図１７】第２の実施の形態の動作を示す流れ図である。
【図１８】第２の実施の形態おけるデータ変換処理生成の詳細を示す図である。
【図１９】第２の実施の形態おける出力処理文生成動作の詳細を示す図である。
【図２０】第２の実施の形態おける出力処理文の一例を示す図である。
【図２１】第２の実施の形態おけるプログラムスケルトン記憶部の内容の一例を示す図である。
【図２２】第２の実施の形態おける完成した生成プログラムの一例を示す図である。
【符号の説明】
【０１２９】
１，１００    仕様記憶部
２，２００    データ処理プログラム自動生成システム
３，３００    生成プログラム記憶部
２１，２２１    仕様入力手段
２２，２２２    データ変換処理文生成規則記憶部
２３，２２３    データ変換処理文生成手段
２４    カーソル定義文生成手段
２５    データ取得文生成手段
２６，２２６    プログラムスケルトン記憶部
２７，２２７    プログラム合成手段
２２８    出力処理文生成手段
【図１】
2006178706.tif 000003
【図２】
2006178706.tif 000004
【図３】
2006178706.tif 000005
【図４】
2006178706.tif 000006
【図５】
2006178706.tif 000007
【図６】
2006178706.tif 000008
【図７】
2006178706.tif 000009
【図８】
2006178706.tif 000010
【図９】
2006178706.tif 000011
【図１０】
2006178706.tif 000012
【図１１】
2006178706.tif 000013
【図１２】
2006178706.tif 000014
【図１３】
2006178706.tif 000015
【図１４】
2006178706.tif 000016
【図１５】
2006178706.tif 000017
【図１６】
2006178706.tif 000018
【図１７】
2006178706.tif 000019
【図１８】
2006178706.tif 000020
【図１９】
2006178706.tif 000021
【図２０】
2006178706.tif 000022
【図２１】
2006178706.tif 000023
【図２２】
2006178706.tif 000024