JP2002202885A - データ構造解決ユニットを用いたプログラム自動生成方式 - Google Patents

データ構造解決ユニットを用いたプログラム自動生成方式

Info

Publication number
JP2002202885A
JP2002202885A JP2001008759A JP2001008759A JP2002202885A JP 2002202885 A JP2002202885 A JP 2002202885A JP 2001008759 A JP2001008759 A JP 2001008759A JP 2001008759 A JP2001008759 A JP 2001008759A JP 2002202885 A JP2002202885 A JP 2002202885A
Authority
JP
Japan
Prior art keywords
data structure
program
solution
type
record
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2001008759A
Other languages
English (en)
Inventor
Keiji Hashimoto
惠二 橋本
Yuuki Nakajo
有規 中條
Keisui Asai
景粋 浅井
Jiyun Ginbayashi
純 銀林
Hiroyuki Yoshida
裕之 吉田
Rieko Yamamoto
里枝子 山本
Emiko Hamamoto
惠美子 濱本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2001008759A priority Critical patent/JP2002202885A/ja
Publication of JP2002202885A publication Critical patent/JP2002202885A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】より少ない雛型を用いて、多様なプログラムを
生成できるようにするプログラム自動生成技術を提供す
ること。 【解決手段】所定の処理を行うプログラムを自動的に生
成する本発明のプログラム自動生成装置は、各々所定の
処理固有の設定を行うための解決ロジックを含み且つ予
め対応付けられたデータ構造のための雛型プログラムを
含む、複数のデータ構造解決ユニットと、選択されたデ
ータ構造に対応するデータ構造解決ユニット内の雛型プ
ログラムに含まれる解決ロジックの、所定の処理固有の
設定に関する解決情報を取得し、当該解決ロジックの解
決情報と雛型プログラムとを合成することにより、所定
の処理を行うためのプログラムを生成する解決器とを有
する。本発明ではデータ構造に対応して雛型プログラム
が用意される。用途/処理フロー毎に雛型を用意するよ
りは、より少ない雛型の数にて多様なプログラムを生成
できるようになる。

Description

【発明の詳細な説明】
【0001】
【発明が属する技術分野】本発明は、プログラムの作成
を支援する技術に関し、より詳しくは、各データ構造に
対応する雛型プログラムを用いたプログラムの自動生成
技術に関する。
【0002】
【従来の技術】従来のプログラム作成支援システムで
は、作成すべきプログラムに対する仕様を記述するため
の形式が用意され、それに従って記述された仕様からプ
ログラムを生成するジェネレータ方式が一般的である。
この方式では、(a)仕様記述の量を作成すべきプログ
ラムの規模に比べてどの程度小さく出来るか、(b)仕
様の形式を生成すべきプログラムの構造よりもユーザに
分かりやすくし、どの程度誤りが入り込みにくくできる
か、という点が重要な評価対象となる。この(a)に注
目すると、(i)作成すべきプログラムを用途/処理フ
ローに応じてパターン化し、パターン毎に雛型を用意し
て、固有の部分だけをユーザが記述する方法と、(ii)
作成すべきプログラムよりも記述性が高い形式を仕様記
述言語として提供する方法とがある。
【0003】
【発明が解決しようとする課題】(i)の方法を採用す
る際の問題は、ユーザによる仕様の記述量を少なくする
には雛型が相当量カバーする必要があるが、そのために
は用途/処理フローに応じたパターンを、生成すべきプ
ログラムの多様性に応じて数多く用意しなければならな
い点にある。
【0004】本発明の目的は、より少ない雛型を用い
て、多様なプログラムを生成できるようにするプログラ
ム自動生成技術を提供することである。
【0005】
【課題を解決するための手段】本発明の第1の態様に係
る、所定の処理を行うプログラムを自動的に生成するプ
ログラム自動生成装置は、所定の処理固有の設定を行う
ための解決ロジックを含み且つ予め対応付けられたデー
タ構造のための雛型プログラムを各々含む、複数のデー
タ構造解決ユニットと、選択されたデータ構造に対応す
るデータ構造解決ユニット内の雛型プログラムに含まれ
る解決ロジックの、所定の処理固有の設定に関する解決
情報を取得し、当該解決ロジックの解決情報と雛型プロ
グラムとを合成することにより、所定の処理を行うプロ
グラムを生成する解決器とを有する。本発明ではデータ
構造に対応して雛型プログラムが用意される。用途/処
理フロー毎に雛型を用意するよりは、より少ない雛型の
数にて多様なプログラムを生成できるようになる。
【0006】上で述べた解決器を、選択されたデータ構
造に対応するデータ構造解決ユニット内の雛型プログラ
ムに含まれる解決ロジックを解析し、当該解決ロジック
に対する解決情報の入力をユーザに促す手段を有するよ
うな構成とすることも可能である。これによりユーザは
より簡単に解決ロジックに対する解決情報を入力できる
ようになる。よって、生成されるプログラムに誤りが入
りにくくなる。
【0007】なお、上で述べたようなプログラム自動生
成装置を、通常のコンピュータとプログラムの組み合せ
にて実装することができ、当該プログラムは、例えばフ
ロッピー(登録商標)ディスク、CD−ROM、光磁気
ディスク、半導体メモリ、ハードディスク等の記憶媒体
又は記憶装置に格納される。また、処理途中の中間的な
データは、コンピュータのメインメモリなどの記憶装置
に格納される。
【0008】本発明の第2の態様に係る、所定の仕様に
従ったプログラムを生成するために使用される生成用プ
ログラムは、1又は複数のレコードタイプと、複数のレ
コードタイプが存在する場合には当該複数のレコードタ
イプ間のリンクとから構成されるデータ構造を規定し、
当該データ構造についての所定の仕様に従った設定を行
うための解決ロジックを含む第1の雛型プログラムと、
操作について所定の仕様に従った設定を行うための解決
ロジックを含み、上記データ構造に対して実行される基
本操作に対応する第2の雛型プログラムとを含む。生成
用プログラムは、上記のデータ構造解決ユニットであ
る。
【0009】なお、データ構造解決ユニットは、後に述
べる実施の形態では、単純型データ構造に対応するデー
タ構造解決ユニット、伝票型データ構造に対応するデー
タ構造解決ユニット、階層型データ構造に対応するデー
タ構造解決ユニット、ツリー型データ構造に対応するデ
ータ構造解決ユニット、在庫型データ構造に対応するデ
ータ構造解決ユニット、時間帯予約型データ構造に対応
するデータ構造解決ユニット、計画型データ構造に対応
するデータ構造解決ユニット、座席予約型データ構造に
対応するデータ構造解決ユニット、構成型データ構造に
対応するデータ構造解決ユニット、明細主導伝票型デー
タ構造に対応するデータ構造解決ユニット、系図型デー
タ構造に対応するデータ構造解決ユニット、及びマトリ
ックス型データ構造に対応するデータ構造解決ユニット
のうちいずれかのデータ構造解決ユニットである。
【0010】
【発明の実施の形態】本発明の一実施の形態に係るプロ
グラム自動生成装置の概要を図1に示す。プログラム自
動生成装置1は、データ構造解決ユニット3と、解決ロ
ジック解析部7及び合成部9を含む解決器5と、解決情
報入力画面11とを有している。なお、データ構造解決
ユニット3は、データ構造毎に複数用意されており(図
1における3a,3b,3c)、ユーザが選択したデー
タ構造に対応するデータ構造解決ユニット3に対し解決
器5が作用する。データ構造解決ユニット3は、生成す
べきプログラム固有の設定を行うための解決ロジック3
3を含む雛型プログラム31を含む。解決器5の解決ロ
ジック解析部7は、データ構造解決ユニット3の解決ロ
ジック33を解析し、解決情報をユーザに入力するよう
に促す入力画面11を生成する。ユーザは生成すべきプ
ログラムの仕様に従って、解決ロジック33に対する解
決情報を入力画面11に入力する。解決器5の合成部9
は、データ構造解決ユニット3の雛型プログラム31
と、ユーザにより入力された、解決ロジック33に対す
る解決情報を合成して、対象とするプログラム13を生
成する。
【0011】図2にデータ構造解決ユニット3の概要を
示す。データ構造解決ユニット3のデータ構造部320
は、本データ構造解決ユニット3に対応するデータ構造
を規定する部分である。すなわち、1又は複数のレコー
ドタイプ322及び324と、複数のレコードタイプが
存在する場合には当該複数のレコードタイプの関連を表
すリンク326とによりデータ構造が規定される。この
データ構造部320は、データ構造を規定する他、デー
タベース390とのインターフェースを有している。す
なわち、レコードタイプ322及び324に格納される
データをデータベースに出力する機能、データベースか
らデータを読み出し、レコードタイプ322及び324
とレコードタイプ間の関連に従った構造に成形する機能
とを有する。なお、データベース390はデータ構造解
決ユニット3には含まれない。よって図2ではデータベ
ース390を点線で描いている。
【0012】このデータ構造部320は実態的には雛型
プログラム380である。雛型プログラム380は上で
述べたように、当該データ構造解決ユニット3が取り扱
うデータ構造を規定しており、データベース390との
インターフェースを有している。また、雛型プログラム
380は解決ロジック382を含んでいる。この解決ロ
ジック382は、当該データ構造解決ユニット3が取り
扱うデータ構造についての設定を可能にするものであ
る。例えば、レコードの属性や型を設定できるようにす
るものである。データ構造は既に決まっているので、デ
ータ構造部320に対応する雛型プログラム380内の
解決ロジック382により設定できる部分は、後に述べ
る操作のための雛型プログラム内の解決ロジックに比べ
れば自由度は小さくなる。
【0013】操作基本部310は、データ構造部320
により規定されたデータ構造に対して基本的な操作であ
る基本操作312乃至316を実施する。基本操作31
2乃至316は、例えば、レコードの挿入、関連付け、
更新、検索、削除等の操作であり、データ構造に対応し
て必要となる操作である。
【0014】この操作基本部310も実態的には雛型プ
ログラム350乃至370である。図2では、雛型プロ
グラム350は基本操作312に対応しており、雛型プ
ログラム360は基本操作314に対応しており、雛型
プログラム370は基本操作316に対応している。こ
のように、基本操作312乃至316に対応する雛型プ
ログラム350乃至370が用意される。雛型プログラ
ム350乃至370は、個々のレコードに含まれるデー
タ項目に対する操作を行うものであり、埋め込み可能な
プログラムソースの形式で提供される。雛型プログラム
350乃至370の埋め込み可能な部分が解決ロジック
352である。解決ロジック352は、対象となるプロ
グラム固有の業務ロジックを雛型プログラム350乃至
370に埋め込む手段を提供するものである。実際的に
は、雛型プログラム350乃至370の中に、埋め込む
べき場所、埋め込むべき情報、その形式がタグ付き言語
にて用意されている。
【0015】1.伝票型データ構造 本実施の形態をより理解し易いように、以下データ構造
毎に説明する。例えば図3のような伝票操作画面15を
出力するようなプログラムを生成する場合を考える。伝
票操作画面15は購入品伝票を操作する画面であり、デ
ータ構造部320に係るデータと、操作基本部310に
係る操作ボタン500乃至520とを含む。データ構造
部320に係るデータは、ヘッダ部400に含まれる承
認番号、承認区分及び扱い日付についてのテーブルと、
明細部410に含まれる行番号及び購入品目のテーブル
とを含む。操作基本部310に係る操作ボタンには、伝
票登録操作を実施するための伝票登録ボタン500、伝
票更新操作を実施するための伝票更新ボタン510、伝
票削除操作を実施するための伝票削除ボタン520等が
含まれる。
【0016】図3のような伝票操作画面15を出力する
ようなプログラムは、伝票型データ構造を使用してい
る。よって、このようなプログラムを生成する際には、
伝票型データ構造に対応するデータ構造解決ユニット3
が選択されねばならない。伝票型データ構造では、ヘッ
ダのまとまりで情報が取り扱われ、ヘッダは明細を管理
する。伝票型データ構造に対応するデータ構造解決ユニ
ット3のデータ構造部320は、例えば図4のように示
すことが出来る。すなわち、キーと属性とを含むヘッダ
部400と、ヘッダ部400からリンクされており、キ
ーと属性とを含む明細部410とで表される。但し、明
細部410は1つのヘッダ部400に対してN件(Nは
0以上の整数)リンクする。
【0017】また、データ構造解決ユニット3の基本操
作部310は、例えば以下に示すような種類の基本操作
を含む。なお括弧内の文字列はメソッド名である。 (1)ヘッダ検索(findHeaderByKey) 指定したヘッダのキーを持つ伝票のヘッダを検索する。 (2)明細複数件検索(findDetailsByKey) 指定したヘッダのキーを持つ伝票の明細を複数検索す
る。 (3)明細1件検索(findDetailByKey) 指定したヘッダのキーを持つ伝票の明細を行番号を指定
して1件検索する。 (4)伝票検索(findSlipByKey) 指定したヘッダのキーを持つ伝票を検索する。 (5)条件によるヘッダ検索 ヘッダを条件指定で検索し、条件検索後に伝票1件分の
ヘッダ情報を取得する(nextHeader)。 (6)条件による伝票検索 伝票を条件指定で検索し、条件検索後に伝票1件分の全
情報を取得する(nextSlip)。 (7)キーつきヘッダ新規作成(createHeaderWithKey
1) キーを設定して伝票のヘッダを新規作成し、結果を真偽
で返す。 (8)キーつきヘッダ新規作成 キーを設定して伝票のヘッダを新規し(createHeaderWi
thKey2)、生成した伝票の情報を返す。 (9)キーなしヘッダ新規作成 キーを設定せずに伝票のヘッダを新規し(createHeader
WithoutKey)、生成した伝票の情報を返す。 (10)キーつき伝票新規作成(createSlipWithKey1) キーを設定して伝票を新規作成し、結果を真偽で返す。 (11)キーつき伝票新規作成 キーを設定して伝票を新規作成し(createSlipWithKey
2)、生成した伝票の情報を返す。 (12)キーなし伝票新規作成 キーを設定せずに伝票を新規作成し(createSlipWithou
tKey)、生成した伝票の情報を返す。 (13)明細追加(insertDetails1) 既存の伝票に明細を複数件追加し、結果を真偽で返す。 (14)明細追加 既存の伝票に明細を複数件追加し(insertDetails2)、
追加した伝票の情報を返す。 (15)明細取消(cancelDetails) 既存の伝票の明細を取り消す。 (16)ヘッダ更新 キーで指定したヘッダの内容を更新し、結果を真偽で返
す。 (17)ヘッダ更新 キーで指定したヘッダの内容を更新し、更新したヘッダ
の内容を返す。 (18)明細更新 キーで指定した伝票の明細の内容を更新し、結果を真偽
で返す。 (19)明細更新 キーで指定した伝票の明細の内容を更新し、更新した伝
票の内容を返す。 (20)伝票更新 キーで指定した伝票の内容を更新し、結果を真偽で返
す。 (21)伝票削除(removeSlip) 指定したキーを持つヘッダを、そのヘッダが持っている
全明細を含めて、物理的に削除する。
【0018】なお前段で説明した基本操作は、さらに細
かい操作の集合である。例えば図5に示すように、伝票
登録操作(前段の伝票新規作成)は、ヘッダ部400に
対して登録操作を実施し且つ明細部410に対して登録
操作を実施する。伝票更新操作(前段の伝票更新)は、
ヘッダ部400に対して更新操作を実施し且つ明細部4
10に対して更新操作を実施する。明細追加操作(前段
の明細追加)は、明細部410に対して登録処理を実施
する。
【0019】上でも述べたが操作基本部310の各基本
操作に対応して解決ロジックを含む雛型プログラムが用
意される。図6には伝票更新操作の雛型プログラムソー
スの例を示している。図6の例では、《》に囲まれてい
る部分が解決ロジックであり、ユーザがこの部分に対す
る解決情報を入力することにより対象となるプログラム
を生成できるようになる。図6の例では、操作名、伝票
名、更新可能な状態名、更新後の状態名、固有チェッ
ク、及びエラーメッセージを、対象となるプログラムの
仕様に従って設定する。図6は伝票更新操作の雛型プロ
グラムである。
【0020】なお、《》に囲まれている情報だけでは複
雑な記述はできないので、タグの意味内容を別途タグリ
ストとして記述しておき、その中の情報を使用する場合
もある。例えば、《》内にはタグリストの参照先を示し
ておき、例えばタグリストにおいてユーザに選択させる
べき選択肢についてのデータを格納しておくことも可能
である。
【0021】図1に示した解決器5の解決ロジック解析
部7が上で述べたような伝票型データ構造に対応するデ
ータ構造解決ユニット3の解決ロジック33を解析する
と、図7に示したような事項をユーザに入力するように
促す。すなわち、解決ロジック解析部7は解決情報入力
画面11aを出力する。入力画面11aは、データ構造
部320の解決ロジックに関するデータ構造解決部60
0及び610と、操作基本部310の解決ロジックに関
する操作解決部620とに分けられる。
【0022】データ構造解決部600は伝票型データ構
造におけるヘッダ部400についての設定を入力する部
分である。図7では項目名「承認番号」が入力され、こ
の承認番号はキーであり、型は整数(int)型である
ということが入力されている。すなわち、図4のヘッダ
部400のキーの部分には整数型の承認番号が格納され
る。また、文字列型(String)の項目名「承認区分」、
及び日付型(date)の項目名「扱い日付」という情報も
入力されている。承認区分及び扱い日付は図4のヘッダ
部400の属性の部分に格納される。データ構造解決部
610は伝票型データ構造における明細部410につい
ての設定を入力する部分である。図7では整数型の項目
名「承認番号」及び整数型の項目名「行番号」がキーと
して入力されている。すなわち、図4の明細部410の
キー部分に承認番号及び行番号が格納される。また文字
列型の項目名「購入品目」も入力されている。この購入
品目は図4の明細部410の属性部分に格納される。
【0023】操作解決部620は、図7では一部のみし
か示されていない。ユーザが対象となるプログラムの仕
様に従って、操作名として[課長承認]を入力する。そ
うすると、課長承認に対応する基本操作名を基本操作名
リストから選択するようになっている。ここでは課長承
認に対応する基本操作は伝票更新である。次に伝票更新
操作に対応するロジック解決情報を入力する。解決ロジ
ック解析部7は、伝票更新操作の雛型プログラムに埋め
込まれた解決ロジックであるタグ付き言語の部分を解析
して、更新可能状態名の具体的な入力(ここでは[承認
申請中])、更新後状態名の具体的な入力(ここでは
[課長承認済])、エラーメッセージの具体的な入力
(ここでは[承認対象ではありません])、固有チェッ
クの具体的な入力(ここでは[承認区分="部長決済伝
票"]。論理式でも記述できる)を求める。そして、ユ
ーザは他の操作名を入力し、上で述べたのと同様な処理
を繰り返す。図7の例では次に操作名として[伝票作
成]を入力している。そして、伝票作成操作に対応する
基本操作が伝票登録と選択される。
【0024】なお図7のように一画面で全ての解決情報
を入力するようにするとユーザには煩雑になり、入力漏
れや、入力過ちを生ずる可能性がある。よって、図8乃
至図12のように順番に必要な情報を入力/選択させる
ようにしてもよい。
【0025】図8は本プログラム自動生成装置1を使用
してプログラムの自動生成を行う際に最初に行うべきデ
ータ構造の選択のための型選択画面11bである。型選
択画面11bは、単純型データ構造を選択するためのボ
タンと、伝票型データ構造を選択するためのボタンと、
階層型データ構造を選択するためのボタンと、ツリー型
データ構造を選択するためのボタンと、在庫型データ構
造を選択するためのボタンと、時間帯予約型データ構造
を選択するためのボタンと、計画型データ構造を選択す
るためのボタンと、座席予約型データ構造を選択するた
めのボタンと、構成型データ構造を選択するためのボタ
ンと、明細主導の伝票型データ構造を選択するためのボ
タンと、系図型データ構造を選択するためのボタンと、
マトリックス型データ構造を選択するためのボタンと、
本プログラム自動生成装置が出力する最初の画面に戻る
ためのボタン(戻る)と、選択したデータ構造に関する
解決情報を入力する処理に移行するためのボタン(次
へ)と、選択をキャンセルするためのボタンとが含まれ
る。型選択画面11bにて選択されたデータ構造に対応
するデータ構造解決ユニット3が以下の処理を行うため
に用意される。
【0026】本実施例では上で述べたように12種類の
データ構造から選択できるようになっているが、これ以
外のデータ構造を追加して、より多くの種類のデータ構
造からプログラム生成のためのデータ構造を選択するよ
うにすることも可能である。また、上で述べた12種類
のデータ構造のうち2以上の任意のデータ構造のみを選
択可能として型選択画面11bに提示するような態様も
可能である。
【0027】ここでは伝票型データ構造が選択され、
「次へ」のボタンが押されたものとする。そうすると、
伝票型データ構造に対応するデータ構造解決ユニット3
が取り出され、解決ロジック解析部7は、データ構造解
決ユニット3に含まれる解決ロジック33を解析し、ま
ず図9に示す伝票型解決情報入力画面その1(11c)
を出力する。この伝票型解決情報入力画面その1(11
c)では、ユーザに伝票名を入力するよう促す。本例で
は購入品伝票を処理するプログラムを生成するために、
ユーザは「購入品伝票」と入力し、「次へ」というボタ
ンを押す。なお、データ構造を選択し直す場合には、
「戻る」のボタンを押し、伝票名の入力をキャンセルす
る場合には「キャンセル」のボタンを押す。
【0028】図9で「次へ」のボタンが押されると、伝
票型解決情報入力画面その2(11d)が解決ロジック
解析部7から出力される。解決ロジック解析部7はデー
タ構造部320の雛型プログラム380に埋め込まれた
解決ロジック382を解析して、データ構造解決部60
0及び610の入力用テーブルを出力する。データ構造
解決部600では、ユーザにヘッダ部400の解決情報
を入力するよう促す。ここでは、項目名、キーか否か、
型を入力する。すなわち、雛型プログラム380にはヘ
ッダ・レコードに属性を与えるための解決ロジック38
2が含まれている。本例では、キーであり、整数型の項
目名「承認番号」と、文字列型の項目名「承認区分」
と、日付型の項目名「扱い日付」が入力されている。デ
ータ構造解決部610では、ユーザに明細部410の解
決情報を入力するよう促す。ここでは、項目名、キーか
否か、型を入力する。すなわち、雛型プログラム380
には明細レコードに属性を与えるための解決ロジックが
含まれている。本例では、キーであり、整数型の項目名
「承認番号」と、キーであり、整数型の項目名「行番
号」と、文字列型の項目名「購入品目」が入力されてい
る。
【0029】ユーザは生成すべきプログラムの仕様に従
った解決情報の入力が終われば、次の解決情報の入力の
ため「次へ」ボタンを押す。なお、伝票名の入力をやり
直す場合には「戻る」ボタンを押す。また、入力をキャ
ンセルする場合には「キャンセル」ボタンを押す。
【0030】図10で「次へ」ボタンが押されると、伝
票型解決情報入力画面その3(11e)が解決ロジック
解析部7から出力される。解決ロジック解析部7はどの
基本操作に対する設定を行うかの選択をユーザに促す。
伝票解決情報入力画面その3(11e)では、操作名を
入力し、この操作名に対応する基本操作名を選択する。
基本操作名の選択は、操作基本部310に含まれる基本
操作の名前に関する基本操作名リストを使用する。図1
1では基本操作名リストをコンボボックスで表示するよ
うになっている。図11の例では操作名には課長承認が
入力され、それに対応する基本操作には伝票更新が選択
される。なお、コンボボックスの表示にて隠れている
が、伝票型解決情報入力画面その3(11e)の入力が
終了すると、「次へ」ボタンを押す。一方、伝票型解決
情報入力画面その2(11d)に戻る場合には「戻る」
ボタンを押す。入力をキャンセルする場合には「キャン
セル」ボタンを押す。
【0031】図11で「次へ」のボタンが押されると、
解決ロジック解析部7から伝票解決情報入力画面その4
(11f)が出力される(図12)。この伝票解決情報
入力画面その4(11f)は、操作解決部620の入力
をユーザに促すものである。解決ロジック解析部7は、
選択された基本操作に対応する雛型プログラムを解析
し、埋め込まれている解決ロジックに対する解決情報の
入力を求める。本例では、更新可能状態名の入力、更新
後状態名の入力、エラーメッセージの入力、固有チェッ
クの入力が可能となっており、更新可能状態名には「承
認申請中」、更新後状態名には「承認申請済」、エラー
メッセージには「承認対象ではありません」、固有チェ
ックには「承認区分="部長決済伝票"」が入力されてい
る。このように、基本操作に対応する本雛型プログラム
には、ヘッダ・レコードの状態を操作との関連で定義す
るための解決ロジックと、プログラムの仕様に従った設
定をレコードの属性、レコードの状態、若しくはレコー
ドの属性及び状態の組合せで記述するための解決ロジッ
クが埋め込まれている。
【0032】伝票型解決情報入力画面その4(11f)
の入力が終了すると、生成ボタンを押す。これにより、
基本操作の伝票更新操作に係るプログラムが合成部9に
より生成される。続いて、生成すべきプログラムの仕様
において必要とされる他の操作に対する解決情報の入力
が行われる。なお、前の入力画面に戻る場合には「戻
る」ボタンを押し、入力をキャンセルする場合には「キ
ャンセル」ボタンを押す。
【0033】以上のように最初にデータ構造がユーザに
より選択され、解決ロジック解析部7が、選択されたデ
ータ構造に対応するデータ構造解決ユニット3の解決ロ
ジック33を解析し且つ解決情報入力画面11を出力
し、それに対応して解決情報がユーザにより入力され、
合成部9が解決情報と雛型プログラム31を合成するこ
とによりプログラムを生成する。
【0034】ここで解決器5の処理フローを図13乃至
図15まとめておく。
【0035】ユーザによりデータ構造が選択されて処理
が開始されると(図13:ステップS11)、選択され
たデータ構造に対応するデータ構造解決ユニット3の解
析が解決ロジック解析部7により行われる。最初に、デ
ータ構造解決ユニット3のデータ構造部320の解析が
行われる(ステップS13)。雛型プログラム380の
解決ロジック382が解析される。解析の結果は後で用
いるので、一旦記憶装置に格納される。
【0036】次に、操作基本部310の解析を行う(ス
テップS15)。ここでは、操作基本部310の基本操
作毎の雛型プログラム350乃至370を読み込み、基
本操作の名前のリストである基本操作名リストを作成す
る。そして、読み込んだ雛型プログラム350乃至37
0の解析を実施する(ステップS17)。雛型プログラ
ムの解析については後に図14を用いて説明する。
【0037】ステップS17までにデータ構造解決ユニ
ット3の解析を終了すると、解決ロジック解析部7は解
決ロジックに対する解決情報を入力するための解決情報
入力画面の生成を行い、ユーザに提示する(ステップS
19)。そして、ユーザから解決情報を取得する。この
ステップS19の処理についても後に図15を用いて説
明する。合成部9は、取得した解決情報と雛型プログラ
ム31を合成し(ステップS21)、対象プログラムを
生成する(ステップS23)。なお、雛型プログラム3
1に埋め込まれた解決ロジックの部分を、取得した解決
情報で埋めれば、対象となるプログラムが生成できる。
【0038】では、図14を用いて雛型プログラムの解
析処理を示す。図14の処理は伝票型データ構造の場合
の解析処理である。まず、伝票型データ構造に対応する
雛型プログラムに埋め込まれた解析ロジックである伝票
名タグの存在を確認する(ステップS33)。伝票型デ
ータ構造に対応する雛型プログラムには必ず伝票名タグ
が含まれる。よって、もしステップS33で伝票名タグ
が見つからない場合には、当該雛型プログラムは伝票型
データ構造に対応する雛型プログラムとしては適当でな
いということになる。存在が確認できなければ、エラー
メッセージを出力するようにしてもよい。
【0039】次に操作名タグの存在を確認する(ステッ
プS35)。この操作名タグも雛型プログラムには必ず
設けられる解決ロジックであるから、操作名タグが見つ
からない場合にはエラーメッセージを出力するようにし
てもよい。そして、雛型プログラムを走査してその他の
タグを検索し、タグ内容の確認及び記憶装置への格納を
行う(ステップS39)。雛型プログラムの解析結果
は、一旦記憶装置に格納され、次の解決情報入力画面生
成処理に用いられる。
【0040】次に、解決情報入力画面の生成及び解決情
報の取得処理について図15を用いて説明する。図15
の処理は伝票型データ構造の場合の処理である。まず、
伝票名入力画面を作成し、ユーザに対して出力する。ユ
ーザからは伝票名を取得する(ステップS43)。例え
ば図9に示した伝票型解決情報入力画面その1(11
c)を出力し、ユーザから伝票名を取得する。次に、デ
ータ構造入力画面を作成し、ユーザに対して出力する。
ユーザからはデータ構造についての設定内容を取得する
(ステップS44)。例えば図10に示した伝票型解決
情報入力画面その2(11d)を出力し、ユーザからヘ
ッダ部400及び明細部410に関する情報を取得す
る。
【0041】そして、基本操作名リストからの選択部分
を含む操作内容入力画面を作成し、ユーザに対して出力
する。ユーザからは操作内容を取得する(ステップS4
5)。例えば図11に示した伝票型解決情報入力画面そ
の3(11e)を出力し、ユーザから操作名及び対応す
る基本操作名を取得する。最後に、その他のタグの解決
情報入力画面を作成し、ユーザに対して出力する。ユー
ザからはその他の解決情報を取得する(ステップS4
7)。例えば図12に示した伝票型解決情報入力画面そ
の4(11f)を出力し、ユーザからは対象となるプロ
グラムの固有の設定に関する解決情報を取得する。
【0042】次に伝票型データ構造を使用した他のプロ
グラムを生成する場合に入力すべき解決情報の例を示
す。図16は出荷伝票を処理するプログラムを作成する
際に入力すべき解決情報を入力するための画面例11g
を示す。図7に示したのと同じように、伝票型データ構
造の場合には、データ構造解決部640がヘッダ部40
0に対する設定を入力する部分であり、データ構造解決
部650が明細部410に対する設定を入力する部分で
ある。ヘッダ部400には、項目名、キーか否か、デー
タの型が入力される。図16の例では、項目名「出荷番
号」はキーであり、整数型のデータであることが入力さ
れている。項目名「出荷区分」は文字列型のデータであ
ることが入力されている。項目名「扱い日付」が日付型
のデータであることが入力されている。
【0043】明細部410には、項目名、キーか否か、
データの型が入力される。図16の例では、項目名「出
荷番号」はキーであり、整数型のデータであることが入
力されている。項目名「行番号」はキーであり、整数型
のデータであることが入力されている。項目名「商品コ
ード」は文字列型のデータであることが入力されてい
る。
【0044】操作解決部660では、操作名を入力し、
その後対応する基本操作の雛型プログラムの解決ロジッ
クに解決情報を埋め込むための処理が行われる。図16
の例では、まず[出荷確定]が操作名として入力され
る。この出荷確定に対応する基本操作は、基本操作名リ
ストから選択される。ここでは伝票更新が対応する基本
操作として選択されている。そして、この伝票更新操作
の雛型プログラムの解決ロジックに対応する解決情報が
入力される。ここでは、更新可能状態名の入力が求めら
れ、ユーザにより[出荷依頼済]が入力されている。ま
た更新後状態名の入力が求められ、ユーザにより[出荷
確定済]が入力されている。またエラーメッセージの入
力が求められ、ユーザにより[出荷依頼が行われており
ません。]が入力されている。さらに固有チェックの入
力が求められ、ユーザにより[出荷伝票が当月度出荷対
象か。]が入力されている。出荷確定操作に対する入力
が終了すると、他の操作に対する解決情報の入力が行わ
れる。図16の例では次に操作名[出荷依頼]が入力さ
れ、対応する基本操作として伝票登録が選択されたこと
が示されている。このような処理が、対象となるプログ
ラムの仕様に沿って必要な操作を規定し終えるまで繰り
返される。
【0045】2.時間帯予約型データ構造の場合 次に時間帯予約型データ構造について説明する。時間帯
予約型データ構造を選択した場合に生成されるプログラ
ムが出力する画面の一例を図17に示す。このプログラ
ムは会議室予約プログラムであり、会議室予約画面を出
力する。表800は、データ構造解決ユニット3のデー
タ構造部320に対応するデータを表示する部分であ
る。ここでは応接A、応接B、談話室という資源880
に対する予約を行うことができる。図17では6月7日
と、6月8日と、6月9日とに関する予約処理を行う場
面を示している。日付毎に、予約する時間を分かりやす
くするために9時から17時までの時間軸が示されてい
る。各資源の行には、予約が既に入っている時間帯を示
す帯が示されている。一方、予約登録のためのボタン8
10、予約取り消しのためのボタン820、キャンセル
のためのボタン830は、データ構造解決ユニット3の
操作基本部310に対応する操作を実行させるためのボ
タン群を示している。
【0046】図17の応接Aの6月9日の予約状況を拡
大したのが拡大表示部840である。予約を行う時間軸
の部分をグリッド870と呼ぶ。予約の時間単位を予約
セル850とし、予約セル850の集合として予約86
0が定義される。
【0047】では、図17のような画面を出力するため
のプログラムの元となる時間帯予約型データ構造を図1
8に示す。時間帯予約型データ構造は、資源部430
と、M個(Mは0以上の整数)の予約部440と、1つ
の予約部440に対してN個(Nは0以上の整数)の予
約セル部450と、資源部430と予約部440とを結
ぶリンクと、予約部440と予約セル部450とを結ぶ
リンクとから構成される。資源部430は図17におけ
る資源880のためのデータを格納する部分である。予
約部440は図17における予約860のためのデータ
を格納する部分である。予約セル部450は図17にお
ける予約セル850のためのデータを格納する部分であ
る。資源部430、予約部440、予約セル部450に
はそれぞれキーと属性が格納される。
【0048】また、データ構造解決ユニット3の操作基
本部310は、例えば以下に示すような種類の基本操作
を含む。なお括弧内の文字列はメソッド名である。 (1)予約登録(キーあり)(createReservationWithK
ey1) 入力情報に従い、予約と予約セルを創生(既に創生され
ている場合はキャンセル待ちとして登録)する。 (2)予約登録(キーあり) 入力情報に従い、予約と予約セルを創生(既に創生され
ている場合はキャンセル待ちとして登録)し(createRe
servationWithKey2)、創生した予約エンティティの情
報を返す。 (3)予約登録(キーなし) 入力情報に従い、予約と予約セルを創生(既に創生され
ている場合はキャンセル待ちとして登録)し(createRe
servationWithoutKey)、創生した予約エンティティの
情報を返す。なお、プライマリキーは採番クラスから取
得して使用する。 (4)予約取消(cancelReservation) 入力情報の予約キーの予約を取り消す(物理削除)。関
連する予約セルに対しては自予約の状態により以下の処
理を行う。(a)自予約が「キャンセル待ち」であれ
ば、その指定を解除する。(b)自予約が「正予約」で
あり、キャンセル待ちが指定されていれば、キャンセル
待ちを正予約に昇格させキャンセル待ちを解除する。
(c)自予約が「正予約」であり、キャンセル待ちが指
定されていなければ、予約セルを削除する。 (5)正予約可否確認(isVacant) 入力情報の資源と日付、時間帯について対応する予約セ
ルを確認し、予約セルが存在しない場合に正予約可(tr
ue)を返す。 (6)予約不可確認(isOccupied) 入力情報の資源と日付、時間帯について対応する予約セ
ルを確認し、キャンセル待ち指定済みが1つでもある場
合は予約不可(true)を返す。 (7)予約状況確認(isReserved) 入力された予約キーの予約に対し、関連する全ての予約
セルの状況を確認し、全てが「正予約」であれば予約成
立(true)を返す。 (8)予約期間変更(changeReservedPeriod) 入力された予約キーの予約を取得し、指定された期間に
変更する。変更後の期間が予約可能であれば変更を行う
が、予約不可の場合は予約不成立(負の値)を返す。変
更後の予約状況により、予約成立は正の値、キャンセル
待ち状態なら0を返す。 (9)予約資源変更(changeReservedResource) 入力された予約キーの予約を取得し、指定された資源に
変更する。指定された資源の変更後の期間が予約可能で
あれば変更を行うが、予約不可の場合は予約不成立(負
の値)を返す。変更後の予約状況により、予約成立は正
の値、キャンセル待ち状態なら0を返す。 (10)予約更新 入力情報に従い、予約を更新する。結果は真偽で返され
る。 (11)連鎖昇格予約キーリスト取得(getChainElevat
edReservation) 予約取消、予約期間変更、予約資源変更の操作で、既存
の正予約が取り消されたことによってキャンセル待ち予
約が昇格した場合にその予約キーリストを指定されたメ
ッセージキャリアに格納する。 (12)予約キー検索(findReservationByKey) 指定された予約キーの予約を取得し、その情報を出力用
メッセージキャリアに格納する。 (13)期間指定予約検索 指定された日付(期間)に含まれる予約を検索し、存在
するかどうかを返し(findReservationByPeriod)、複
数の予約を含む検索結果を指定されたメッセージキャリ
アに格納して返す(nextReservation)。 (14)資源指定予約検索 指定された資源キーの予約を検索し、存在するかどうか
を返す(findReservationByResource)。また、複数の
予約を含む検索結果を指定されたメッセージキャリアに
格納して返す(nextReservation)。 (15)資源期間指定予約検索 指定された資源キーと日付(期間)を条件に予約を検索
し、存在するかどうかを返し(findReservationByResou
rceAndPeriod)、複数の予約を含む検索結果を指定され
たメッセージキャリアに格納して返す(nextReservatio
n)。 (16)予約セルキー検索(findReservedCellByKey) 指定された予約セルキーの予約セルを取得し、指定され
たメッセージキャリアに格納する。 (17)キャンセル待ちキー指定予約検索(findReserv
ationByCancelWaitingKey) 指定された予約キーがキャンセル待ちとなっている予約
セルを検索し、その正予約キーのリストを出力用のメッ
セージキャリアに格納する。 (18)予約キー指定キャンセル待ち検索(findCancel
WaitingByReservationKey) 指定された予約キーが正予約となっている予約セルを検
索し、そのキャンセル待ち予約キーのリストを出力用の
メッセージキャリアに格納する。 (19)資源追加(キーあり) 入力情報に従って資源を追加作成する(返却値は真偽)
(insertResourceWithKey)。そして、追加された資源
の情報を返す。 (20)資源追加(キーなし) 入力情報に従って資源を追加作成する(insertResource
WithoutKey)。プライマリキーは採番クラスより取得す
る(返却値は真偽)。追加された資源の情報を返す。 (21)資源削除(removeResource) 指定された資源キーの資源を削除(物理削除)する。 (22)資源キー検索(findResourceByKey) 指定された資源キーの資源を取得し、情報を出力用メッ
セージキャリアに格納する。 (23)資源条件検索 指定された条件に合う資源を検索し、存在するかどうか
を返す。そして、複数の資源を含む検索結果を指定され
たメッセージキャリアに格納して返す(nextResourc
e)。
【0049】なお前段で説明した基本操作は、さらに細
かい操作の集合である。例えば図19に示すように、予
約登録操作(前段の予約登録)は、資源部430に対し
ては登録処理を実施し、予約部440に対しては登録処
理を実施し、予約セル部450に対しては登録処理を実
施する。予約取消操作(前段の予約取消)は、資源部4
30に対しては削除処理を実施し、予約部440に対し
ては削除処理を実施し、予約セル部450に対しては削
除処理を実施する。空状況確認操作(前段の資源指定予
約検索等))は、予約部440に対して検索処理を実施
する。予約期間変更操作(前段の予約期間変更)は、予
約部440に対しては更新処理を実施し、予約セル部4
50に対しては削除又は登録処理を実施する。予約資源
変更操作(前段の予約資源変更)は、資源部430に対
しては検索処理を実施し、予約部440に対しては更新
処理を実施し、予約セル部450に対しては削除又は登
録処理を実施する。予約条件検索操作(前段の資源指定
予約検索等)は、予約部440に対して検索処理を実施
する。
【0050】時間帯予約型データ構造に対してこのよう
なデータ構造解決ユニット3が用意されており、解決ロ
ジック解析部7はデータ構造解決ユニット3の解決ロジ
ックを解析して、例えば図20に示すような解決情報入
力画面11iを作成してユーザに出力する。
【0051】図7及び図16に示したように、データ構
造解決ユニット3のデータ構造部320に対する解決情
報を入力するためのデータ構造解決部900乃至920
と、データ構造解決ユニット3の操作基本部310に対
応する雛型プログラム380に埋め込まれた解決ロジッ
ク382に対する解決情報を入力するための操作解決部
930とが含まれる。
【0052】データ構造解決部900は、時間帯予約型
データ構造における資源部430の解決情報を入力する
部分である。データ構造解決部900には資源名に対す
る入力部が設けられており、ここでは[会議室]が入力
されている。また、項目名、キーか否か、データの型を
入力するようになっている。すなわち、雛型プログラム
380には資源レコードに属性を与えるための解決ロジ
ック382が含まれている。図20の例では、項目名
「会議室コード」が入力されており、この会議室コード
はキーであり、文字列型のデータであることが入力され
ている。項目名「会議室名」が入力されており、会議室
名は文字列型のデータであることが入力されている。項
目名「収容人数」が入力されており、収容人数は整数型
のデータであることが入力されている。項目名「TV会
議可」が入力されており、TV会議可は論理型(boolea
n)のデータであることが入力されている。
【0053】データ構造解決部910は、時間帯予約型
データ構造における予約部440の解決情報を入力する
部分である。ここには、項目名、キーか否か、データの
型を入力するようになっている。すなわち、雛型プログ
ラム380には予約レコードに属性を与えるための解決
ロジック382が含まれている。図20の例では、項目
名「予約番号」が入力されており、この予約番号はキー
であり且つ整数型のデータであることが入力されてい
る。項目名「会議室コード」が入力されており、この会
議室コードは文字列型のデータであることが入力されて
いる。項目名「開始日付」が入力されており、日付型の
データであることが入力されている。項目名「開始グリ
ッド番号(No)」が入力されており、この開始グリッ
ド番号が整数型のデータであることが入力されている。
【0054】データ構造解決部920は、時間帯予約型
データ構造における予約セル部450の解決情報を入力
する部分である。すなわち、雛型プログラム380には
予約セル・レコードに属性を与えるための解決ロジック
382が含まれている。ここでは、グリッド番号の最大
値と、グリッド単位名が入力されるようになっている。
図20の例ではグリッド番号の最大値は21であり、グ
リッド単位名が「時」であることが入力されている。
【0055】操作解決部930は、データ構造解決ユニ
ット3の操作基本部310に対応する雛型プログラム3
50乃至370に埋め込まれた解決ロジック352に対
する解決情報を入力する部分である。まず、操作名を最
初に入力するようにユーザに求める。図20では操作名
は[会議室予約]と入力されている。この会議室予約に
対応する基本操作を次に選択する。この選択には基本操
作名リストが用いられる。図20では会議室予約に対応
する基本操作は予約登録と選択されている。この基本操
作「予約登録」に対応する雛型プログラムが読み出さ
れ、埋め込まれた解決ロジックに代わって入力されるべ
き解決情報の入力が求められる。図20では、予約可能
日チェックという項目に対して[営業日チェック(予約
日付)="OK"]が入力されている。エラーメッセージ
という項目に対して[予約できませんでした]が入力さ
れている。固有チェックという項目に対して[所属チェ
ック(所属コード)="OK"]が入力されている。予約
可能日チェックと固有チェックは、チェックの条件を論
理式で記述可能である。
【0056】以上解決情報を入力すれば、基本操作であ
る予約登録についてのプログラムを生成することができ
る。対象とすべきプログラムの仕様に従って必要とされ
る基本操作についての解決情報を続いて入力するように
ユーザに促す。図20の例では、次に操作名[会議室変
更]操作についての解決情報を入力するようになってい
る。この会議室変更に対応する基本操作は予約資源変更
操作と選択されている。
【0057】3.単純型データ構造の場合 単純型データ構造は、図4に示された伝票型データ構造
のようにリンクを有しておらず、例えばヘッダ部400
のみで存在するようなデータ構造である(図21参
照)。例えば、「職制」のみを管理したり、一商品毎に
別伝票を起こすような場合に適用できる。データ構造部
320は、1つのレコードタイプを規定しており、1つ
のレコードタイプの属性を与えるための解決ロジックを
含む雛型プログラムが対応する。なお、レコードタイプ
には、生成、削除、キー検索を実行する処理部が設けら
れる。
【0058】また、単純型データ構造の操作基本部31
0には、以下に示すような基本操作が含まれる。なお括
弧内の文字列はメソッド名である。 (1)レコードの検索(findSimpleEntityByKey) 指定されたキーを持つエンティティ(=レコードタイ
プ。以下同じ。)のインスタンスを検索する(返却値は
エンティティの情報)。返却値はエンティティ及びその
状態の情報の場合もある。 (2)レコードの追加(createSimpleEntityWithKey1) 指定されたキーを持つエンティティのインスタンスを生
成する(返却値は真偽)。 (3)レコードの追加(createSimpleEntityWithKey2) 指定されたキーを持つエンティティのインスタンスを生
成する(返却値はエンティティの情報)。 (4)レコードの追加(キーなし)(createSimpleEnti
tyWithoutKey) エンティティのインスタンスを生成する(返却値はエン
ティティの情報)。 (5)レコードの削除(removeEntity) 指定されたキーを持つエンティティのインスタンスを削
除する。 (6)レコードの状態参照(getState) 指定されたキーを持つエンティティのインスタンスから
状態を取得する。 (7)レコードの条件検索 条件に適合するエンティティのインスタンスの集合を準
備し、その準備ができたかどうかを返す。そして、次の
エンティティの情報を取得する(nextSimpleEntity)。 (8)レコードの更新 指定されたキーを持つエンティティのインスタンスの情
報を更新する(返却値は真偽)。 (9)レコードの更新 指定されたキーを持つエンティティのインスタンスの情
報を更新する(返却値は更新したエンティティの情
報)。 このように単純型データ構造に対する基本操作に対応す
る各雛型プログラムには、対象となるプログラム固有の
設定を行うための解決ロジックが埋め込まれている。
【0059】4.マトリックス型データ構造の場合 次にマトリックス型データ構造に係るデータ構造解決ユ
ニット3について説明する。このマトリックス型データ
構造は、図22に示すように行部462と、列部460
と、行及び列の交点のレコードを示すセル部464と、
各列のタイプを規定し且つ各セル部464に対して割り
当て可能な属性を表す列タイプ部466と、行部462
とセル部464とのリンクと、列部460とセル部46
4とのリンクと、列部460と列タイプ部466とのリ
ンクと、列タイプ部466とセル部464とのリンクと
を含む。なお、1つの行部462に対してN個(Nは0
以上の整数)のセル部464が存在する。また、1つの
列部460に対してM個(Mは0以上の整数)のセル部
464が存在する。また、1つの列部460に対してK
個(Kは0以上の整数)の列タイプ部466が存在す
る。また、1つの列タイプ部466に対してL個(Lは
0以上の整数)のセル部464が存在する。なお、デー
タ構造部320には、行部462と、列部460と、列
タイプ部466とに属性を与えるための解決ロジックが
含まれる。また、行部462、列部460、セル部46
4及び列タイプ部466の各々には、生成、削除、検索
等を実行する処理部が設けられている。
【0060】マトリックス型データ構造の使用例を図2
3及び図24を用いて説明する。図23は、マトリック
ス型データ構造が適用できる自動車保険の例であって、
各行には、A、B、C、D及びEという保険商品名とそ
の保障内容(用途・車種、年齢別不担保特約、ファミリ
ーバイク特約及び無保険者傷害保険)が示されている。
一方各列には、A、B、C、D及びEのそれぞれについ
て、用途・車種、年齢別不担保特約、ファミリーバイク
特約及び無保険者傷害保険の情報が示されている。
【0061】図23のようなテーブルを表すために、例
えば図24のようなマトリックス型データ構造を規定す
る。すなわち、保険商品レコード472は行部462に
対応し、保険商品コードがキーであり、商品名という属
性が与えられる。保障レコード470は列部460に対
応し、保障コードがキーであり、保障名という属性が与
えられる。商品保障組合せレコード474はセル部46
4に対応する。保障パターン・レコード476は列タイ
プ部466に対応し、保障コード及びパターンIDがキ
ーであり、パターン持ち方区分(真偽、文字列、文字列
リスト(複数の文字列)、文字列範囲、文字列範囲リス
ト、数値、数値リスト、数値範囲、数値範囲リストのい
ずれかを識別するコード)と、パターン持ち方区分で特
定された真偽、文字列、文字列リスト(複数の文字
列)、文字列範囲、文字列範囲リスト、数値、数値リス
ト、数値範囲、数値範囲リストのいずれかが属性として
与えられる。このように、マトリックス型データ構造の
データ構造部320に対応する雛型プログラム380に
は、少なくとも行部462、列部460、及び列タイプ
部466に属性を与えるための解決ロジック382が含
まれている。また、マトリックス型データ構造の場合に
は、列タイプ部466をセル部464に割り当てるため
の解決ロジックも含まれる。
【0062】そして、図23のようなテーブルの場合、
保険商品レコード472に対応するインスタンスは、
A、B、C、D及びEの5つ存在する。また、保障レコ
ード470に対応するインスタンスは、用途・車種、年
齢別不担保特約、ファミリーバイク特約、及び無保険者
傷害特約の4つ存在する。商品保障組合せレコード47
4に対応するインスタンスは、行及び列の組合せで20
個存在する。保障パターン・レコード476に対応する
インスタンスは、8つ存在する。これは、用途・車種に
つき2つ、年齢別不担保特約につき2つ、ファミリーバ
イク特約につき2つ、無保険者傷害特約につき2つであ
る。すなわち、自家用普通乗用車・自家用小型乗用車・
自家用軽四輪乗用車・二輪車・原付自転車という文字列
リストが属性として含まれる用途・車種についてのイン
スタンスと、自家用普通乗用車・自家用小型乗用車・自
家用軽四輪乗用車という文字列リストが属性として含ま
れる用途・車種についてのインスタンスと、21・26
・30・0という数値リストが属性として含まれる年齢
別不担保特約についてのインスタンスと、50という数
値リストが属性として含まれる年齢別不担保特約につい
てのインスタンスとが含まれる。さらに、Yes(あ
り)という真偽が属性として含まれるファミリーバイク
特約についてのインスタンスと、No(なし)という真
偽が属性として含まれるファミリーバイク特約について
のインスタンスとが含まれる。また、Yes(あり)と
いう真偽が属性として含まれる無保険者傷害特約につい
てのインスタンスと、No(なし)という真偽が属性と
して含まれる無保険者傷害特約についてのインスタンス
とが含まれる。
【0063】また、マトリックス型データ構造の操作基
本部310には、例えば以下に示すような基本操作が含
まれる。 (1)列の追加(列タイプ情報なし) 列のインスタンスが追加される。列に対応するセル1列
分が追加されるが列タイプへのリレーションは生成され
ない。列の情報が引数。 (2)列の追加(列タイプ情報付き) 列のインスタンスと列タイプが追加される。列に対応す
るセル1列分が追加されるが列タイプへのリレーション
は生成されない。列の情報が引数。 (3)列の追加(列タイプ情報、セル情報付き) 列のインスタンスと列タイプが追加される。列に対応す
るセル1列分が追加され列タイプへのリレーションを保
持する。列の情報が引数。 (4)列の削除 指定された列を削除する。列を削除するとその列に関連
するセル、列タイプも消える。列キーが引数。 (5)列の変更(セル情報なし) 指定された列を変更する(セル情報なし)。列の情報が
引数。 (6)列単位セル変更 指定された列をセル情報付きで変更する。列と行のイン
スタンス数分だけのセル情報が引数。 (7)行の追加(セル情報付き) 行のインスタンスと関連するセル1行分が追加され、列
タイプのリレーションを保持する。行の情報が引数。 (8)行の追加(セル情報なし) 行のインスタンスと関連するセル1行分が追加される
が、列タイプのリレーションは生成されない。行の情報
が引数。 (9)行の削除 指定された行を削除する。関連するセルも削除される。
行キーが引数。 (10)行の変更(セル情報なし) 指定された行を変更する(セル情報なし)。行の情報が
引数。 (11)セルの変更 指定されたセルの列タイプを変更する。セルの情報が引
数。 (12)行単位セル変更 指定された行をセル情報付きで変更する。行と列のイン
スタンス数分だけのセル情報が引数。 (13)列タイプの追加 列タイプのインスタンスを追加する。列タイプの情報が
引数。 (14)列タイプの削除 指定された列タイプを削除する。セルから参照されてい
る列タイプは削除できない。列タイプの情報が引数。 (15)列タイプの変更 列タイプの情報を更新する。列タイプの情報が引数。 (16)セル検索(セル情報なし) 指定された行、列のセルを返す。セルの列タイプ情報が
引数。 (17)行検索(セル情報なし) 引数である行キーに対応する行の情報を返す。 (18)列検索(セル情報なし) 引数である列キーに対応する列の情報を返す。 (19)行検索(セル情報付き) 指定された行の情報を返す(セルの中に列タイプのリン
クの情報あり)。行キーが引数。 (20)行検索(条件指定) 引数である条件を指定して、複数の行の集合情報(セル
の列タイプ情報含む)を返す。 (21)列タイプ検索(列のキー指定) 列のキーを指定して列タイプリストを返す。 (22)行リスト検索(列セル値指定) 指定された列、セル値に該当する行リストを返す。 マトリックス型データ構造に対する基本操作に対応する
各雛型プログラムには、対象となるプログラム固有の設
定を行うための解決ロジックが埋め込まれている。
【0064】5.階層型データ構造 次に階層型データ構造に係るデータ構造解決ユニット3
について説明する。階層型データ構造は、組織や分類、
集計値などのように、複数のエンティティ(レコードタ
イプ)が一列の階層構造をもっており、階層の概念が固
定的である場合に用いる。最上位以外は、上位のインス
タンスが必ず一つ決まる木構造であることが前提とな
る。インスタンス間で階層に抜けがあってよい。階層の
数に制限は無い。
【0065】階層型データ構造を選択した場合に生成さ
れるプログラムが出力する画面の一例を図25に示す。
データ構造部320には、1段目のデータを表示するト
ップ部2510と、2段目のデータを表示する第2段部
2520と、3段目のデータを表示する第3段部253
0と、...最下層であるN段目のデータを表示するボ
トム部2540とが含まれる。また、操作基本部310
には、1段目にレコードを登録するトップ登録ボタン2
550(階層のレベル(段数)をトップと指定した登録
操作)と、1段目のレコードを更新するトップ更新ボタ
ン2552(階層のレベル(段数)をトップと指定した
更新操作)、1段目のレコードを削除するトップ削除ボ
タン2554(階層のレベル(段数)をトップと指定し
た削除操作)、最下層のレコードを登録するボトム登録
ボタン2556(階層のレベル(段数)をボトムと指定
した登録操作)、最下層のレコードを更新するボトム更
新ボタン2558(階層のレベル(段数)をボトムと指
定した更新操作)、最下層のレコードを削除するボトム
削除ボタン2560(階層のレベル(段数)をボトムと
指定した削除操作)、あるレコードのルートを検索する
ルート検索ボタン2562、あるレコードの子を検索す
る子検索ボタン2564、あるレコードのリーフを検索
するリーフ検索ボタン2566等が関連する。中間の段
階のレコードを操作するボタンも図示していないが存在
する。
【0066】図25のような画面を出力するようなプロ
グラムが使用する本実施の形態における階層型データ構
造は、図26に示すように、キーと属性とを含む最上位
階層のトップ部490と、キーと親のキーと属性とを含
む第2段部492と、キーと親のキーと属性とを含む第
3段部494と、...キーと親のキーと属性とを含む
最下層のボトム部496と、トップ部490から第2段
部492へのリンクと、第2段部492から第3段部4
94へのリンクと、第3段部494から第4段部へのリ
ンクと、...第N−1段部からボトム部496へのリ
ンクとが含まれる。なお、あるレコードの下位のレコー
ドは複数存在する場合がある。また、トップ部490等
の各レコード・タイプには、生成、削除、検索等の処理
を実行する処理部が設けられる。
【0067】さらに、操作基本部310には、以下に示
すような基本操作が含まれる。なお括弧内の文字列はメ
ソッド名である。 (1)ノード検索(findNodeByKey) ノードのキーを指定して、ノードを検索する。 (2)上位ノード検索(findUpperOfNode) ノードのキーを指定して、そのノードの上位ノードを検
索する。いくつ上のノードかは、相対的な位置関係で指
定する。 (3)ルートノード検索(findRootOfNode) ノードのキーを指定して、そのノードのルートノードを
検索する。 (4)下位ノード検索 ノードのキーを指定して、そのノードの下位ノードを検
索する。いくつ下のノードまで検索するかは、相対的な
位置関係で指定する(findLowersOfNode)。そして、検
索されたノードリストから、個数を指定して、ノード情
報を取り出して、返却値を作る(nextNodes)。 (5)リーフノード検索 ノードのキーを指定して、そのノードのリーフノードを
検索する(findLeavesOfNode)。そして、検索されたノ
ードリストから、個数を指定して、ノード情報を取り出
して、返却値を作る(nextNodes)。 (6)ルートに至るノード検索 ノードのキーを指定して、そのノードからルートに至る
までのノードを検索する(findUppersOfNode)。そし
て、検索されたノードリストから、個数を指定して、ノ
ード情報を取り出して、返却値を作る(nextNodes)。 (7)絶対階層ノード検索 ノードのキーを指定して、そのノードにリンクされてい
る、指定した絶対階層に位置するノードを検索する(fi
ndNLevelNodesOfNode)。そして、検索されたノードリ
ストから、個数を指定して、ノード情報を取り出して、
返却値を作る(nextNodes)。 (8)絶対階層ルート検索 絶対階層を指定して、その階層の中でルートになってい
るノードを検索する(findRootsByLevel)。そして、検
索されたノードリストから、個数を指定して、ノード情
報を取り出して、返却値を作る(nextNodes)。 (9)絶対階層リーフ検索 絶対階層を指定して、その階層の中でリーフになってい
るノードを検索する(findLeavesByLevel)。そして、
検索されたノードリストから、個数を指定して、ノード
情報を取り出して、返却値を作る(nextNodes)。 (10)絶対階層全ノード検索 絶対階層を指定して、その階層の中のノードを全て検索
する(findNodesByLevel)。そして、検索されたノード
リストから、個数を指定して、ノード情報を取り出し
て、返却値を作る(nextNodes)。 (11)ノード条件検索 ノードを条件指定で検索する。そして、検索されたノー
ドリストから、個数を指定して、ノード情報を取り出し
て、返却値を作る(nextNodes)。 (12)キー付きでノード生成(createNodeWithKey1) キーを指定して、ノードを新規に生成する。上位ノード
が指定されていれば、その下位ノードになる。返却値は
真偽。 (13)キー付きでノード生成 キーを指定して、ノードを新規に生成する。上位ノード
が指定されていれば、その下位ノードになる(createNo
deWithKey2)。そして、生成したノードリストから、個
数を指定して、ノード情報を取り出して、返却値を作る
(nextNodes)。 (14)キー無しでノード生成 キーを指定しないで、ノードを新規に生成する(create
NodeWithoutKey)。キーは採番サービスから取得する。
上位ノードが指定されていれば、その下位ノードにな
る。そして、生成したノードリストから、個数を指定し
て、ノード情報を取り出して、返却値を作る(nextNode
s)。 (15)ノードの削除(removeNode) キーで指定したノードを削除する。リンクしていた上位
ノードと下位ノードは残り、リンクのみ消える。 (16)ノードを削除してリンク(removeAndLink) キーで指定したノードを削除し、その上位ノードと下位
ノードをリンクする。 (17)ノードを削除してシフト(removeAndShift) キーで指定したノードを削除し、その配下のノードを、
削除したノードと同じ階層の別のノードへ移動する。 (18)ノードを階層ごと削除(removeHierarchy) キーで指定したノードを、その配下のノードごと削除す
る。 (19)ノードをリンクする(linkNodes) キーで指定した二つのノードをリンクする。 (20)ノード間のリンクを切る(unlinkNodes) キーで指定した二つのノードのリンクを切る。 (21)ノード情報の更新 ノードの情報を更新する。返却値は真偽の場合とノード
の情報の場合がある。
【0068】階層型データ構造に対してこのようなデー
タ構造解決ユニット3が用意されており、解決ロジック
解析部7はデータ構造解決ユニット3の解決ロジックを
解析して、例えば図27に示すような解決情報入力画面
11jを作成してユーザに出力する。
【0069】解決情報入力画面11jには、データ構造
解決ユニット3のデータ構造部320に対する解決情報
を入力するためのデータ構造解決部2700乃至272
0と、データ構造解決ユニット3の操作基本部310に
対応する雛型プログラム380に埋め込まれた解決ロジ
ック382に対する解決情報を入力するための操作解決
部2730とが含まれる。
【0070】データ構造解決部2700は、最上位階層
であるトップ部490の解決情報を入力する部分であ
る。ここには、項目名、キーか否か、データの型を入力
するようになっている。すなわち、雛型プログラム38
0にはトップ部490に属性を与えるための解決ロジッ
ク382が含まれている。図27の例では、項目名「事
業部コード」が入力されており、この事業部コードはキ
ーであり且つ整数型のデータであることが入力されてい
る。項目名「事業部名称」が入力されており、この事業
部名称は文字列型のデータであることが入力されてい
る。項目名「事業部長」が入力されており、この事業部
長は文字列型のデータであることが入力されている。
【0071】データ構造解決部2710は、中段部(第
2段部乃至第N−1段部)の解決情報を入力する部分で
ある。ここには、項目名、キーか否か、データの型を入
力するようになっている。すなわち、雛型プログラム3
80には中段部に属性を与えるための解決ロジック38
2が含まれている。図27の例では、項目名「部コー
ド」が入力されており、この部コードはキーであり且つ
整数型のデータであることが入力されている。項目名
「部名称」が入力されており、この部名称は文字列型の
データであることが入力されている。項目名「事業部コ
ード」が入力されており、この事業部コードは整数型の
データであることが入力されている。
【0072】データ構造解決部2720は、最下層であ
るボトム部496の解決情報を入力する部分である。こ
こには、項目名、キーか否か、データの型を入力するよ
うになっている。すなわち、雛型プログラム380には
ボトム部496に属性を与えるための解決ロジック38
2が含まれている。図27の例では、項目名「課コー
ド」が入力されており、この課コードはキーであり且つ
整数型のデータであることが入力されている。項目名
「課名称」が入力されており、この課名称は文字列型の
データであることが入力されている。項目名「部コー
ド」が入力されており、この部コードは整数型のデータ
であることが入力されている。
【0073】操作解決部2730は、データ構造解決ユ
ニット3の操作基本部310に対応する雛型プログラム
350乃至370に埋め込まれた解決ロジック352に
対する解決情報を入力する部分である。まず、操作名を
最初に入力するようにユーザに求める。図27では操作
名は[部署追加]と入力されている。この部署追加に対
応する基本操作を次に選択する。この選択には基本操作
名リストが用いられる。図27では部署追加に対応する
基本操作は[ノード追加]と選択されている。この基本
操作「ノード追加」に対応する雛型プログラムが読み出
され、埋め込まれた解決ロジックに代わって入力される
べき解決情報の入力が求められる。図27では、対象ノ
ード名という項目に対して[部]が入力されている。追
加親情報という項目に対して[ネットワーク事業部]が
入力されている。エラーメッセージという項目に対して
[部コードが重複しています]が入力されている。固有
チェックという項目に対して[地区コードが一致してい
るか?]が入力されている。固有チェックは、チェック
の条件を論理式・算術式で記述可能である。
【0074】また、次の操作名は[課検索]であり、こ
れに対応する基本操作が[ノード検索]であることが示
されている。このような入力処理が、対象となるプログ
ラムの仕様に沿って必要な操作を規定し終えるまで繰り
返される。
【0075】6.ツリー型データ構造の場合 ツリー型データ構造は、分類やディレクトリのように、
上位下位の関係を一つのエンティティで管理している場
合に用いられる。各インスタンス間は上位が一つ決まる
木構造だが、階層の数や概念が固定ではなく、予め決め
られない場合に用いる。
【0076】ツリー型データ構造を選択した場合に生成
されるプログラムが出力する画面の一例を図28に示
す。データ構造部320には、ノードエンティティ情報
2800が含まれる。例えば、ディレクトリ構造の図が
示される。また、操作基本部310には、ノードを登録
するためのノード登録ボタン2810、ノードを更新す
るためのノード更新ボタン2820、ノードを削除する
ためのノード削除ボタン2830、親ノードを変更する
ための親ノード変更ボタン2840、ツリー展開のため
のボタン2850、親ノードを検索するための親ノード
検索ボタン2860、リーフ検索のためのボタン287
0等が含まれる。
【0077】本実施の形態におけるツリー型データ構造
は、図29に示すように、ノード・レコード2900だ
けで構成される。このノード・レコード2900には、
キーと、その上位ノードのキー(最上位の場合には0、
それ以下のノードはN個(Nは0以上の整数))と、属
性が含まれる。なお、ノード・レコードには、生成、削
除、検索等を実行する処理部が設定される。
【0078】また、ツリー型データ構造の操作基本部3
10には、以下に示すような基本操作が含まれる。なお
括弧内の文字列はメソッド名である。 (1)ノード検索(findNodeByKey) ノードのキーを指定して、ノードを検索する。 (2)親ノード検索(findParentOfNode) ノードのキーを指定して、そのノードの親ノードを検索
する。 (3)ルートノード検索(findRootOfNode) ノードのキーを指定して、そのノードのルートノードを
検索する。 (4)子ノード検索 ノードのキーを指定して、そのノードの子ノードを検索
する(findChildrenOfNode)。そして、検索されたノー
ドリストから、1つのノード情報を取り出して、返却値
を作る(nextNode)。又は、検索されたノードリストか
ら、個数を指定して、ノード情報を取り出して、返却値
を作る(nextNodes)。 (5)リーフノード検索 ノードのキーを指定して、そのノードのリーフノードを
検索する(findLeavesOfNode)。検索されたノードリス
トから、1つのノード情報を取り出して、返却値を作る
(nextNode)。又は、検索されたノードリストから、個
数を指定して、ノード情報を取り出して、返却値を作る
(nextNodes)。 (6)ルートに至るノード検索 ノードのキーを指定して、そのノードからルートへ向け
て上位ノードを検索する(findAncestorsOfNode)。い
くつ上のノードまで検索するかは、段数で指定する。そ
して、検索されたノードリストから、1つのノード情報
を取り出して、返却値を作る(nextNode)。又は、検索
されたノードリストから、個数を指定して、ノード情報
を取り出して、返却値を作る(nextNodes)。 (7)リーフに至るノード検索 ノードのキーを指定して、そのノードからリーフへ向け
て下位ノードを検索する(findTreeOfNode)。いくつ下
のノードまで検索するかは、段数で指定する。そして、
検索されたノードリストから、1つのノード情報を取り
出して、返却値を作る(nextNode)。又は、検索された
ノードリストから、個数を指定して、ノード情報を取り
出して、返却値を作る(nextNodes)。 (8)ノード条件検索 ノードを条件指定で検索する。そして、検索されたノー
ドリストから、1つのノード情報を取り出して、返却値
を作る(nextNode)。検索されたノードリストから、個
数を指定して、ノード情報を取り出して、返却値を作る
(nextNodes)。 (9)子ノード個数検索(countChildren) ノードのキーと段数を指定して、その段数までの子ノー
ドの個数を取得する。 (10)キー付きでノード生成(createWithKey1(creat
eNode)) キーを指定して、ルート・リーフノード(親ノードへの
リンクも子ノードへのリンクも持たないノード)を新規
に生成する。返却値は真偽。 (11)キー付きでノード生成(createWithKey2(creat
eNode)) キーを指定して、ルート・リーフノードを新規に生成す
る。返却値は生成したノードの情報。 (12)キー無しでノード生成(createWithoutKey(cre
ateNode)) キーを指定しないで、ルート・リーフノードを新規に生
成する。返却値は生成したノードの情報。キーは採番サ
ービスから取得する。 (13)キー付きでルートノード生成(createRootWith
Key1(createRoot)) キーを指定して、ルートノードを新規に生成する。返却
値は真偽。 (14)キー付きでルートノード生成(createRootWith
Key2(createRoot)) キーを指定して、ルートノードを新規に生成する。返却
値は生成したノードの情報。 (15)キー無しでルートノード生成(createRootWith
outKey(createRoot)) キーを指定しないで、ルートノードを新規に生成する。
返却値は生成したノードの情報。キーは採番サービスか
ら取得する。 (16)キー付きでリーフノード生成(createLeafWith
Key1(createLeaf)) キーを指定して、リーフノードを新規に生成する。返却
値は真偽。 (17)キー付きでリーフノード生成(createLeafWith
Key2(createLeaf)) キーを指定して、リーフノードを新規に生成する。返却
値は生成したノードの情報。 (18)キー無しでリーフノード生成(createLeafWith
outKey(createLeaf)) キーを指定しないで、リーフノードを新規に生成する。
返却値は生成したノードの情報。キーは採番サービスか
ら取得する。 (19)キー付きでツリー生成(createTreeWithKey1) キーを指定して、ツリーを新規に生成する。返却値は真
偽。親ノードが指定されていれば、そのノードのサブツ
リーになる。 (20)キー付きでツリー生成 キーを指定して、ツリーを新規に生成する(createTree
WithKey2)。親ノードが指定されていれば、そのノード
のサブツリーになる。そして、生成されたノードリスト
から、1つのノード情報を取り出して、返却値を作る
(nextNode)。又は、生成したノードリストから、個数
を指定して、ノード情報を取り出して、返却値を作る
(nextNodes)。 (21)キー無しでツリー生成 キーを指定しないで、ツリーを新規に生成する(create
TreeWithoutKey)。キーは採番サービスから取得する。
親ノードが指定されていれば、そのノードのサブツリー
となる。そして、検索されたノードリストから、1つの
ノード情報を取り出して、返却値を作る(nextNode)。
又は、生成したノードリストから、個数を指定して、ノ
ード情報を取り出して、返却値を作る(nextNodes)。 (22)ノードの削除(removeNode) キーで指定したノードを削除する。リンクしていた親ノ
ードと子ノードは残り、リンクのみ消える。 (23)ノードを削除してリンク(removeAndLink) キーで指定したノードを削除し、その親ノードと子ノー
ドをリンクする。 (24)ノードからリーフまで削除(removeTree) キーで指定したノードから、そのノードのリーフノード
まで削除する。 (25)ノードをリンクする(linkNodes) キーで指定した二つのノードをリンクする。 (26)ノード間のリンクを切る(unlinkNodes) キーで指定した二つのノードのリンクを切る。 (27)親ノードを変更する(changeLink) キーで指定したノードとその親ノードとのリンクを変更
する。 (28)ノード情報の更新 ノードの情報を更新する。返却値は真偽の場合と、返却
値はノードの情報の場合がある。
【0079】ツリー型データ構造に対してこのようなデ
ータ構造解決ユニット3が用意されており、解決ロジッ
ク解析部7はデータ構造解決ユニット3の解決ロジック
を解析して、例えば図30に示すような解決情報入力画
面11Kを作成してユーザに出力する。
【0080】解決情報入力画面11Kには、データ構造
解決ユニット3のデータ構造部320に対する解決情報
を入力するためのデータ構造解決部3000と、データ
構造解決ユニット3の操作基本部310に対応する雛型
プログラム380に埋め込まれた解決ロジック382に
対する解決情報を入力するための操作解決部3010と
が含まれる。
【0081】データ構造解決部3000は、ノード・レ
コード2900の解決情報を入力する部分である。ここ
には、項目名、キーか否か、データの型を入力するよう
になっている。すなわち、雛型プログラム380にはノ
ード・レコード2900に属性を与えるための解決ロジ
ック382が含まれている。図30の例では、項目名
「職制コード」が入力されており、この職制コードはキ
ーであり且つ整数型のデータであることが入力されてい
る。項目名「職制名称」が入力されており、この職制名
称は文字列型のデータであることが入力されている。項
目名「上位職制コード」が入力されており、この上位職
制コードは整数型のデータであることが入力されてい
る。
【0082】操作解決部3010は、データ構造解決ユ
ニット3の操作基本部310に対応する雛型プログラム
350乃至370に埋め込まれた解決ロジック352に
対する解決情報を入力する部分である。まず、操作名を
最初に入力するようにユーザに求める。図30では操作
名は[職制変更]と入力されている。この職制変更に対
応する基本操作を次に選択する。この選択には基本操作
名リストが用いられる。図30では職制変更に対応する
基本操作は[ノード変更]と選択されている。この基本
操作「ノード変更」に対応する雛型プログラムが読み出
され、埋め込まれた解決ロジックに代わって入力される
べき解決情報の入力が求められる。図30では、対象ノ
ード名という項目に対して[部]が入力されている。追
加親情報という項目に対して[ネットワーク事業部]が
入力されている。エラーメッセージという項目に対して
[職制コードが重複しています]が入力されている。固
有チェックという項目に対して[部員が存在しているか
?]が入力されている。固有チェックは、チェックの条
件を論理式・算術式で記述可能である。
【0083】また、次の操作名は[職制検索]であり、
これに対応する基本操作が[ノード検索]であることが
示されている。このような入力処理が、対象となるプロ
グラムの仕様に沿って必要な操作を規定し終えるまで繰
り返される。
【0084】7.明細主導伝票型データ構造の場合 明細主導伝票型データ構造は、伝票型業務だが、ヘッダ
単位ではなく、明細単位の情報が中心になる場合に用い
られる。業務の推移は、新しく伝票を起こすのではな
く、明細を束ねる単位を変えて新しいヘッダを付けてい
くことで行う。明細の実体はそのままで業務が流れてい
く。状態変化を握るのはヘッダではなく明細で、状態の
変化の結果ヘッダが変わることがある。
【0085】例えば、図31(d)のような明細番号1
001乃至1004という取引明細が存在する場合に、
これに対して売掛番号101の売掛伝票(図31
(a))が生成される。そして、明細番号1001乃至
1003についてA商店にて検収されると、請求番号2
01の請求伝票(図31(b))が生成される。そし
て、明細番号1001乃至1003についての請求伝票
に対する振込みが確認されると、入金番号301の入金
伝票(図31(c))が生成される。明細番号1001
乃至1003までが請求処理に回されても、売掛伝票の
見え方は変化せず、売掛伝票の明細は、明細番号100
1乃至1004までである。このように、取引明細は変
化せず、新たなヘッダとなる売掛伝票、請求伝票、入金
伝票が取引明細に関連して付加されていく。このような
業務に対して明細主導伝票型データ構造が有用である。
【0086】次に、明細伝票型データ構造を選択した場
合に生成されるプログラムが出力する画面の一例を図3
2に示す。データ構造部320には、ヘッダ部1(例え
ば売掛伝票)のデータ表示部3200と、ヘッダ部2
(例えば請求伝票)のデータ表示部3210
と、....ヘッダ部N(例えば入金伝票)のデータ表
示部3220と、明細部(例えば取引明細)のデータ表
示部3230とが関連する。また、操作基本部310に
は、ヘッダ1登録のためのボタン3240、ヘッダ1明
細追加のためのボタン3250、ヘッダ1をヘッダ2へ
切り換えるためのボタン3260、明細更新のためのボ
タン3270等が関連する。
【0087】図32のような画面を出力するようなプロ
グラムが使用する本実施の形態における明細主導伝票型
データ構造には、図33に示すように、ヘッダ部1(3
300)と、ヘッダ部2(3310)と、ヘッダ部3
(3320)と、...明細部3330と、ヘッダ部1
(3300)と明細部3330とのリンクと、ヘッダ部
2(3310)と明細部3330とのリンクと、ヘッダ
部3(3320)と明細部3330とのリンクとが含ま
れる。なお、ヘッダ部1(3300)には、キー1と属
性とが含まれる。ヘッダ部2(3310)には、キー2
と属性とが含まれる。ヘッダ部3(3320)には、キ
ー3と属性とが含まれる。明細部3330には、明細部
3330のキーと、ヘッダ部1(3300)のキー1
と、ヘッダ部2(3310)のキー2と、ヘッダ部3
(3320)のキー3と、属性とが含まれる。なお、こ
こでは3つヘッダが存在する例を示したが、ヘッダの数
は任意である。
【0088】また、ヘッダ部1(3300)、ヘッダ部
2(3310)、及びヘッダ部3(3320)の各々に
は、生成、削除、キー検索及び全件検索を実行する処理
部が設けられる。明細部3330には、生成、削除及び
キー検索等を実行する処理部が設けられる。
【0089】さらに、明細主導伝票型データ構造の操作
基本部310には、以下に示すような基本操作が含まれ
る。なお括弧内の文字列はメソッド名である。 (1)伝票検索(findSlipByHeaderKey) 指定したヘッダのキーを持つ伝票を検索する。 (2)明細1件検索(findDetailByKey) 指定したヘッダのキーを持つ伝票の明細を行番号を指定
して1件検索する。 (3)明細状態検索 指定した状態をもつ明細を検索する(findDetailByStat
e)。そして、検索後に1件分の明細情報を取得する(N
extDetail)。 (4)ヘッダ種指定ヘッダ検索(findOldHeaderByKin
d) 明細と伝票ヘッダ種を指定してヘッダを検索する。 (5)ヘッダ種指定伝票検索(findOldSlipByKind) 明細と伝票ヘッダ種を指定して伝票を検索する。 (6)条件による伝票検索 伝票を条件指定で検索する。そして、条件検索後に伝票
1件分の全情報を取得する(nextSlip)。 (7)キーつき伝票新規作成(createSlipWithKey1) キーを設定して伝票を新規作成し、結果を真偽で返す。 (8)キーつき伝票新規作成 キーを設定して伝票を新規作成する(createSlipWithKe
y2)。そして、生成した伝票の情報を返す。 (9)キーなし伝票新規作成 キーを設定せずに伝票を新規作成する(createSlipWith
outKey)。そして、生成した伝票の情報を返す。 (10)明細追加(insertDetails1) 既存の伝票に明細を複数件追加し、結果を真偽で返す。 (11)明細追加 既存の伝票に明細を複数件追加する(insertDetails
2)。追加した伝票の情報を返す。 (12)伝票ヘッダ種変更(changeHeaderWithKey) 明細の状態を指定された状態に更新し、キーと伝票ヘッ
ダ種で指定されたヘッダに変更する。指定された伝票種
のヘッダが存在しない場合には、ヘッダを新規に生成す
る。 (13)伝票ヘッダ種変更(changeHeaderWithoutKey) 明細の状態を指定された状態に更新し、指定された伝票
ヘッダ種のヘッダを新規に作成し、ヘッダを変更する。 (14)明細状態変更(changeState) 明細の状態を指定された状態に変更する。明細状態クラ
スに設定された遷移可能先、削除許可フラグのチェック
を行なう。 (15)明細削除(removeDetail) 明細を1件削除する。 (16)伝票削除(removeSlip) 伝票を削除する。 (17)ヘッダ更新 キーで指定したヘッダの内容を更新し、結果を真偽で返
す。 (18)ヘッダ更新 キーで指定したヘッダの内容を更新し、更新したヘッダ
の内容を返す。 (19)明細更新 キーで指定した伝票の明細の内容を更新し、結果を真偽
で返す。 (20)明細更新 キーで指定した伝票の明細の内容を更新し、更新した伝
票の内容を返す。
【0090】明細主導伝票型データ構造に対してこのよ
うなデータ構造解決ユニット3が用意されており、解決
ロジック解析部7はデータ構造解決ユニット3の解決ロ
ジックを解析して、例えば図34に示すような解決情報
入力画面11lを作成してユーザに出力する。
【0091】解決情報入力画面11lには、データ構造
解決ユニット3のデータ構造部320に対する解決情報
を入力するためのデータ構造解決部3400乃至342
0と、データ構造解決ユニット3の操作基本部310に
対応する雛型プログラム380に埋め込まれた解決ロジ
ック382に対する解決情報を入力するための操作解決
部3430とが含まれる。
【0092】データ構造解決部3400は、ヘッダ部1
(3300)の解決情報を入力する部分である。ここに
は、項目名、キーか否か、データの型を入力するように
なっている。すなわち、雛型プログラム380にはヘッ
ダ部1(3300)に属性を与えるための解決ロジック
382が含まれている。図34の例では、項目名「売掛
番号」が入力されており、この売掛番号はキーであり且
つ整数型のデータであることが入力されている。項目名
「受注日」が入力されており、この受注日は文字列型の
データであることが入力されている。項目名「顧客名」
が入力されており、この顧客名は文字列型のデータであ
ることが入力されている。また、項目名「合計額」が入
力されており、この合計額は整数型のデータであること
が入力されている。
【0093】データ構造解決部3410は、ヘッダ部2
(3310)の解決情報を入力する部分である。ここに
は、項目名、キーか否か、データの型を入力するように
なっている。すなわち、雛型プログラム380にはヘッ
ダ部2(3310)に属性を与えるための解決ロジック
382が含まれている。図34の例では、項目名「請求
番号」が入力されており、この請求番号はキーであり且
つ整数型のデータであることが入力されている。項目名
「請求日付」が入力されており、この請求日付は文字列
型のデータであることが入力されている。項目名「請求
先」が入力されており、この請求先は文字列型のデータ
であることが入力されている。項目名「合計額」が入力
されており、この合計額は整数型のデータであることが
入力されている。
【0094】データ構造解決部3420は、明細部33
30の解決情報を入力する部分である。ここには、項目
名、キーか否か、データの型を入力するようになってい
る。すなわち、雛型プログラム380には明細部333
0に属性を与えるための解決ロジック382が含まれて
いる。図34の例では、項目名「取引番号」が入力され
ており、この取引番号はキーであり且つ整数型のデータ
であることが入力されている。項目名「商品」が入力さ
れており、この商品は文字列型のデータであることが入
力されている。項目名「数量」が入力されており、この
数量は整数型のデータであることが入力されている。項
目名「単価」が入力されており、この単価は整数型のデ
ータであることが入力されている。
【0095】操作解決部3430は、データ構造解決ユ
ニット3の操作基本部310に対応する雛型プログラム
350乃至370に埋め込まれた解決ロジック352に
対する解決情報を入力する部分である。まず、操作名を
最初に入力するようにユーザに求める。図34では操作
名は[売掛伝票登録]と入力されている。この売掛伝票
登録に対応する基本操作を次に選択する。この選択には
基本操作名リストが用いられる。図34では売掛伝票登
録に対応する基本操作は[伝票登録]と選択されてい
る。この基本操作「伝票登録」に対応する雛型プログラ
ムが読み出され、埋め込まれた解決ロジックに代わって
入力されるべき解決情報の入力が求められる。図34で
は、対象ヘッダ名という項目に対して[売掛]が入力さ
れている。追加親情報という項目に対して[顧客名]が
入力されている。エラーメッセージという項目に対して
[取扱商品がありません]が入力されている。固有チェ
ックという項目に対して[その顧客の限度額を超えてい
ないか?]が入力されている。固有チェックは、チェッ
クの条件を論理式・算術式で記述可能である。このよう
に、基本操作に対応する本雛型プログラムには、ヘッダ
・レコードの状態を操作との関連で定義するための解決
ロジックと、プログラムの仕様に従った設定をレコード
の属性、レコードの状態、若しくはレコードの属性及び
状態の組合せで記述するための解決ロジックが埋め込ま
れている。
【0096】また、次の操作名は[請求発行]であり、
これに対応する基本操作が[ヘッダ切替]であることが
示されている。このような入力処理が、対象となるプロ
グラムの仕様に沿って必要な操作を規定し終えるまで繰
り返される。
【0097】8.構成型データ構造の場合 構成型データ構造は、部品表のように、構成するものと
構成されるものを一つのエンティティで取り扱い、その
n対mの関連(構成情報)を管理するような場合に用い
られる。1対nの場合にはツリー型データ構造を用い
る。
【0098】例えば図35に示すように、LX277A
AAという型番について、同一型番の中で版(バージョ
ン)が存在する。ここでは、LX277AAA−010
(日付:12/10、互換フラグ:OK、代替グループ
ID:−−−)という版と、LX277AAA−020
(日付:12/11、互換フラグ:OK、代替グループ
ID:−−−)という版とが存在している。この3つの
版は同一型番ということができる。さらに、各版に対し
て部品が定義できる。図35ではLX277AAA−0
10という版に対して、XXX−010(12/10
版)が5つと、YYY−010(10/10版)と、Z
ZZ−030(12/10版)とが含まれる。この版と
部品の間を結ぶリンクが「構成」と呼ばれる。なお、部
品についても版が存在する場合もある。その際、その版
が基本となる版(基本型番)に対して互換性があるか否
かが互換性フラグで表される。「OK」は互換性がある
ことを示している。代替グループIDは、代替部品が存
在する場合には、その代替部品のグループのIDであ
る。
【0099】図35のような状態を表すための構成型デ
ータ構造は、図36に示すように、型番(ノード)部3
600と、型番版数(ノード版数)部3610と、構成
部3620と、型番部3600と型番版数部3610と
のリンクと、型番版数3610と構成部3620とのリ
ンクとが含まれる。型番部3600には、キーである型
番と、属性である型番情報とが含まれる。型番版数部3
610には、キーである型番及び日付と、属性である代
替グループID、互換フラグ及び部品情報とが含まれ
る。また、構成部3620には、キーである上位ノード
及び下位ノードと、属性である構成情報、上限個数及び
下限個数とが含まれる。型番部3600に対して型番版
数部3610はN個(Nは0以上の整数)存在する。1
つの型番版数3610について、基本型番である型番部
3600は存在することもあるし、存在しない場合もあ
る。型番版数3610に対して構成部3620は、M個
(Mは0以上の整数)存在する。但し、上位の型番版数
3610は存在する場合もあれば存在しない場合もあ
る。同様に、下位の型番版数3610は存在する場合も
あれば存在しない場合もある。なお、構成型データ構造
のデータ構造部320に対応する雛型プログラム380
には、型番部3600と、型番版数部3610と、構成
部3620とに属性を与えるための解決ロジック382
が含まれる。
【0100】また、構成型データ構造の操作基本部31
0には、以下に示すような基本操作が含まれる。なお括
弧内の文字列はメソッド名である。 (1)ノード版数検索(findNodeRevisionByKey) プライマリキーによるノード版数1件検索。 (2)ノード版数複数件検索 指定されたノード版数と同じノードを参照するノード版
数を検索する(findNodeRevisionsByNode)。そして、
検索結果リストからメッセージリストを取り出す(next
NodeRevision)。 (3)交換可能ノード版数複数件検索 指定したノードと交換可能なノード版数を検索する(fi
ndReplaceableNodeRevisionsByNode)。そして、検索結
果リストからメッセージリストを取り出す(nextNodeRe
vision)。 (4)交換可能チェック(isNodeRevisionReplaceabl
e) ノード版数が交換可能かをチェックする。 (5)基本版数検索(findBaseNodeRevisionByNode) ノードのキーにより基本版数を検索する。 (6)基本ノード版数検索(findBaseNodeRevisionByNo
deRevision) ノード版数により基本ノード版数を検索する。 (7)代替可能ノード版数の複数件検索 代替可能ノード版数の複数件検索(findSubstituteRevi
sionsByNodeRevision)。そして、検索結果リストから
メッセージリストを取り出す(nextNodeRevision)。 (8)代替可能確認 指定ノード版数が、他のノード版数と代替可能かどうか
を確認する。 (9)最新ノード版数の一件検索(findLatestRevision
ByNodeKey) 最新ノード版数の一件検索。 (10)構成情報のキーによる一件検索(findComposit
ionByKey) 構成情報のキーによる一件検索。 (11)上位ノード版数による構成検索 上位ノード版数による構成検索(findCompositionsByUp
prNodeRevision)。そして、検索結果リストからメッセ
ージリストを取り出す(nextComposition)。 (12)指定ノード版数情報による下位ノード版数複数
件検索 指定ノード版数情報による下位ノード版数複数件検索
(findLowersOfNodeRevision)。そして、検索結果リス
トからメッセージリストを取り出す(nextNodeRevisio
n)。 (13)構成情報の下位ノードキーによる複数件検索 構成情報を下位ノードキーにより検索する(FindCompos
itionsByLowerNodeRevision)。そして、検索結果リス
トからメッセージリストを取り出す(nextCompositio
n)。 (14)指定ノード版数情報による上位ノード複数件検
索 指定されたノード版数情報により上位ノードを検索する
(FindUppersOfNodeRevision)。そして、検索結果リス
トからメッセージリストを取り出す(nextNodeRevisio
n)。 (15)ルートノード版数検索 指定ノード版数を基点に全ルートノード版数を検索(fi
ndRootsOfNodeRevision)。そして、検索結果リストか
らメッセージリストを取り出す(nextNodeRevision)。 (16)リーフノード版数検索 指定ノード版数を基点に全リーフノード版数を検索する
(findLeavesOfNodeRevision)。そして、検索結果リス
トからメッセージリストを取り出す(nextNodeRevisio
n)。 (17)上方ノード版数展開(expandNodeRevisionUppe
r) 指定ノード版数を起点に展開レベル階層分の上方ノード
版数展開を行う。 (18)下方ノード版数展開(expandNodeRevisionLowe
r) 指定ノード版数を起点に展開レベル階層分の下方ノード
版数展開を行う。 (19)上方構成情報展開(expandCompositionUpper) 指定ノード版数を起点に展開レベル階層分の上方構成情
報展開を行う。 (20)下方構成情報展開(expandCompositionLower) 指定ノード版数を起点に展開レベル階層分の下方構成情
報展開を行う。 (21)指定ノード版数が指定構成情報の上位に存在す
るかをチェック(isNodeRevisionInCompositionUpper) 指定ノード版数が指定構成情報の上位に存在するかをチ
ェックする。 (22)あるノード版数が、指定したノード版数の上位
に存在するかチェック(isNodeRevisionInRevisionUppe
r) あるノード版数が、指定したノード版数の上位に存在す
るかチェックする。 (23)指定ノード版数が指定構成情報の下位に存在す
るかをチェック(isNodeRevisionInCompositionLower) 指定ノード版数が指定構成情報の下位に存在するかをチ
ェックする。 (24)あるノード版数が、指定したノード版数の下位
に存在するかチェック(isNodeRevisionInRevisionLowe
r) あるノード版数が、指定したノード版数の下位に存在す
るかチェックする。 (25)ノード版数登録(キーあり)(createNodeRevi
sionWithKey1) ノード版数の登録キーあり。エラーの有無を通知する。
キーを指定してノード版数を新規登録する。 (26)ノード版数登録(キーあり)(登録ノード版数
を表示)(createNodeRevisionWithKey2) ノード版数の登録 キーあり。登録したノード版数の内
容を表示する。キーを指定してノード版数を新規登録す
る。 (27)ノード版数登録(キーなし)(createNodeRevi
sionWithoutKey) ノード版数の登録キーなし。採番機能で得たキーを用い
て、ノード版数を新規登録する。 (28)構成の登録(返却値は真偽)(createComposit
ion1) 上位ノード版数、下位ノード版数を指定して構成を登録
する。 (29)構成の登録(返却値はノード版数情報)(crea
teComposition2) 上位ノード版数、下位ノード版数を指定して構成を登録
する。 (30)2つのノード版数に対する構成情報の登録(li
nkNodeRevision) 指定した2つのノード版数に対する構成情報を作成す
る。 (31)基本ノード版数及び交換可能版数設定(establ
ishBaseNodeRevision) 基本ノード版数及び交換可能版数の設定。 (32)基本ノード版数及び交換可能版数の解除(rele
aseBaseNodeRevision) 基本ノード版数及び交換可能版数の解除。 (33)交換可能設定(establishReplaceableNodeRevi
sion) 指定ノード版数を交換可能に設定する。 (34)交換可能状態解除(releaseReplaceableNodeRe
vision) 指定ノード版数の交換可能状態を解除する。 (35)ノード版数の更新(返却値は真偽) ノード版数の更新。返却値はノード版数情報の場合と、
真偽の場合とがある。 (36)構成情報の下位ノード版数変更 指定構成情報の下位側ノード版数を指定されたノード版
数に変更する。 (37)ノード版数一件削除(removeNodeRevision) ノード版数一件削除。 (38)構成情報一件削除(removeComposition) 構成情報一件削除。 このような構成型データ構造に対する基本操作に対応す
る各雛型プログラムには、対象となるプログラム固有の
設定を行うための解決ロジックが埋め込まれている。
【0101】9.座席予約型データ構造 座席予約型データ構造は、列車や飛行機の予約や、コン
サートのチケットなど、資源とその利用機会に対する予
約を管理するために用いられる。図37に飛行機の例を
示す。図37の各行は、飛行機の各機種座席を表すもの
であり、「747−1A」「747−1B」...は機
種名及び座席記号である。座席は資源ということもでき
る。一方、各列は便を表したものであり、「10/1
C14」「10/1 C15」...は日にち及び便名
である。便は機会ということもできる。各座席と各便の
組合せは、オカーレンスと呼ばれるが、実際は存在しな
いものもある。図37で×印は、実際は存在しない席を
表す。また、黒バーは予約の入った座席を表し、黒バー
を囲む矩形は予約を表す。空席は、点線で表される。通
常、予約については、往復予約等のため便をまたぐ座席
予約も可能である。
【0102】このような業務を取り扱うために、図38
のような座席予約型データ構造を用いる。座席予約型デ
ータ構造は、機会を表す便部3800と、資源のグルー
プを表す機種部3810と、資源を表す機種座席部38
20と、オカーレンスを表す座席部3830と、予約を
表す予約部3840と、便部3800と機種部3810
とのリンクと、機種部3810と機種座席部3820と
のリンクと、便部3800と座席部3830とのリンク
と、機種座席部3820と座席部3830とのリンク
と、座席部3830と予約部3840とのリンクとが含
まれる。機種部38101つに対して便部3800はN
個(Nは0以上の整数)存在する。また、機種部381
01つに対して機種座席部3820はM個(Mは0以上
の整数)存在する。便部38001つに対して、座席部
3830はK個(Kは0以上の整数)存在し、予約部3
8401つに対して座席部3830はL個(Lは0以上
の整数)存在する。
【0103】便部3800には、キーである出発日及び
便名と、属性である出発地、到着地、予定機種コード、
スーパーシート空席数、エコノミー前方窓側空席数、エ
コノミー前方通路側空席数、エコノミー後方窓側空席
数、エコノミー後方通路側空席数及び特割残席数が含ま
れる。また、機種部3810には、キーである機種コー
ド、属性である機種名、搭乗定員、航続距離、巡航速度
及び飛行高度が含まれる。機種座席部3820には、キ
ーである機種コード及び座席番号と、属性であるスーパ
ーシートとエコノミーの別、窓側と通路側の別、前方と
後方の別、及び喫煙と禁煙の別とが含まれる。座席部3
830には、キーである出発日、便名及び座席番号と、
属性である予約番号、搭乗お客様番号、搭乗者氏名、年
齢性別、予約日時、発券日時、及び搭乗時刻が含まれ
る。なお、機種コードを含むようにしてもよい。予約部
3840には、キーである予約番号、属性である予約お
客様番号、予約者指名、代理店コード及び予約日時が含
まれる。
【0104】一般的に座席予約型データ構造には、図3
9に示されるように、キーである機会キーと属性である
資源グループ・キーとを含む機会部3900と、キーで
ある資源グループ・キーを含む資源グループ部3910
と、キーである資源キーと属性である資源グループ・キ
ーとを含む資源部3920と、キーである機会キー及び
資源キーと属性である予約キーとを含むオカーレンス部
3930と、キーである予約キーを含む予約部3940
とが含まれる。
【0105】機会部3900と資源グループ部3910
とはリンクしており、1つの資源グループ部3910に
対して機会部3900はN個(Nは0以上の整数)存在
する。資源グループ部3910と資源部3920とはリ
ンクしており、1つの資源グループ部3910に対して
資源部3920はM個(Mは0以上の整数)存在する。
資源部3920とオカーレンス部3930とはリンクし
ており、1つの資源部3920に対してオカーレンス部
3930はK個(Kは0以上の整数)存在する。オカー
レンス部3930と予約部3940とはリンクしてお
り、1つの予約部3940に対してオカーレンス部39
30はL個(Lは0以上の整数)存在する。
【0106】このように、座席予約型データ構造のデー
タ構造部320に対する雛型プログラム380には、図
39に示されるようなデータ構造を図38に示されるよ
うなデータ構造にするような属性を与えるための解決ロ
ジックが含まれる。また、機会部3900、資源グルー
プ部3910及び予約部3940の各々には、生成、削
除、キー検索及び条件検索を実行する処理部が設けられ
ている。さらに、オカーレンス部3930には、生成、
削除及びキー検索を実行する処理部が設けられている。
さらに、資源部3920には、キー検索及び条件検索を
実行する処理部が設けられている。
【0107】また、座席予約型データ構造の操作基本部
310には、以下に示すような基本操作が含まれる。な
お括弧内の文字列はメソッド名である。 (1)予約新規作成(キーあり)(返却値は真偽)(cr
eateSeatReservationWithKey1) 入力情報に従い、予約とオカーレンスを創成する。 (2)予約登録(キーあり)(返却値は情報) 入力情報に従い、予約とオカーレンスを創成する(crea
teSeatReservationWithKey2)。そして、創生した予約
エンティティの情報を返す。 (3)予約登録(キーなし)(返却値は情報) 入力情報に従い、予約とオカーレンスを創成する(crea
teSeatReservationWithoutKey)。プライマリキーは採
番クラスから取得して使用する。そして、創生した予約
エンティティの情報を返す。 (4)予約取消(cancelSeatReservation) 入力情報である予約キーの予約を削除し、関連するオカ
ーレンスを削除する。 (5)予約更新 入力情報に従い、予約を更新する(返却値は真偽)。 (6)予約更新 入力情報に従い、予約を更新する(返却値は情報)。 (7)予約キー検索(findSeatReservationByKey) 指定された予約キーの予約を取得し、その情報を出力用
メッセージキャリアに格納する。 (8)オカーレンス指定予約検索(findSeatReservatio
nByOccurrence) 指定されたオカーレンスキーで予約を取得し、その情報
を出力用メッセージキャリアに格納する。 (9)機会指定予約検索 指定された機会キーで予約を検索し、存在するかどうか
を返す(findSeatReservationByOccasion)。又は、複
数の予約を含む検索結果を指定されたメッセージキャリ
アに格納して返す(nextSeatReservation)。 (10)資源指定予約検索 指定された資源キーで予約を検索し、存在するかどうか
を返す(findSeatReservationByResource)。又は、複
数の予約を含む検索結果を指定されたメッセージキャリ
アに格納して返す(nextSeatReservation)。 (11)予約条件検索 指定された条件で予約を検索し、存在するかどうかを返
す。又は、複数の予約を含む検索結果を指定されたメッ
セージキャリアに格納して返す(nextSeatReservatio
n)。 (12)予約へのオカーレンス追加(キーあり)(返却
値は真偽)(createOccurrence1) 入力情報に従い、予約に対するオカーレンスを追加す
る。 (13)予約へのオカーレンス追加(キーあり)(返却
値は情報) 入力情報に従い、予約に対するオカーレンスを追加する
(createOccurrence2)。又、創生したオカーレンスエ
ンティティの情報を返す。 (14)オカーレンス削除(removeOccurrence) 入力情報に従い、予約に対するオカーレンスを削除す
る。 (15)オカーレンス更新 入力情報に従い、オカーレンスを更新する(返却値は真
偽)。 (16)オカーレンス更新 入力情報に従い、オカーレンスを更新する(返却値は情
報)。 (17)オカーレンスキー検索(findOccurrenceByKe
y) 指定されたオカーレンスキーのオカーレンスを取得し、
指定されたメッセージキャリアに格納する。 (18)空き状況確認(isVacant) 指定された資源キーと機会キーに対応するオカーレンス
が存在するか確認する(返却値は真偽)。 (19)予約機会変更(changeReservedOccasion) 指定された予約キーで予約を取得し、その予約の機会を
入力情報で指定された機会に変更する(返却値は真
偽)。 (20)予約資源変更(changeReservedResource) 指定された予約キーで予約を取得し、その予約の資源を
入力情報で指定された資源に変更する(返却値は真
偽)。 (21)予約済オカーレンス件数検索 指定された予約キーでオカーレンスを検索し、件数を返
す。 (22)予約指定予約済オカーレンス検索 指定された予約キーでオカーレンスを検索し、存在する
かどうかを返す(findOccurrenceBySeatReservatio
n)。又は、複数のオカーレンスを含む検索結果を指定
されたメッセージキャリアに格納して返す(nextOccurr
ence)。 (23)機会指定予約済オカーレンス検索 指定された機会キーでオカーレンスを検索し、存在する
かどうかを返す(findOccurrenceByOccasion)。又は、
複数のオカーレンスを含む検索結果を指定されたメッセ
ージキャリアに格納して返す(nextOccurrence)。
【0108】(24)資源指定予約済オカーレンス検索 指定された資源キーでオカーレンスを検索し、存在する
かどうかを返す(findOccurrenceByResource)。又は、
複数のオカーレンスを含む検索結果を指定されたメッセ
ージキャリアに格納して返す(nextOccurrence)。 (25)オカーレンス条件検索 指定された条件でオカーレンスを検索し、存在するかど
うかを返す。又は、複数のオカーレンスを含む検索結果
を指定されたメッセージキャリアに格納して返す(next
Occurrence)。 (26)機会追加(キーあり)(返却値は真偽)(crea
teOccasionWithKey1) 入力情報に従い、機会を追加する。 (27)機会追加(キーなし)(返却値は情報) 入力情報に従い、機会を追加する(createOccasionWith
outKey)。プライマリキーは採番クラスから取得して使
用する。そして、創生した機会エンティティの情報を返
す。 (28)機会削除(removeOccasion) 入力情報の機会キーの機会を削除する。機会に関連する
予約済みオカーレンスが存在する場合は削除できない。 (29)機会更新 入力情報に従い、機会を更新する(返却値は真偽)。 (30)機会キー検索(findOccasionByKey) 指定された機会キーの機会を取得し、指定されたメッセ
ージキャリアに格納する。 (31)機会条件検索 指定された条件で機会を取得し、指定されたメッセージ
キャリアに格納する。又は、複数の機会を含む検索結果
を指定されたメッセージキャリアに格納して返す(next
Occasion)。 (32)資源グループ指定機会検索 指定された資源グループキーで機会を検索し、存在する
かどうかを返す。又は、複数の機会を含む検索結果を指
定されたメッセージキャリアに格納して返す(nextOcca
sion)。 (33)資源指定機会検索 指定された資源キーで機会を検索し、存在するかどうか
を返す(findOccasionByResource)。又は複数の機会を
含む検索結果を指定されたメッセージキャリアに格納し
て返す(nextOccasion)。 (34)資源指定空き機会検索 指定された資源キーで空き機会を検索し、存在するかど
うかを返す(findVacantOccasionByResource)。又は、
複数の機会を含む検索結果を指定されたメッセージキャ
リアに格納して返す(nextOccasion)。 (35)空き機会条件検索 指定された条件で空き機会を検索し、存在するかどうか
を返す。又は、複数の機会を含む検索結果を指定された
メッセージキャリアに格納して返す(nextOccasion)。 (36)資源キー検索(findOccasionByKey) 指定された資源キーの資源を取得し、指定されたメッセ
ージキャリアに格納する。 (37)資源条件検索 指定された条件で資源を検索し、存在するかどうかを返
す。又は、複数の資源を含む検索結果を指定されたメッ
セージキャリアに格納して返す(nextResource)。 (38)機会指定資源検索 指定された機会キーで資源を検索し、存在するかどうか
を返す。又は、複数の資源を含む検索結果を指定された
メッセージキャリアに格納して返す(nextResource)。 (39)資源グループ指定資源検索 指定された資源グループキーで資源を検索し、存在する
かどうかを返す。複数の資源を含む検索結果を指定され
たメッセージキャリアに格納して返す(nextResourc
e)。 (40)機会指定空き資源検索 指定された機会キーで空き資源を検索し、存在するかど
うかを返す(findVacantResourceByOccasion)。又は、
複数の資源を含む検索結果を指定されたメッセージキャ
リアに格納して返す(nextResource)。 (41)資源グループ追加(キーあり、返却値は真偽) 入力情報に従って資源グループを追加する(返却値は真
偽)。 (42)資源グループ削除 指定された資源グループキーの資源グループを削除(物
理削除)する。 (43)資源グループ更新 入力情報に従い、資源グループを更新する(返却値は真
偽)。 (44)資源グループキー検索 指定された資源グループキーの資源グループを取得し、
情報を出力用メッセージキャリアに格納する。 (45)資源グループ条件検索 指定された条件に合う資源グループを検索し、存在する
かどうかを返す。又は、複数の資源グループを含む検索
結果を指定されたメッセージキャリアに格納して返す
(nextResourceGroup)。このような座席予約型データ
構造に対する基本操作に対応する各雛型プログラムに
は、対象となるプログラム固有の設定を行うための解決
ロジックが埋め込まれている。
【0109】10.系図型データ構造の場合 系図型データ構造は、職制変更で起きる組織の統廃合な
どのように、作成、廃止、統合などに伴う責任範囲の引
き継ぎ先や引き継ぎ元の情報を管理するために用いられ
る。
【0110】図40を用いて系図型データ構造の適用可
能例を示す。図40の例では、(1)という組織が新規
に作成され、その後(4)という組織が(1)から分割
して作成された。(4)にとって(1)は相続元であ
る。また、(2)という組織が新規に作成され、(1)
は(2)に吸収されて消滅した。よって、(2)は
(1)の相続先である。一方、(3)という組織は新規
に作成され、相続先がなく消滅した。このように、
(1)乃至(4)のような系ノードのインスタンスは、
自身の相続元と相続先へのリンクをそれぞれ1つずつ持
つことができる。また、相続元を持たないインスタンス
は、それ自身が起源となる。さらに、相続先を持たない
インスタンスは実世界上存在していることを示し、相続
先を持っているインスタンスは実世界上消滅しているこ
とを示している。
【0111】同じ相続元を持つインスタンスが複数存在
する場合はあっても、相続元から見ると相続先は一つで
ある。また、第1のインスタンスの相続先である第2の
インスタンスは、必ずしも第1のインスタンスが相続元
であるというデータを有していない場合もある。第2の
インスタンスが他のインスタンスから相続し、且つ第1
のインスタンスが勝手に相続先であると指定する場合で
ある。
【0112】このような性質を実現するための系図型デ
ータ構造は、図41に示すように、系ノード部4100
を含む。系ノード部4100には、キーである系ノード
と、属性である相続元系ノードキー、相続先系ノードキ
ー、発生日、消滅日、及び属性1乃至nが含まれる。同
じ相続元を持つインスタンスが複数存在する場合でも、
その相続元から見た相続先は1つだけである。また、あ
るインスタンスが持つ相続先が、逆にその相続元として
必ずしも自分を指していなくとも良い。なお、系図型デ
ータ構造のデータ構造部320に対応する雛型プログラ
ム380には、系ノード部4100に属性を与えるため
の解決ロジックが含まれる。また、系ノード部4100
には、生成、削除、キー検索、吸収ノード検索及び分裂
ノード検索を実行する処理部が設けられている。
【0113】また、系図型データ構造の操作基本部31
0には、以下に示すような基本操作が含まれる。なお括
弧内の文字列はメソッド名である。 (1)系ノードキー検索(findNodeByKey) 系ノードのキーを指定して、系ノードを検索する。 (2)相続元検索(findParentOfNode) 系ノードのキーを指定して、その系ノードの相続元ノー
ドを検索する。 (3)相続先検索(findChildOfNode) 系ノードのキーを指定して、その系ノードの相続先ノー
ドを検索する。 (4)吸収ノード検索 系ノードのキーを指定して、その系ノードを相続先とす
る系ノードを検索する(findAbsorbedNodesOfNodes)。
そして、検索されたノードリストから、ノード情報を取
り出して、返却値を作る(nextNode)。 (5)分裂ノード検索 系ノードのキーを指定して、その系ノードを相続元とす
る系ノードを検索する(findDividedNodesOfNode)。そ
して、検索されたノードリストから、ノード情報を取り
出して、返却値を作る(nextNode)。 (6)起源検索 系ノードをキーを指定して、その系ノードの起源となる
相続元ノードを検索する(findRootOfNode)。 (7)最終相続先検索(findLeafOfNode) 系ノードをキーを指定して、その系ノードの最終相続先
ノードを検索する。 (8)同一系チェック(上方向)(isAccessibleAncest
or) 起点となる系ノードから、ある系ノードが上方向にアク
セス可能か調査する。 (9)同一系チェック(下方向)(isAccessibleDescen
dant) 起点となる系ノードから、ある系ノードが下方向にアク
セス可能か調査する。 (10)条件検索 ノードを条件指定で検索する。 (11)キー付きで系ノード生成(返却値は真偽)(cr
eateNodeWithKey1) キーを指定して、系ノードを新規に生成する。 (12)キー付きで系ノード生成(返却値は生成したノ
ードの情報)(createNodeWithKey2) キーを指定して、系ノードを新規に生成する。 (13)キー無しで系ノード生成(返却値は生成したノ
ードの情報)(createNodeWithoutKey) キーを指定しないで、系ノードを新規に生成する。キー
は採番サービスから取得する。 (14)系ノードの削除(removeNode) キーで指定した系ノードを削除する。他の系ノードから
リンクを張られている場合は削除不可。 (15)系ノードを消滅状態にする(dissolveNode) 系ノードの消滅日に日付を設定し、系ノードを消滅状態
にする。 (16)消滅状態の系ノードを復活する(reviveNode) 系ノードの消滅日をnullに設定し、消滅状態を無効にす
る。 (17)ノード情報の更新 系ノードの情報を更新する。返却値は真偽の場合と、ノ
ードの情報の場合がある。 (18)系ノードの転換 系ノードを生成し、相続元ノードは消滅状態とする。 (19)系ノードの吸収 複数の系ノードの相続先を既存の1つの系ノードに設定
する。 (20)系ノードの合併 複数の系ノードの相続先を新規に生成した1つの系ノー
ドに設定する。 (21)系ノードの分裂 系ノードを指定し、その系ノードを相続元とする複数の
系ノードを新規に生成する。 (22)系ノードの分割 系ノードを指定し消滅させ、その系ノードを相続元とす
る複数の系ノードを新規に生成する。 このような系図型データ構造に対する基本操作に対応す
る各雛型プログラムには、対象となるプログラム固有の
設定を行うための解決ロジックが埋め込まれている。
【0114】11.在庫型データ構造の場合 在庫型データ構造は、在庫や残高など、何らかのトラン
ザクションを受けた状態変化を管理するときに使用され
る。在庫型データ構造は、図42に示すように、現在倉
庫等に存在している在庫のための在庫部4200及び引
当明細部4210と、将来倉庫等に入れられる未来在庫
のための入荷予定部4220及び入荷予定引当明細部4
230とを含む。在庫部4200に対して引当明細部4
210がN個(Nは0以上の整数)存在し、両者間には
リンクが設けられている。入荷予定部4220に対して
入荷予定引当明細部4230がM個(Nは0以上の整
数)存在し、両者間にリンクが設けられている。
【0115】在庫部4200には、キーである在庫キー
(「倉庫コード(倉庫が複数ある場合に必要)、商品コ
ード、所有者区分、所有者コード、規格(色柄・サイ
ズ)コード、ロット番号」等の組合せ)と、属性である
引当可能数及び引当総数とが含まれる。引当可能数(未
引当の数)+引当総数(引当られた数)=在庫数とな
る。引当明細部4210には、キーである在庫キー及び
引当明細キーと、属性である引当要求数、引当数、出庫
数及び出庫予定日とが含まれる。引当明細部4210は
商品等を受注すると生成される。但し、初めから引当明
細部4210が設けられているようにすることも可能で
ある。
【0116】入荷予定部4220は、キーである入荷予
定キー(未定部分もあるので在庫キーより簡単な場合も
ある)と、属性である入荷予定日、入荷予定数、入荷実
績数、引当可能数、及び引当総数とを含む。また、入荷
予定引当明細部4230は、キーである入荷予定キー及
び引当明細キーと、属性である引当要求数及び引当数と
を含む。
【0117】なお、在庫型データ構造のデータ構造部3
20に対応する雛型プログラム380には、在庫部42
00、引当明細部4210、入荷予定部4220、及び
入荷予定引当明細部4230に属性を与えるための解決
ロジックが含まれる。また、在庫部4200、引当明細
部4210、入荷予定部4220、及び入荷予定引当明
細部4230の各々には、生成、削除、キー検索及び条
件検索を実行する処理部が設けられている。
【0118】また、在庫型データ構造の操作基本部31
0には、以下に示すような基本操作が含まれる。なお括
弧内の文字列はメソッド名である。 (1)在庫検索(findStockByKey) 指定されたキーを持つ在庫エンティティのインスタンス
を検索する。 (2)在庫条件検索 条件に適合する在庫エンティティのインスタンスの集合
を準備し、その準備ができたかどうかを返す。そして、
次の在庫エンティティの情報を取得する(nextStoc
k)。 (3)在庫登録(createStockWithKey) 指定されたキーを持つ在庫エンティティのインスタンス
を生成する(返却値は真偽)。 (4)在庫登録(返却値はエンティティの情報) 指定されたキーを持つ在庫エンティティのインスタンス
を生成する(createStockWithKey)。そして、生成した
在庫エンティティの情報を返す。 (5)引当可能数設定(setStockAvailableQuantity) 指定されたキーを持つ在庫エンティティのインスタンス
を検索し、指定された値を抽象レベルの属性である引当
可能数に設定する。 (6)在庫削除(removeStock) 指定されたキーを持つ在庫エンティティのインスタンス
を削除する。 (7)在庫修正 指定されたキーを持つ在庫エンティティのインスタンス
の情報を更新する(返却値は真偽)。 (8)在庫修正 指定されたキーを持つ在庫エンティティのインスタンス
の情報を更新する(返却値は更新したエンティティの情
報)。 (9)在庫引当検索(findReservationByKey) 指定されたキーを持つ在庫引当明細エンティティのイン
スタンスを検索する。 (10)在庫全引当検索 指定された在庫キーを持つ在庫引当明細エンティティの
インスタンスを全て検索する(findReservationsByStoc
k)。そして、次の在庫引当明細エンティティの情報を
取得する(nextReservation)。 (11)在庫引当(createReservation) 指定された在庫を引き当て、在庫引当明細エンティティ
のインスタンスを1件生成する(返却値は生成したエン
ティティの情報)。 (12)複数件在庫引当(createReservations) 指定された複数件の在庫を引き当て、在庫引当明細エン
ティティのインスタンスをそれぞれ1件ずつ生成する
(返却値は指定した在庫の件数)。 (13)条件指定在庫引当 条件に適合する在庫を引き当て、在庫引当明細エンティ
ティのインスタンスを生成する(返却値は生成した在庫
引当明細エンティティの情報)。 (14)在庫引当戻し(removeReservation) 指定されたキーを持つ在庫引当明細エンティティのイン
スタンスを削除する。つまり、在庫引当のキャンセルで
ある。同時に、在庫の引当総数を減らし、引当可能数を
増やす。ただし、在庫引当に出庫数が入っている場合に
は、引当戻しはできない。 (15)在庫引当修正 指定されたキーを持つ在庫引当明細エンティティのイン
スタンスの情報を更新する(返却値は真偽)。 (16)在庫引当修正 指定されたキーを持つ在庫引当明細エンティティのイン
スタンスの情報を更新する(返却値は更新したエンティ
ティの情報)。 (17)在庫引落(引当ありの引落) 引当ありの引落であり、指定されたキーを持つ在庫引当
明細エンティティのインスタンスに対し、引き落としを
行ない、出庫数を設定する(deliverWithReservatio
n)。そして、引き落とされた在庫引当明細エンティテ
ィに対応する在庫エンティティの情報を返す。 (18)在庫引落 (引当なしの引落) 引当なしの引落であり、指定されたキーを持つ在庫エン
ティティのインスタンスに対し、引き落としを行ない、
出庫数を設定する。同時に、引き落とされた在庫に対応
する在庫引当明細エンティティのインスタンスを生成す
る(返却値は更新した在庫エンティティの情報)(deli
verWithoutReservation)。 (19)出荷(shipReservation) 引き当てた在庫を出荷する。指定されたキーを持つ在庫
引当明細エンティティのインスタンスを削除し、同時に
在庫の引当総数を消し込む(返却値は在庫エンティティ
の情報)。 (20)入荷予定検索(findFutureReceptionByKey) 指定されたキーを持つ入荷予定エンティティのインスタ
ンスを検索する。 (21)入荷予定条件検索 条件に適合する入荷予定エンティティのインスタンスの
集合を準備し、その準備ができたかどうかを返す。又、
次の入荷予定エンティティの情報を取得する(nextFutu
reReception)。 (22)入荷予定登録(createFutureReceptionWithKe
y) 指定されたキーを持つ入荷予定エンティティのインスタ
ンスを生成する(返却値は真偽)。 (23)入荷予定取消し(removeFutureReception) 指定されたキーを持つ入荷予定エンティティのインスタ
ンスを削除する。すなわち、入荷予定のキャンセルであ
る。引当情報の有無にかかわらず入荷予定をキャンセル
にする。 (24)入荷予定修正 指定されたキーを持つ入荷予定エンティティのインスタ
ンスの情報を更新する(返却値は真偽)。 (25)入荷予定修正 指定されたキーを持つ入荷予定エンティティのインスタ
ンスの情報を更新する(返却値は更新したエンティティ
の情報)。 (26)入荷予定引当検索(findFutureReservationByK
ey) 指定されたキーを持つ入荷予定引当明細エンティティの
インスタンスを検索する。 (27)入荷予定全引当検索 指定された入荷予定キーを持つ入荷予定引当明細エンテ
ィティのインスタンスを全て検索する(findFutureRese
rvationsByFutureReception)。又、次の入荷予定引当
明細エンティティの情報を取得する(nextFutureReserv
ation)。 (28)入荷予定引当 指定された入荷予定を引き当て、入荷予定引当明細エン
ティティのインスタンスを生成する(返却値は生成した
入荷予定引当明細エンティティの情報)(createFuture
Reservation)。 (29)入荷予定引当取消し(removeFutureReservatio
n) 入荷予定引当明細エンティティのインスタンスを削除す
る。つまり、入荷予定引当のキャンセルである。 (30)入荷予定引当修正 指定されたキーを持つ入荷予定引当明細エンティティの
インスタンスの情報を更新する(返却値は真偽)。 (31)入荷予定引当修正 指定されたキーを持つ入荷予定引当明細エンティティの
インスタンスの情報を更新する(返却値は更新したエン
ティティの情報)。 このような在庫型データ構造に対する基本操作に対応す
る各雛型プログラムには、対象となるプログラム固有の
設定を行うための解決ロジックが埋め込まれている。
【0119】12.計画型データ構造 計画型データ構造は、販売計画、生産計画などの計画値
とその実績値を管理する時に使われる。計画業務におい
ては、時間の経過により計画が進行し、例えば製品毎や
組織毎の売上目標及び実績などが管理される。よって、
時間という軸と、製品、組織といった他の軸とが定義さ
れ、時間の経過に従った製品毎の目標及び実績、時間の
経過に従ったある組織毎の目標及び実績、時間の経過に
従った製品及び組織毎の目標及び実績といった各軸の組
合せに係るデータが管理される。なお、軸の種類は、時
間のみ決まっており他の軸の種類は任意である。数も任
意である。
【0120】例えば図43に示すように、製品(X
軸)、組織(Y軸)、時間(T軸)が規定され、製品の
階層を表す製品種、機種、製品それぞれについて、組織
の階層を表す本部、事業部、部についての目標値及び実
績値が管理される。また、時間軸についても、年度につ
いてのデータ、月度についてのデータ、日次についての
データが管理される。但し、図43の時間(T軸)の列
で○が付された部分だけ、実際にはデータの管理がなさ
れる。すなわち、製品種については、本部が年度で、事
業部が年度と月度でデータを管理する。機種について
は、事業部が年度及び月度、部が年度及び月度でデータ
を管理する。製品については、事業部が月度で、部が年
度、月度及び日次でデータを管理する。
【0121】上で述べたような業務に対応すべく計画型
データ構造は、図44に示すような構造を有している。
すなわち、計画部4400と、時間軸部4410と、時
間軸階層部4420と、軸種別部4430とが含まれ
る。計画部4400と軸種別部4430、計画部440
0と時間軸部4410、時間軸階層部4420と時間軸
部4410の間にはリンクが設けられている。なお、軸
種別部4430が存在するのは、当該軸が表すデータが
単純なデータでなく、階層構造を有している場合(上で
示した製品の場合(製品に関するコードが階層化されて
いる場合))等のために設けられる。ここではエンティ
ティとして示さないが、Y軸のためのエンティティを用
意しても良いし、他のシステムから取り込むような形
(ビューを用意する)にしても良い。例えば、Y軸に対
応するデータが、単純型のデータ構造の場合やツリー型
のデータ構造の場合(上で示した組織の場合)には、ビ
ューを設けるようにしてもよい。ここでビューとは、参
照のみ可能なエンティティのことである。
【0122】この計画部4400には、時間軸を特定す
るための時間軸コード(キー)と、製品種等を表すX軸
の種別を特定するためのX軸種別(キー)と、X軸の内
容を表すXキー(キー)と、Y軸の内容を表すYキー
(キー)と、計画のバージョンを表す版数(キー)と、
属性である予定値及び実績値とが含まれる。例えば、時
間軸コードとして「199904」(99年4月度)、
X軸種別として「製品種」、Xキーとして「PC」(製
品種コード)、Yキーとして「234」(事業部コー
ド)、版数として「01」、予定値として「12000
000」、実績値として「10321000」が設定さ
れる。
【0123】時間軸部4410には、時間軸コード(キ
ー)と、属性である時間軸名及び開始日付とが含まれ
る。時間軸部4410は、年度、半期、四半期、月度と
いった時間にも種別があり、且つ開始日付が異なるため
に設けられている。例えば、時間軸コードとして「19
9911」、時間軸名として「1999年11月度」、
開始日付として「19991021」というデータが設
定される。
【0124】時間軸階層部4420には、時間軸階層コ
ード(キー)と、属性である時間軸階層名、上位時間軸
階層コード、及び下位時間軸階層コードとが含まれる。
時間軸階層部4420は、時間が例えば年度、月度、日
次といったように階層的に管理されるために設けられて
いる。上位時間軸階層コード及び下位時間軸階層コード
が設定され、ここでは上下関係が一対一で決定される。
例えば、時間軸階層コードとして「GATSUDO」、
時間軸階層名として「月度」、上位時間軸階層コードと
して「NENDO」、下位時間軸階層コードとして「N
ICHI」というデータが設定される。軸種別部443
0には、X軸種別(キー)が含まれる。
【0125】このように、計画型データ構造のデータ構
造部320に対応する雛型プログラム380には、計画
部4400、時間軸部4410、時間軸階層部442
0、及び軸種別部4430に属性を与えるための解決ロ
ジックと、計画の管理単位(たとえば製品・組織)を指
定するための解決ロジックとが含まれる。また、少なく
とも計画部4400及び時間軸部4410には、生成、
削除、キー検索及び条件検索を実行する処理部が設けら
れる。
【0126】また、計画型データ構造の操作基本部31
0には、以下に示すような基本操作が含まれる。なお括
弧内の文字列はメソッド名である。 (1)時間軸登録(createTimeAxis1) 時間軸を新規に登録する。返却値は真偽値。エラーが起
きた場合、偽(false)を返す。 (2)時間軸登録(createTimeAxis2) 時間軸を新規に登録する。返却値は生成した時間軸の情
報。 (3)時間軸一括登録(createTimeAxisTree) ツリー構造の時間軸を登録する。下階層の時間軸は上位
階層の期間内で、かつ、開始日が一致しなければならな
い。 (4)時間軸削除(removeTimeAxisTree) 指定された時間軸とその下位の時間軸を削除する。ただ
し、時間軸とリンクしている計画が一つでもある場合
は、これらの計画のキーを返し、時間軸も削除しない。 (5)時間軸更新(updateTimeAxis1) 指定した時間軸の情報を更新する(返却値は真偽値)。
エラーが発生した場合は、falseを返す。 (6)時間軸更新(updateTimeAxis2) 指定した時間軸の情報を更新する。返却値は更新した時
間軸の情報。 (7)時間軸キー検索(findTimeAxisByKey) 指定したキーに該当する時間軸を検索する。該当する時
間軸の情報を返す。 (8)時間軸使用チェック(checkUsedTimeAxisTree) 指定した時間軸を参照する計画を検索する。該当する計
画の集合を返す。 (9)期間指定による子時間軸変換(convertTimeAxisK
eys) 開始日付と時間軸階層を指定して、その期間に属する子
時間軸を返す。 (10)計画予定登録(createPlan1) 計画予定を新規に登録する(返却値は真偽)。エラーが
発生した場合は、falseを返す。 (11)計画予定登録(createPlan2) 計画予定を新規に登録する(返却値は情報)。登録した
計画予定の情報を返す。 (12)計画実績登録(createResult1) 計画実績を新規に登録する(返却値は真偽値)。エラー
が発生した場合、falseを返す。 (13)計画実績登録(createResult2) 計画実績を新規に登録する。登録した計画実績の情報を
返す。 (14)時間軸生成付き計画予定登録(createPlanWith
Axis) 指定された計画予定と時間軸の両方を生成する。生成し
た計画予定の情報を返す。 (15)時間軸生成付き計画実績登録(createResultWi
thAxis) 指定された計画実績と時間軸の両方を生成する。生成し
た計画実績の情報が返す。 (16)計画予定更新(updataPlan) 指定された計画予定の内容を変更する。エラーがあれ
ば、falseが返る。 (17)計画実績更新(updateResult) 指定された計画実績の内容を変更する。エラーがあれ
ば、falseが返る。 (18)計画予定値更新(updatePlanValue) 指定された計画予定の予定値を変更する。エラーがなけ
れば、更新後の計画予定の情報が返る。 (19)計画実績値更新(updateResultValue) 指定された計画実績の実績値を変更する。エラーがなけ
れば、更新後の計画実績の情報が返る。 (20)計画予定キー検索(findPlanByKey) 指定したキーに該当する計画予定を検索する。該当する
計画予定の情報を返す。 (21)計画実績キー検索(findResultByKey) 指定したキーに該当する計画実績を検索する。該当する
計画実績の情報を返す。 (22)軸指定一括計画予定検索(findPlansByAxis) この検索機能では、入力として検索する計画予定の情報
と取得したい直下の計画予定の軸を指定する。この機能
を実行すると、(1)検索で該当した計画予定の情報と、
(2)指定軸に関してその(該当した計画予定の)直下に
存在する計画予定の全てが得られる。 (23)軸指定一括計画実績検索(findResultsByaxi
s) この検索機能では、入力として検索する計画実績の情報
と取得したい直下の計画実績の軸を指定する。この機能
を実行すると、(1)検索で該当した計画実績の情報と、
(2)指定軸に関してその(該当した計画実績の)直下に
存在する計画実績の全てが得られる。 (24)計画予定削除(removePlan) 指定した計画予定を削除する。 (25)計画実績削除(removeResult) 指定した計画実績を削除する。 (26)予定集約値算出(calcPlanValue) 指定した計画予定の予定値の合計を、指定した軸に関し
てその(指定した計画予定の)直下に存在する計画予定
の予定値を加算して求める。 (27)実績集約値算出(calcResultValue) 指定した計画実績の実績値の合計を、指定した軸に関し
てその(指定した計画実績の)直下に存在する計画実績
の実績値を加算して求める。 (28)予定消化率算出(calcPlanUsedRate) 指定した計画予定の予定値に対して、指定した軸でその
(指定した計画予定の)直下に存在する計画予定の予定
値の合計が占める(消費した)割合を求める。 (29)予実差異算出(calcDifference) 指定された計画予定の予定値と計画実績の実績値の差異
を計算する。 このような計画型データ構造に対する基本操作に対応す
る各雛型プログラムには、対象となるプログラム固有の
設定を行うための解決ロジックが埋め込まれている。
【0127】上で述べた実施の形態は、一例であって様
々な変形が可能である。例えば、ユーザインターフェー
スの例を図示しているが、同様の内容の他の画面であっ
てもよい。また、各データ構造について基本操作の例を
示しているが、基本操作は上記のとおりでなくともよ
く、より少ない基本操作を提供して残りはユーザが別途
用意するようにしてもよい。また、より多くの基本操作
を提供してユーザが別途用意しなくとも良くするような
態様であってもよい。
【0128】データ構造は一例であって、他のデータ構
造を規定してもよいし、より少ない種類のデータ構造を
実装する場合もある。
【0129】また、対象となるプログラムを生成する本
プログラム自動生成装置は、プログラムとコンピュータ
の組合せにて実現する例を上で示したが、専用の回路な
どを組み合わせて実現することも可能である。さらに、
プログラムとコンピュータの組合せにて実現する場合、
当該プログラムをフロッピー・ディスク、CD−RO
M、DVD、HDD、半導体メモリなどの記憶媒体又は
記憶装置に格納することも可能である。
【0130】(付記1)所定の処理を行うプログラムを
自動的に生成するプログラム自動生成装置であって、前
記所定の処理固有の設定を行うための解決ロジックを含
み且つ予め対応付けられたデータ構造のための雛型プロ
グラムを各々含む、複数のデータ構造解決ユニットと、
選択されたデータ構造に対応する前記データ構造解決ユ
ニット内の前記雛型プログラムに含まれる前記解決ロジ
ックの、前記所定の処理固有の設定に関する解決情報を
取得し、当該解決ロジックの解決情報と前記雛型プログ
ラムとを合成することにより、前記所定の処理を行うプ
ログラムを生成する解決器と、を有するプログラム自動
生成装置。
【0131】(付記2)前記解決器が、前記選択された
データ構造に対応する前記データ構造解決ユニット内の
前記雛型プログラムに含まれる前記解決ロジックを解析
し、当該解決ロジックに対する解決情報の入力をユーザ
に促す手段を有することを特徴とする付記1記載のプロ
グラム自動生成装置。
【0132】(付記3)前記選択されたデータ構造に対
応する前記データ構造解決ユニットは、単純型データ構
造に対応するデータ構造解決ユニット、伝票型データ構
造に対応するデータ構造解決ユニット、階層型データ構
造に対応するデータ構造解決ユニット、ツリー型データ
構造に対応するデータ構造解決ユニット、在庫型データ
構造に対応するデータ構造解決ユニット、時間帯予約型
データ構造に対応するデータ構造解決ユニット、計画型
データ構造に対応するデータ構造解決ユニット、座席予
約型データ構造に対応するデータ構造解決ユニット、構
成型データ構造に対応するデータ構造解決ユニット、明
細主導伝票型データ構造に対応するデータ構造解決ユニ
ット、系図型データ構造に対応するデータ構造解決ユニ
ット、及びマトリックス型データ構造に対応するデータ
構造解決ユニットのうちいずれかのデータ構造解決ユニ
ットであることを特徴とする付記1記載のプログラム自
動生成装置。
【0133】(付記4)前記データ構造解決ユニット
が、1又は複数のレコードタイプと、前記複数のレコー
ドタイプが存在する場合には当該複数のレコードタイプ
間のリンクとから構成されるデータ構造を規定し、当該
データ構造についての前記所定の処理のための設定を行
うための解決ロジックを含む第1の雛型プログラムと、
操作について前記所定の処理のための設定を行うための
解決ロジックを含み、前記データ構造に対して実行され
る基本操作に対応する第2の雛型プログラムと、を含む
ことを特徴とする付記1記載のプログラム自動生成装
置。
【0134】(付記5)所定の処理を行うプログラムを
自動的に生成するプログラム自動生成プログラムを格納
する記録媒体であって、前記プログラム自動生成プログ
ラムは、前記所定の処理固有の設定を行うための解決ロ
ジックを含み且つ予め対応付けられたデータ構造のため
の雛型プログラムを含むデータ構造解決ユニットにおい
て、前記雛型プログラムに含まれる前記解決ロジック
の、前記所定の処理固有の設定に関する解決情報を取得
し、当該解決ロジックの解決情報と前記雛型プログラム
とを合成することにより、前記所定の処理を行うプログ
ラムを生成する解決プログラム、を含む記録媒体。
【0135】(付記6)所定の仕様に従ったプログラム
を生成するために使用される生成用プログラムを格納す
る記録媒体であって、前記生成用プログラムは、1又は
複数のレコードタイプと、前記複数のレコードタイプが
存在する場合には当該複数のレコードタイプ間のリンク
とから構成されるデータ構造を規定し、当該データ構造
についての前記所定の仕様に従った設定を行うための解
決ロジックを含む第1の雛型プログラムと、操作につい
て前記所定の仕様に従った設定を行うための解決ロジッ
クを含み、前記データ構造に対して実行される基本操作
に対応する第2の雛型プログラムと、を含む記録媒体。
【0136】(付記7)前記第1の雛型プログラムが、
1種類のレコードタイプからなる単純型データ構造を規
定し、当該レコードの属性を与えるための解決ロジック
を含み、前記第2の雛型プログラムが、前記所定の仕様
に従った設定を行うための解決ロジックが埋め込まれて
おり、前記レコードに対し、少なくとも追加操作、削除
操作、更新操作、及び検索操作を実行するためのもので
ある、ことを特徴とする付記6記載の記録媒体。
【0137】(付記8)前記第1の雛型プログラムが、
1種類のヘッダ・レコードタイプと1種類の明細レコー
ドタイプと1つの前記ヘッダ・レコードタイプに対し1
又は複数の前記明細レコードタイプを結ぶリンクとを有
する伝票型データ構造を規定し、前記ヘッダレコード及
び前記明細レコードの属性を与えるための解決ロジック
を含み、前記第2の雛型プログラムが、前記伝票型デー
タ構造に対して少なくとも伝票新規作成及び伝票検索を
実行するための第2の雛型プログラムであって、前記ヘ
ッダ・レコードの状態を操作との関連で定義するための
解決ロジックと、前記所定の仕様に従った設定をレコー
ドの属性、レコードの状態、若しくはレコードの属性及
び状態の組合せで記述するための解決ロジックとが埋め
込まれている、ことを特徴とする付記6記載の記録媒
体。
【0138】(付記9)前記第1の雛型プログラムが、
資源レコードタイプと、資源の予約に関する予約レコー
ドタイプと、予約の時間の刻みに関する予約セル・レコ
ードタイプと、1つの資源レコートタイプと1又は複数
の予約レコードタイプとを結ぶリンクと、1つの予約レ
コードタイプと1又は複数の予約セル・レコードタイプ
を結ぶリンクとから構成される時間帯予約型データ構造
を規定し、前記時間帯予約型データ構造内の各レコード
の属性を与えるための解決ロジックを含み、前記第2の
雛型プログラムが、前記所定の仕様に従った設定を行う
ための解決ロジックを含み、前記時間帯予約型データ構
造に対して少なくとも予約登録、予約削除、予約更新及
び予約検索を実行するためのものである、ことを特徴と
する付記6記載の記録媒体。
【0139】(付記10)前記第1の雛型プログラム
が、行レコードタイプと、列レコードタイプと、行及び
列の交点を表すセル・レコードタイプと、各セルに対し
て割り当て可能な属性を表す列タイプ・レコードタイプ
とを含むマトリックス型データ構造を規定し、行レコー
ド、列レコード及び列タイプ・レコードの属性を与える
解決ロジック及びセルに対して列タイプ・レコードを割
り当てるための解決ロジックとを含み、前記第2の雛型
プログラムが、前記所定の仕様に従った設定を行うため
の解決ロジックを含み、前記マトリックス型データ構造
の行レコード、列レコード及び列タイプ・レコードに対
して、少なくとも追加操作、変更操作、削除操作及び検
索操作を実行するためのものである、ことを特徴とする
付記6記載の記録媒体。
【0140】(付記11)前記第1の雛型プログラム
が、複数種類のヘッダ・レコードタイプと、1種類の明
細レコードタイプと、前記複数種類のヘッダ・レコード
タイプと前記1種類の明細レコードタイプとを結ぶリン
クとを有する明細主導伝票型データ構造を規定し、前記
明細主導伝票型データ構造内の各レコードの属性を与え
る解決ロジックを含み、前記第2の雛型プログラムが、
前記明細主導伝票型データ構造に対し少なくとも伝票新
規作成、伝票検索、伝票削除及び伝票ヘッダ種変更を実
行するための第2の雛型プログラムであって、前記ヘッ
ダ・レコードの状態を操作との関連で定義するための解
決ロジックと、前記所定の仕様固有の設定をレコードの
属性、レコードの状態、若しくはレコードの属性及び状
態の組合せで記述するための解決ロジックが埋め込まれ
ている、ことを特徴とする付記6記載の記録媒体。
【0141】(付記12)前記第1の雛型プログラム
が、在庫レコードタイプと、在庫の引当を規定するため
の在庫引当明細レコードタイプと、入荷予定レコードタ
イプと、入荷予定に対する引当を規定するための入荷予
定引当明細レコードタイプと、前記在庫レコードタイプ
と前記在庫引当明細レコードタイプとを結ぶリンクと、
前記入荷予定レコードタイプと前記入荷予定引当明細レ
コードタイプとを結ぶリンクとを有する在庫型データ構
造を規定し、前記在庫型データ構造内の各レコードの属
性を与える解決ロジックを含み、前記第2の雛型プログ
ラムが、前記在庫型データ構造に含まれる各レコードに
対し少なくとも追加操作、削除操作、及び検索操作を実
行するための第2の雛型プログラムであって、前記所定
の仕様に従った設定を行うための解決ロジックを含む、
ことを特徴とする付記6記載の記録媒体。
【0142】(付記13)前記第1の雛型プログラム
が、資源レコードタイプと、資源のグループを規定する
ための資源グループ・レコードタイプと、資源グループ
を利用可能な機会を規定する機会レコード・タイプと、
機会と資源の組み合わせを規定するためのオカーレンス
・レコードタイプと、1又は複数のオカーレンスに関連
する予約レコード・タイプとを含む座席予約型データ構
造を規定し、前記座席予約型データ構造内の各レコード
の属性を与える解決ロジックを含み、前記第2の雛型プ
ログラムが、前記座席予約型データ構造に含まれる各レ
コードに対し少なくとも生成操作、削除操作、及び検索
操作を実行するための第2の雛型プログラムであって、
前記所定の仕様に従った設定を行うための解決ロジック
を含む、ことを特徴とする付記6記載の記録媒体。
【0143】(付記14)前記第1の雛型プログラム
が、計画レコードタイプと、時間軸に関する時間軸レコ
ードタイプと、前記時間軸の管理単位を規定する時間軸
階層レコードタイプとを含む計画型データ構造を規定
し、計画レコード、時間軸レコード及び時間軸階層レコ
ードの属性を与える解決ロジックと、計画の管理単位を
指定するための解決ロジックとを含み、前記第2の雛型
プログラムが、前記計画型データ構造に含まれる各レコ
ードに対し少なくとも追加操作、削除操作、及び検索操
作を実行するための第2の雛型プログラムであって、前
記所定の仕様に従った設定を行うための解決ロジックを
含む、ことを特徴とする付記6記載の記録媒体。
【0144】(付記15)前記第1の雛型プログラム
が、ノード・レコードタイプと、当該ノードの版数管理
のためのノード版数レコードタイプと、ノード版数レコ
ード間の構成関係を表す構成レコードタイプとを含む構
成型データ構造を規定し、前記構成型データ構造に含ま
れる各レコードの属性を与える解決ロジックと、前記第
2の雛型プログラムが、前記構成型データ構造に含まれ
る各レコードに対して少なくとも追加操作、削除操作、
及び検索操作を実行するための第2の雛型プログラムで
あって、前記所定の仕様に従った設定を行うための解決
ロジックが埋め込まれている、ことを特徴とする付記6
記載の記録媒体。
【0145】(付記16)前記第1の雛型プログラム
が、系の連続性を保持するための関連情報が付加された
1種類のレコードタイプからなる系図型データ構造を規
定し、当該レコードの属性を与えるための解決ロジック
が含まれ、前記第2の雛型プログラムが、前記レコード
に対して少なくとも追加操作、削除操作、及び検索操作
を実行するための第2の雛型プログラムであって、前記
所定の仕様に従った設定を行うための解決ロジックを含
む、ことを特徴とする付記6記載の記録媒体。
【0146】(付記17)前記第1の雛型プログラム
が、上位のノードに関する情報を保持するレコードタイ
プからなるツリー型データ構造を規定し、当該レコード
の属性を与えるための解決ロジックを含み、前記第2の
雛型プログラムが、前記レコードに対して少なくとも追
加操作、削除操作、及び検索操作を実行するための第2
の雛型プログラムであって、前記所定の仕様に従った設
定をレコードの属性、レコードの状態、若しくはレコー
ドの属性及び状態の組合せで記述するための解決ロジッ
クが埋め込まれている、ことを特徴とする付記6記載の
記録媒体。
【0147】(付記18)前記第1の雛型プログラム
が、1つのレコードタイプをルートとし、親ノードに関
する情報を保持する各階層のレコードタイプを含む階層
型データ構造を規定し、当該階層型データ構造内のレコ
ードに属性を与えるための解決ロジックを含み、前記第
2の雛型プログラムが、前記レコードに対して少なくと
も追加操作、削除操作、及び検索操作を実行するための
第2の雛型プログラムであって、前記所定の仕様に従っ
た設定をレコードの属性、レコードの状態、若しくはレ
コードの属性及び状態の組合せで記述するための解決ロ
ジックが埋め込まれている、ことを特徴とする付記6記
載の記録媒体。
【0148】(付記19)所定の処理を行うプログラム
を自動的に生成するプログラム自動生成プログラムであ
って、前記所定の処理固有の設定を行うための解決ロジ
ックを含み且つ予め対応付けられたデータ構造のための
雛型プログラムを含むデータ構造解決ユニットにおい
て、前記雛型プログラムに含まれる前記解決ロジック
の、前記所定の処理固有の設定に関する解決情報を取得
し、当該解決ロジックの解決情報と前記雛型プログラム
とを合成することにより、前記所定の処理を行うプログ
ラムを生成する解決プログラム、を含むプログラム自動
生成プログラム。
【0149】(付記20)所定の仕様に従ったプログラ
ムを生成するために使用される生成用プログラムであっ
て、前記生成用プログラムは、1又は複数のレコードタ
イプと、前記複数のレコードタイプが存在する場合には
当該複数のレコードタイプ間のリンクとから構成される
データ構造を規定し、当該データ構造についての前記所
定の仕様に従った設定を行うための解決ロジックを含む
第1の雛型プログラムと、操作について前記所定の仕様
に従った設定を行うための解決ロジックを含み、前記デ
ータ構造に対して実行される基本操作に対応する第2の
雛型プログラムと、を含む生成用プログラム。
【0150】
【発明の効果】本発明により、より少ない雛型を用い
て、多様なプログラムを生成できるようにするプログラ
ム自動生成技術を提供することができた。
【図面の簡単な説明】
【図1】プログラム自動生成装置の概要を示すブロック
図である。
【図2】データ構造解決ユニット3の概要を示すブロッ
ク図である。
【図3】伝票型データ構造を処理するプログラムが出力
する伝票操作画面の一例を示す図である。
【図4】伝票型データ構造の模式図である。
【図5】伝票型データ構造に対応するデータ構造解決ユ
ニットの操作基本部に含まれる基本操作の一例を示す表
である。
【図6】伝票更新操作に対応する雛型プログラムの一例
を示す図である。
【図7】伝票型データ構造のデータ構造解決ユニットに
対する解決情報を入力するための画面例を示す図であ
る。
【図8】データ構造を選択するための画面例を示す図で
ある。
【図9】伝票型データ構造のデータ構造解決ユニットに
対する解決情報入力画面その1を表す図である。
【図10】伝票型データ構造のデータ構造解決ユニット
に対する解決情報入力画面その2を表す図である。
【図11】伝票型データ構造のデータ構造解決ユニット
に対する解決情報入力画面その3を表す図である。
【図12】伝票型データ構造のデータ構造解決ユニット
に対する解決情報入力画面その4を表す図である。
【図13】解決器5の処理フローを説明するためのフロ
ーチャートである。
【図14】伝票型データ構造に対応する雛型プログラム
の解析処理の処理フローを表すフローチャートである。
【図15】伝票型データ構造に対する入力画面生成及び
解決情報取得処理の処理フローを表すフローチャートで
ある。
【図16】伝票型データ構造を使用する他のプログラム
のための解決情報入力画面の一例を示す図である。
【図17】時間帯予約型データ構造を使用するプログラ
ムが出力する画面の一例を示す図である。
【図18】時間帯予約型データ構造の概要を示す模式図
である。
【図19】時間帯予約型データ構造に対する基本操作の
一例を示す表である。
【図20】時間帯予約型データ構造のデータ構造解決ユ
ニットに対する解決情報を入力するための画面例を示す
図である。
【図21】単純型データ構造の概要を示す模式図であ
る。
【図22】マトリックス型データ構造の概要を示す模式
図である。
【図23】自動車保険における保険商品と保障のテーブ
ル例を示す図である。
【図24】図23をマトリックス型データ構造で表した
場合の一例を示す図である。
【図25】階層型データ構造を処理するプログラムが出
力する操作画面の一例を示す図である。
【図26】階層型データ構造の概要を示す模式図であ
る。
【図27】階層型データ構造のデータ構造解決ユニット
に対する解決情報を入力するための画面例を示す図であ
る。
【図28】ツリー型データ構造を処理するプログラムが
出力する操作画面の一例を示す図である。
【図29】ツリー型データ構造の概要を示す模式図であ
る。
【図30】ツリー型データ構造のデータ構造解決ユニッ
トに対する解決情報を入力するための画面例を示す図で
ある。
【図31】(a)明細主導伝票型データ構造を説明する
ために用いられる売掛伝票の一例である。(b)明細主
導伝票型データ構造を説明するために用いられる請求伝
票の一例である。(c)明細主導伝票型データ構造を説
明するために用いられる入金伝票の一例である。(d)
明細主導伝票型データ構造を説明するために用いられる
取引明細の一例である。
【図32】明細主導伝票型データ構造を処理するプログ
ラムが出力する操作画面の一例を示す図である。
【図33】明細主導伝票型データ構造の概要を示す模式
図である。
【図34】明細主導伝票型データ構造のデータ構造解決
ユニットに対する解決情報を入力するための画面例を示
す図である。
【図35】構成型データ構造が適用可能なモデルの一例
を示す図である。
【図36】構成型データ構造の概要を示す模式図であ
る。
【図37】座席予約型データ構造が適用可能なモデルの
一例を示す図である。
【図38】図37のモデルに対する座席予約型データ構
造を示す図である。
【図39】一般的な座席予約型データ構造の概要を示す
模式図である。
【図40】系図型データ構造を適用可能なモデルの一例
を説明するための図である。
【図41】系図型データ構造の概要を示す模式図であ
る。
【図42】在庫型データ構造の概要を示す模式図であ
る。
【図43】計画型データ構造が適用可能なモデルの一例
を説明するための図である。
【図44】計画型データ構造の概要を示す模式図であ
る。
【符号の説明】
1 プログラム自動生成装置 3 データ構造解決ユ
ニット 5 解決器 7 解決ロジック解析部 9 合成部 11 解決情報入力画面 13 対象となるプログラム 310 操作基本部 320 データ構造部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 浅井 景粋 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 (72)発明者 銀林 純 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 (72)発明者 吉田 裕之 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 (72)発明者 山本 里枝子 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 (72)発明者 濱本 惠美子 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5B076 DD06 DD10

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】所定の処理を行うプログラムを自動的に生
    成するプログラム自動生成装置であって、 前記所定の処理固有の設定を行うための解決ロジックを
    含み且つ予め対応付けられたデータ構造のための雛型プ
    ログラムを各々含む、複数のデータ構造解決ユニット
    と、 選択されたデータ構造に対応する前記データ構造解決ユ
    ニット内の前記雛型プログラムに含まれる前記解決ロジ
    ックの、前記所定の処理固有の設定に関する解決情報を
    取得し、当該解決ロジックの解決情報と前記雛型プログ
    ラムとを合成することにより、前記所定の処理を行うプ
    ログラムを生成する解決器と、 を有するプログラム自動生成装置。
  2. 【請求項2】前記解決器が、 前記選択されたデータ構造に対応する前記データ構造解
    決ユニット内の前記雛型プログラムに含まれる前記解決
    ロジックを解析し、当該解決ロジックに対する解決情報
    の入力をユーザに促す手段を有することを特徴とする請
    求項1記載のプログラム自動生成装置。
  3. 【請求項3】前記選択されたデータ構造に対応する前記
    データ構造解決ユニットは、単純型データ構造に対応す
    るデータ構造解決ユニット、伝票型データ構造に対応す
    るデータ構造解決ユニット、階層型データ構造に対応す
    るデータ構造解決ユニット、ツリー型データ構造に対応
    するデータ構造解決ユニット、在庫型データ構造に対応
    するデータ構造解決ユニット、時間帯予約型データ構造
    に対応するデータ構造解決ユニット、計画型データ構造
    に対応するデータ構造解決ユニット、座席予約型データ
    構造に対応するデータ構造解決ユニット、構成型データ
    構造に対応するデータ構造解決ユニット、明細主導伝票
    型データ構造に対応するデータ構造解決ユニット、系図
    型データ構造に対応するデータ構造解決ユニット、及び
    マトリックス型データ構造に対応するデータ構造解決ユ
    ニットのうちいずれかのデータ構造解決ユニットである
    ことを特徴とする請求項1記載のプログラム自動生成装
    置。
  4. 【請求項4】前記データ構造解決ユニットが、 1又は複数のレコードタイプと、前記複数のレコードタ
    イプが存在する場合には当該複数のレコードタイプ間の
    リンクとから構成されるデータ構造を規定し、当該デー
    タ構造についての前記所定の処理のための設定を行うた
    めの解決ロジックを含む第1の雛型プログラムと、 操作について前記所定の処理のための設定を行うための
    解決ロジックを含み、前記データ構造に対して実行され
    る基本操作に対応する第2の雛型プログラムと、 を含むことを特徴とする請求項1記載のプログラム自動
    生成装置。
  5. 【請求項5】所定の処理を行うプログラムを自動的に生
    成するプログラム自動生成プログラムを格納する記録媒
    体であって、 前記プログラム自動生成プログラムは、 前記所定の処理固有の設定を行うための解決ロジックを
    含み且つ予め対応付けられたデータ構造のための雛型プ
    ログラムを含むデータ構造解決ユニットにおいて、前記
    雛型プログラムに含まれる前記解決ロジックの、前記所
    定の処理固有の設定に関する解決情報を取得し、当該解
    決ロジックの解決情報と前記雛型プログラムとを合成す
    ることにより、前記所定の処理を行うプログラムを生成
    する解決プログラム、 を含む記録媒体。
  6. 【請求項6】所定の仕様に従ったプログラムを生成する
    ために使用される生成用プログラムを格納する記録媒体
    であって、 前記生成用プログラムは、 1又は複数のレコードタイプと、前記複数のレコードタ
    イプが存在する場合には当該複数のレコードタイプ間の
    リンクとから構成されるデータ構造を規定し、当該デー
    タ構造についての前記所定の仕様に従った設定を行うた
    めの解決ロジックを含む第1の雛型プログラムと、 操作について前記所定の仕様に従った設定を行うための
    解決ロジックを含み、前記データ構造に対して実行され
    る基本操作に対応する第2の雛型プログラムと、 を含む記録媒体。
  7. 【請求項7】前記第1の雛型プログラムが、1種類のヘ
    ッダ・レコードタイプと1種類の明細レコードタイプと
    1つの前記ヘッダ・レコードタイプに対し1又は複数の
    前記明細レコードタイプを結ぶリンクとを有する伝票型
    データ構造を規定し、前記ヘッダレコード及び前記明細
    レコードの属性を与えるための解決ロジックを含み、 前記第2の雛型プログラムが、前記伝票型データ構造に
    対して少なくとも伝票新規作成及び伝票検索を実行する
    ための第2の雛型プログラムであって、前記ヘッダ・レ
    コードの状態を操作との関連で定義するための解決ロジ
    ックと、前記所定の仕様に従った設定をレコードの属
    性、レコードの状態、若しくはレコードの属性及び状態
    の組合せで記述するための解決ロジックとが埋め込まれ
    ている、 ことを特徴とする請求項6記載の記録媒体。
  8. 【請求項8】前記第1の雛型プログラムが、資源レコー
    ドタイプと、資源の予約に関する予約レコードタイプ
    と、予約の時間の刻みに関する予約セル・レコードタイ
    プと、1つの資源レコートタイプと1又は複数の予約レ
    コードタイプとを結ぶリンクと、1つの予約レコードタ
    イプと1又は複数の予約セル・レコードタイプを結ぶリ
    ンクとから構成される時間帯予約型データ構造を規定
    し、前記時間帯予約型データ構造内の各レコードの属性
    を与えるための解決ロジックを含み、 前記第2の雛型プログラムが、前記所定の仕様に従った
    設定を行うための解決ロジックを含み、前記時間帯予約
    型データ構造に対して少なくとも予約登録、予約削除、
    予約更新及び予約検索を実行するためのものである、 ことを特徴とする請求項6記載の記録媒体。
  9. 【請求項9】前記第1の雛型プログラムが、在庫レコー
    ドタイプと、在庫の引当を規定するための在庫引当明細
    レコードタイプと、入荷予定レコードタイプと、入荷予
    定に対する引当を規定するための入荷予定引当明細レコ
    ードタイプと、前記在庫レコードタイプと前記在庫引当
    明細レコードタイプとを結ぶリンクと、前記入荷予定レ
    コードタイプと前記入荷予定引当明細レコードタイプと
    を結ぶリンクとを有する在庫型データ構造を規定し、前
    記在庫型データ構造内の各レコードの属性を与える解決
    ロジックを含み、 前記第2の雛型プログラムが、前記在庫型データ構造に
    含まれる各レコードに対し少なくとも追加操作、削除操
    作、及び検索操作を実行するための第2の雛型プログラ
    ムであって、前記所定の仕様に従った設定を行うための
    解決ロジックを含む、 ことを特徴とする請求項6記載の記録媒体。
  10. 【請求項10】前記第1の雛型プログラムが、資源レコ
    ードタイプと、資源のグループを規定するための資源グ
    ループ・レコードタイプと、資源グループを利用可能な
    機会を規定する機会レコード・タイプと、機会と資源の
    組み合わせを規定するためのオカーレンス・レコードタ
    イプと、1又は複数のオカーレンスに関連する予約レコ
    ード・タイプとを含む座席予約型データ構造を規定し、
    前記座席予約型データ構造内の各レコードの属性を与え
    る解決ロジックを含み、 前記第2の雛型プログラムが、前記座席予約型データ構
    造に含まれる各レコードに対し少なくとも生成操作、削
    除操作、及び検索操作を実行するための第2の雛型プロ
    グラムであって、前記所定の仕様に従った設定を行うた
    めの解決ロジックを含む、 ことを特徴とする請求項6記載の記録媒体。
  11. 【請求項11】所定の処理を行うプログラムを自動的に
    生成するプログラム自動生成プログラムであって、 前記所定の処理固有の設定を行うための解決ロジックを
    含み且つ予め対応付けられたデータ構造のための雛型プ
    ログラムを含むデータ構造解決ユニットにおいて、前記
    雛型プログラムに含まれる前記解決ロジックの、前記所
    定の処理固有の設定に関する解決情報を取得し、当該解
    決ロジックの解決情報と前記雛型プログラムとを合成す
    ることにより、前記所定の処理を行うプログラムを生成
    する解決プログラム、 を含むプログラム自動生成プログラム。
  12. 【請求項12】所定の仕様に従ったプログラムを生成す
    るために使用される生成用プログラムであって、 前記生成用プログラムは、 1又は複数のレコードタイプと、前記複数のレコードタ
    イプが存在する場合には当該複数のレコードタイプ間の
    リンクとから構成されるデータ構造を規定し、当該デー
    タ構造についての前記所定の仕様に従った設定を行うた
    めの解決ロジックを含む第1の雛型プログラムと、 操作について前記所定の仕様に従った設定を行うための
    解決ロジックを含み、前記データ構造に対して実行され
    る基本操作に対応する第2の雛型プログラムと、 を含む生成用プログラム。
JP2001008759A 2000-01-25 2001-01-17 データ構造解決ユニットを用いたプログラム自動生成方式 Withdrawn JP2002202885A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001008759A JP2002202885A (ja) 2000-01-25 2001-01-17 データ構造解決ユニットを用いたプログラム自動生成方式

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2000015296 2000-01-25
JP2000-322402 2000-10-23
JP2000-15296 2000-10-23
JP2000322402 2000-10-23
JP2001008759A JP2002202885A (ja) 2000-01-25 2001-01-17 データ構造解決ユニットを用いたプログラム自動生成方式

Publications (1)

Publication Number Publication Date
JP2002202885A true JP2002202885A (ja) 2002-07-19

Family

ID=27342120

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001008759A Withdrawn JP2002202885A (ja) 2000-01-25 2001-01-17 データ構造解決ユニットを用いたプログラム自動生成方式

Country Status (1)

Country Link
JP (1) JP2002202885A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008532151A (ja) * 2005-03-04 2008-08-14 クアドラト 1日以内の予約の解答を示す予約登録システムのためのユーザー・インターフェース
WO2011108193A1 (ja) * 2010-03-05 2011-09-09 日本電気株式会社 プログラム作成支援装置、プログラム、および、情報システム
EP3598380A4 (en) * 2017-03-17 2020-08-26 Mitsubishi Hitachi Power Systems, Ltd. OPERATION PLAN CREATION DEVICE, OPERATION PLAN CREATION SYSTEM, OPERATION PLAN CREATION PROCESS AND PROGRAM

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008532151A (ja) * 2005-03-04 2008-08-14 クアドラト 1日以内の予約の解答を示す予約登録システムのためのユーザー・インターフェース
WO2011108193A1 (ja) * 2010-03-05 2011-09-09 日本電気株式会社 プログラム作成支援装置、プログラム、および、情報システム
JP5626333B2 (ja) * 2010-03-05 2014-11-19 日本電気株式会社 プログラム作成支援装置、プログラム、および、情報システム
US9116708B2 (en) 2010-03-05 2015-08-25 Nec Corporation Program creation support apparatus, program, and information system
EP3598380A4 (en) * 2017-03-17 2020-08-26 Mitsubishi Hitachi Power Systems, Ltd. OPERATION PLAN CREATION DEVICE, OPERATION PLAN CREATION SYSTEM, OPERATION PLAN CREATION PROCESS AND PROGRAM

Similar Documents

Publication Publication Date Title
US6751622B1 (en) Generic hierarchical structure with hard-pegging of nodes with dependencies implemented in a relational database
US10565223B2 (en) Integrated workflow and database transactions
US7240077B1 (en) Web site content change management
CA2699471C (en) A method and apparatus for version management of a data entity
US6973639B2 (en) Automatic program generation technology using data structure resolution unit
US20010009033A1 (en) Object-oriented business system and method
EP1693793A1 (en) Intellectual property management system
CN101111838A (zh) 多维企业软件系统中的自动关系模式生成
EP2282287A1 (en) Method to keep coherent a travel shopping basket
JP2003141173A (ja) データベース管理システム及びデータベース
JP4945196B2 (ja) データ管理システム
KR20160103842A (ko) Brms를 이용한 상품관리 시스템 및 방법
JP2002202885A (ja) データ構造解決ユニットを用いたプログラム自動生成方式
Luszczak Using microsoft dynamics AX 2012: Updated for version R3
JP2002169709A (ja) 文書の保管保存方法における管理方法
US20140067628A1 (en) Computerized system and method for parts packaging management
JP4152107B2 (ja) データベース更新情報の反映システムおよびそのためのプログラム
Gounder et al. Perceiving airline passenger booking lifecycle with the utilization of data warehouse
JP2012511746A (ja) 知的財産データベースにおけるレポート生成
US12613839B2 (en) Information management system and option management apparatus
JP2006331045A (ja) 業務統合管理システム自動生成装置、業務統合管理システム自動生成方法、業務統合管理システム自動生成プログラム
JPH0991339A (ja) プロセス整理支援システム
JP2945586B2 (ja) 人事異動管理支援システム
CN120950736A (zh) 一种订单数据创建、查询、修改方法及装置
Jyoti et al. Salesforce Data Architecture

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080401