フィールド単位の規則とファイル単位の規則

フィールド単位の妥当性規則やトリガーは、このフィールドが含まれる各ファイルに適用されます。例えばある人事システムで、DEPTMENTというフィールドが部門ファイル(DEPTAB)と従業員ファイル(PSLMST)の両方に使われているとしましょう。「DEPTMENTが空であってはならない」というフィールド単位の妥当性規則を設定すれば、これはDEPTABファイル、PSLMSTファイルの両方に適用されます。部門ファイルについては「部門名に必ずコードを割り当てなければならない」こと、従業員ファイルについては「どの従業員も必ずある部門に属すること」を表します。一方、職制上、どの部門にも属さない従業員がいても構わないとすれば、フィールド単位の妥当性規則は使えません。部門ファイルにのみ適用される、ファイル単位の規則を定義する必要があるのです。

このように、フィールド単位の妥当性規則やトリガーは、それがどのファイルにあるかにかかわらず適用されるので注意してください。

通常はまず、ファイル単位で定義することを検討するとよいでしょう。こうすれば、同じフィールドでも、どのファイルに含まれているかによって規則を違えることができます。また、同じフィールドに複数の妥当性規則を設ける場合、どちらもファイル単位(あるいはどちらもフィールド単位)の規則であれば、適用順序にも注意が必要です。さらに、ファイル単位の妥当性規則を変更すれば、自動的にOAMが再構築されることも覚えておいてください。以上に対して、フィールド単位の規則を変更しようとする場合、事前に影響範囲を分析する必要があるほか、OAMの再構築も明示的に指示しなければなりません(「フィールドの妥当性規則/トリガーとオブジェクト・アクセス・モデル」を参照)。

フィールド単位の妥当性規則やトリガーを追加する際は、「ファイルに対する妥当性規則やトリガーの定義」も読んでおいてください。