LANSAを使った開発作業では、業務内容に基づく妥当性規則を、フィールド単位またはテーブル単位で、リポジトリに集中定義することになっています。これにより、同じ検証処理をプログラム中のあちこちに記述しなくても済むようになるのです。フィールドにもテーブルにも、同じ種類の妥当性規則を設定できます。
重要なのは、フィールドの妥当性検証処理が、データベース・テーブルに対する操作の一環として実行される、ということです。すなわち、該当するフィールドに関係するテーブル操作(レコードの挿入/更新/削除など)の際、検証処理が必ず実行されるのです。
妥当性規則には次の6種類があります。
値の範囲:
フィールドの値が所定の範囲内にあることを表す規則です。
例:社員番号(Employee Number)はA0000~A9999の範囲内。
許容される値の列挙:
フィールドの値として許容されるものを列挙する形の規則です。
例:社員の技能階級(Skill Grade)は「P」、「F」、「M」、「D」のいずれか。
テーブル内のレコードとの参照制約:
フィールドの値は、あるコード表 (テーブル) に載っている値でなければならない、という形の規則です。
例:部課コード (Section Code) は部課 (Section) テーブルに記載されているコード。
式の評価:
ある条件式を満たしていなければならない、という形の規則です。
例:部門コード (Department Code) は空。
ユーザー・プログラムの呼び出し:
独自に用意した検証プログラムまたはLANSAファンクションを呼び出す形の規則です。
例:日付と曜日が矛盾しない旨を確認するプログラムの呼び出し。
日付の書式/範囲:
所定の書式(「DDMMYYCC」、「CCYYMMDD」など)、所定の範囲内の日付データであることを表す規則です。
例:社員の雇用日付は「DDMMYY」という書式で、未来の日付ではない。
実質的には同じ検証内容でも、規則の書き方がひと通りには決まらない場合もあります。例えばあるフィールドが空白である旨の検証は、「許容される値の列挙」型の規則としても、「式の評価」型の規則としても設定できます。
次のトピックも参照してください。
フィールドに対する妥当性規則やトリガーの定義