妥当性規則を定義する単位は次の3通りあります。
LANSA では、妥当性規則もリポジトリで集中管理するようになっています。プログラムのあちこちに同じような検証処理を記述する代わりに、フィールド単位、テーブル単位で一度だけ定義し、必要なときに適用されるようにしているのです。アプリケーション開発の便宜のため、LANSAではさまざまな種類の妥当性規則の種類を用意しています。
妥当性規則がいくつかある場合、ファンクション単位の規則がまず適用され、その後フィールド単位、テーブル単位の順序になります。RDMLで記述した検証処理は、データベースに対する操作の前に実行できます。一方、テーブル/フィールド単位の妥当性検証は、OAM(オブジェクト・アクセス・モジュール)を使ってデータベース操作を施した後で実施されます。
妥当性規則の重要性はフィールド単位のものが最も高く、その後テーブル単位、ファンクション単位となります。テーブル内で使われるフィールドは、リポジトリに定義しておく必要があります。同じフィールドが例えば3つのテーブルにあれば、どのテーブルについても、リポジトリに登録された同じ定義を参照することになります。したがって各テーブルとも、フィールド単位の妥当性規則は同じように適用されるのです(複数のファンクションが同じテーブルを使う場合も同様)。したがって、フィールド単位の規則はテーブルに含まれ、テーブル単位の規則はファンクションに含まれる、という階層構造が成り立ちます。ファンクション単位の妥当性規則はテーブル/フィールド単位の規則に先立って検証されますが、テーブル/フィールド単位の規則の方がアプリケーションの動作を最終的に決定することになるので、重要性は高いと考えるのです。
次のトピックも参照してください。
『LANSA テクニカル リファレンスガイド』の「妥当性検査&トリガー定義」