フィーチャ ルールを使用して、データベースに変更を加えるたびに自動データ修正や機能の追加などのプロシージャを実行します。クライアント側とサーバ側のフィーチャ規則があります。
フィーチャ ルールとは、事前に定義されたアルゴリズムに従ってデータを処理するメソッドやトリガーのことです。たとえば、ルールはフィーチャ クラスの挿入前や修正後のような特定のイベントで、一貫性や依存性の複雑なチェックを行います。インダストリ モデルで提供される既定のルールの一部の側面を編集できます。
フィーチャ ルールは AutoCAD Map 3D ツールセット に付属しています。ただし、PL/SQL トリガの経験がある場合は、Oracle トリガおよび API を介してユーザ独自のサーバ側フィーチャ ルールを定義できます。該当するマニュアルを参照してください。
.NET Developer Kit (およびある程度の.NET の知識と経験)を有するユーザは、独自のクライアント側フィーチャ ルールを作成できます。
フィーチャ ルール環境設定は、インダストリ モデルのシステム テーブル TB_RULE_* に格納されます。フィーチャ ルールは、インダストリ モデルのシステム テーブル TB_RULE_DEF に格納されます。
既存のルールをフィーチャ ルールに割り当てることができます。また、既存のルールのプロパティを編集することができます。
フィーチャ ルールのプロパティ | 説明 |
---|---|
フィーチャ クラス | フィーチャ クラスの名前。 |
[サーバ側 (PL/SQL)] クライアント側(.NET)フィーチャ ルールはサーバ側またはクライアント側とすることができます。 |
該当するタブをクリックします。サーバ側フィーチャ ルールのみを定義できます。 |
[適用されるルール ベース] | フィーチャ クラスに現在割り当てられているフィーチャ ルールがリストされます。割り当て済みのフィーチャ ルールはシステム テーブルTB_RULE_BASE に格納されています。 TB_RULE_FCLASSTYPE テーブルは、フィーチャ クラス タイプで使用可能なフィーチャ ルールを定義します。例: 長さの計算は LineString フィーチャ クラスには有効ですが、ポイント フィーチャ クラスには有効ではありません。 |
[優先度] | フィーチャ ルールの実行順序を定義します。低い優先度を持つフィーチャ ルールは、高い値を持つルールよりも前に実行されます。 例: 面積を計算する前にフィーチャのジオメトリを検証します。 上ボタンと下ボタンを使用して順序を変更し、優先度を変更します。 |
[ルール ベースの定義] | 現在のフィーチャ クラスで使用できるすべてのフィーチャ ルール(TB_RULE_DEF)およびルール グループ(TB_RULE_GROUP)をリストします。 グループを選択した場合、含まれるすべてのルールが[適用されるルール ベース]リストに追加されます。 注: グループに属していないフィーチャ ルールのみを個別に使用できます。
|
[グループを新規作成] | グループは、1 つの前のルールおよび 1 つの後のルールなど、その他のルールを定義する複数のフィーチャ ルールを含むことができます。 サーバ側のルールは Oracle トリガ制限に従う必要があります。特に、行トリガは、変更された行を除きジョブのテーブルをクエリーまたは変更できません。このため、ほとんどのサーバ側ルールはルールのグループとして実装されます。フィーチャ ルールのグループは、変更されたフィーチャの ROWID を一時テーブルに挿入する、行の前アクション ルール、および実際の作業を実行している後アクション ステートメント ルールで構成されています。 フィーチャ ルールを追加できるのは、フィーチャ ルールが別のルール グループに属していない場合のみです。また、システム フィーチャ ルールを新しい顧客のルール グループに追加することはできません。 |
イベント | フィーチャ ルールが適用されるイベント。 |
BI | 挿入前 |
BU | 更新前 |
BD[方位/距離] | 削除前 |
AI | 挿入後 |
AU | 更新後 |
AD[角度/距離] | 削除後 |
このワークフローの手順: