特殊な管理 > ビジネスオブジェクトの調整 > タイプおよび属性の管理 > タイプおよび属性の管理ユーティリティの使用 > タイプの管理 > タイプの情報ページ > 「カスケード属性」タブ > 列挙とカスケード属性規則
  
列挙とカスケード属性規則
属性をカスケード属性規則の「If」および「AND IF」節で使用するには、属性がブールデータタイプまたは文字列データタイプでなければなりません。属性が文字列データタイプの場合、それにはグローバル列挙によって直接バッキングされている、有効になっている単一の列挙値リスト制約が必要です。グローバル列挙によって直接バッキングされるためには、列挙値リスト制約が既存のグローバル列挙を使用して作成されている必要があります。
その他の列挙値リスト制約がその属性に存在することもありますが、その他の列挙値リスト制約が次のいずれかの基準を満たすかぎり、カスケード属性規則でその属性を使用できます。
列挙値リスト制約がグローバル列挙によって直接バッキングされているが、無効になっている。そのような列挙値リスト制約の 1 つでも有効になっている場合、その属性は新しいカスケード属性規則で使用できなくなります。
列挙値リスト制約がローカルである (この属性にまったく新しい列挙が作成された)。
列挙値リスト制約が既存のグローバル列挙に基づいている。
カスケード属性規則で使用されている属性が後から使用不可能になった場合、その属性を含むすべてのカスケード属性規則はそのまま残ります。たとえば、グローバル列挙によって直接バッキングされている 1 つの有効な列挙値リスト制約が削除された場合や、グローバル列挙によって直接バッキングされている 2 つ目の列挙値リスト制約が有効になった場合、その属性は使用不可能になることがあります。使用不可能になった属性を使用した条件を含む規則を編集してその条件に選択されている値を変更できますが、使用不可能になった属性をその条件から除去した場合、その属性を規則の別の場所に追加することはできません。
列挙値リスト制約の作成方法については、列挙値リスト制約を参照してください。
カスケード属性規則内の属性のバッキング列挙の表示
「新規規則」または「規則を編集」ウィンドウでカスケード属性規則の「IF」または「AND IF」条件あるいは「THEN」節のドロップダウンリストから属性を選択すると、その列挙値リスト制約をバッキングしているグローバル列挙の名前がそのドロップダウンリストの下の「列挙」フィールドに表示されます。
カスケード属性規則が作成されたときに有効なバッキング列挙がその規則とともに保存されています。属性自体を編集して列挙値リスト制約によって参照されるグローバル列挙を変更したり、列挙値リスト制約自体を変更したりしても、既存のカスケード属性規則のバッキング列挙は変更されません。新しいカスケード属性規則では現在有効なバッキング列挙が使用され、そのバッキング列挙が「列挙」フィールドに表示されます。
グローバル列挙
グローバル列挙は「タイプおよび属性の管理」ユーティリティの「グローバル列挙を管理」ウィンドウで作成および管理します。カスケード属性規則で使用可能な属性のバッキング列挙として、ルート列挙 (「グローバル列挙を管理」ウィンドウでオーガナイザーの直下にある最上位の列挙) とそのサブ列挙を使用できます。
各グローバル列挙の列挙エントリは「選択可能」テーブルまたは「選択リストから除去されました」テーブルに表示されています。
これらのテーブルを使用して、ある属性によって値リストが使用されている場合にエンドユーザーのユーザーインタフェースにエントリが表示されて選択可能になるかどうかを指定できます。「選択可能」テーブル内のエントリはエンドユーザーのインタフェースで選択可能であり、「選択リストから除去されました」テーブル内のエントリはエンドユーザーのインタフェースで選択できません。これらのテーブルはカスケード属性規則での列挙エントリの使用の可否には影響しません。
バッキンググローバル列挙内のすべてのエントリを「新規規則」「規則を編集」「条件を編集」ウィンドウでカスケード属性規則に選択できます。「選択リストから除去済み」テーブルのエントリは取り消し線フォントで表示されます。ただし、属性の属性セットレポートに表示したり、属性によって値リストが使用されたりしている場合にエンドユーザーのユーザーインタフェースで選択できるのは、「選択可能」テーブルに表示されている列挙のエントリだけです。この結果、列挙内のすべてのエントリにカスケード属性規則を定義でき、カスケード属性規則を操作することなく、バッキング列挙を編集することで、その時点で使用可能または使用不可能にするエントリを指定できます。
ルート列挙にエントリを追加した場合、それらのエントリはそのルート列挙のすべてのサブ列挙によって自動的に継承され、サブ列挙の「選択リストから除去されました」テーブルに追加されます。同様に、ルート列挙からエントリを削除した場合、これらはそのルート列挙のすべてのサブ列挙から自動的に削除されます。既存のカスケード属性規則のどこかでバッキング列挙として使用されている列挙にエントリを追加した場合、これらのエントリは選択されていない値としてその規則に追加されます。
「選択可能」テーブルと「選択リストから除去されました」テーブルでの列挙エントリの並べ替え順序によって、その列挙によってバッキングされている属性の「新規規則」「規則を編集」「条件を編集」ウィンドウの「値を選択」リストに選択対象の値が表示される順序が決まります。さらに、選択した値が「カスケード属性」タブの「THEN」節にリストされるときの順序と、「属性セットレポート」ウィンドウにそれらの値が表示されるときの順序も決まります。両方のテーブルにエントリがある場合、「値を選択」リストには「選択可能」テーブル内のエントリが先に表示され、「選択リストから除去されました」テーブル内のエントリがその後ろに表示されます。
グローバル列挙の並べ替え順序を変更した場合、「値を選択」リスト、「カスケード属性」タブ、「属性セットレポート」ウィンドウに表示される値の順序も変わります。並べ替え順序の変更については、列挙の表示と編集のトピックの「「エントリ」タブ」のセクションを参照してください。