非 CMDB テーブルの識別ルールの作成

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:8分
  • サポートされている非 CMDB テーブルで識別および調整エンジン (IRE) 機能を使用するには、最初にテーブルレコードを一意に識別する識別ルールを作成する必要があります。各非 CMDB テーブルは、単一の識別ルールに関連付けることができます。

    始める前に

    必要なロール:itil には読み取りアクセス権があり、itil_admin (itil の上位) にはフルアクセス権があります。

    このタスクについて

    各識別ルールは、テーブルの単一の識別子、1 つ以上の識別子エントリ、および 1 つ以上の関連エントリで構成されます。

    識別ルールを作成する前に、以下のトピックを確認してください。
    識別子エントリを作成するときに、[識別子エントリ] フォームの [検索対象テーブル] フィールドと [基準属性] フィールドを設定して、次のいずれかのオプションを実装できます。
    通常の識別子エントリ
    関連付けられた識別子テーブルから属性を選択できます。
    ルックアップ識別子エントリ
    現在選択されているテーブル以外の関連テーブル (ルックアップテーブル) から属性を選択できます。
    ハイブリッド識別子エントリ
    現在メインで選択されているテーブルおよび別のテーブル (ルックアップテーブル) の両方から属性を選択できます。

    非 CMDB テーブルの場合は、独立した識別ルールのみがサポートされます。

    手順

    1. 次のように移動する。 All (すべて) > 識別/調整 > CI ID.
    2. [識別子] リストビューで、[新規] をクリックします。
    3. 識別子フォームに記入します。
      フィールド 説明
      名前 CI ID の名前。
      適用先 サポートされる非 CMDB テーブル。
      依存なし (Independnt) 識別子が他のレコードとは無関係にレコードを識別できるように指示するには、オンにする必要があります。
    4. [送信] をクリックします。
    5. [識別子] リストビューで、作成した識別子を見つけて開きます。
    6. 識別子フォームで [識別子エントリ] タブを選択し、 [新規] をクリックします。
    7. 識別子エントリフォームに記入します。
      フィールド 説明
      識別子 関連付けられた識別子のテーブルの名前がプリセットされています。
      検索するテーブル

      関連付けられた識別子のテーブルのラベルがプリセットされています。

      作成方法:
      • 通常の識別子エントリ:識別子テーブルに設定し、その同じテーブルから [基準属性] を選択します。
      • ルックアップ識別子エントリ:別のテーブル (ルックアップテーブル) に設定し、そのルックアップテーブルから [基準属性] を選択します。
      • [ハイブリッド識別子] エントリ:別のテーブル (ルックアップテーブル) に設定し、次の手順を実行します。
        • ルックアップテーブルから [基準属性] を選択します。
        • ルールを保存した後、バックグラウンドスクリプトを使用して、現在のテーブルから [ハイブリッドエントリ CI 基準属性]を追加します。詳細については、このタスクの最後にある「次に実行すべきこと」セクションを参照してください。

      ルックアップテーブルには、関連付けられた識別子テーブルへの参照が必要です。

      基準属性 レコードを一意に識別する属性のセット。属性は、現在のクラスまたは親クラスに属することができます。
      注:
      基準属性として参照フィールドを追加することができます。ただし、そのようなフィールドが常に有効であるとは限りません。
      • 参照フィールドには別のテーブル内のレコードを指す sys_id が格納されているため、現在のテーブルに対して (一意性の点で) 弱い条件の属性と見なされます。
      • システムは、参照フィールド内の無効な値を検出し、「不明」に置き換えます。たとえば、無効な Model ID 値は「不明」の値に置き換えられます。また、複数の CI が、「不明」に設定された同じ参照フィールドを持つ場合、これらの CI は重複 CI になります。
      優先度 識別子エントリに適用される優先度。優先度番号の低いルールには高い優先度が指定されます。同一の優先度の識別子エントリは、ランダムに適用されます。

      優先度の数値は間を空けて設定できます。これにより、既存の優先順位を変更せずに、未使用の優先度の数値を新しいエントリにアサインすることができます。

      アクティブ 識別子エントリが有効であることを示します。ルールを適用するには、識別ルール内の少なくとも 1 つの識別子エントリを有効にする必要があります。
      カウントの完全一致を強制します。 ルックアップ識別の場合、レコードをルックアップレコード数の完全一致とのみ照合します。
      強制されると、ペイロード内のレコードのすべてのルックアップアイテムは、ルックアップテーブルに一致するレコードを持っており、これらが同じレコードを参照している必要があります。
      1. テーブルのレコードを参照する入力ペイロードからのすべてのルックアップアイテムがあるレコードのみに一致します。
      2. 複数の一致がある場合は、最も古く作成されたレコードが最終一致として選択されます。
      強制されていない場合、ルックアップテーブルのレコードと一致するペイロード内のレコードのルックアップアイテムが 1 つあれば、一致を考慮するのに十分です。
      1. テーブルのレコードを参照する入力ペイロードからのルックアップアイテムが 1 つ以上あるいずれかのレコードに一致します。
      2. 複数の一致がある場合は、テーブルのレコードを参照する入力ペイロードからのルックアップアイテムが最も多いレコードが選択されます。
      3. 引き続き複数の一致がある場合は、最も古く作成されたレコードが最終一致として選択されます。
      null 属性を許可

      選択すると、少なくとも 1 つの基準属性が null でない場合は、null である基準属性がある場合でも、識別子エントリとの一致を試みます。

      そうでない場合、識別子エントリとの一致を試みるには、すべての基準属性に値が必要です。

      親のルール の代替使用を許可 この識別ルールで一致が見つからない場合にレコードの親テーブルの識別ルールが使用されることを許可します。依存識別ルールにのみ適用されます。

      オプションの条件

      一致するレコードを検索するレコードのセットを絞り込むフィルター。

      glide.identification_engine.enable_identifier_optional_condition システムプロパティが true (デフォルトでは false) に設定されている場合にのみ使用できます。ベースシステムでは、さまざまなクラスの識別子エントリが詳細オプション条件で事前設定されています。このプロパティを true に設定すると、通常の識別子エントリの事前設定された条件がすべて自動的に適用されます。したがって、予期しない動作を防ぐために、このプロパティを true に設定する前に、通常の識別子エントリで事前定義された条件を確認します。

      このプロパティの詳細については、「識別および調整のプロパティ」を参照してください。

      注:
      基準属性に 2 つの属性しかなく、sys_class_name がそのうちの 1 つ (例:[name, sys_class_name]、[ip_address, sys_class_name]) である場合、[null 属性を許可] が有効になっていても他の属性を NULL にすることはできません。この制限は、 sys_class_name が特別なシステム一致属性と見なされるためです。
    8. [送信] をクリックします。
    9. 識別子フォームで [関連エントリ] タブを選択し、[新規] をクリックします。
    10. 関連エントリフォームに記入します。
      表 : 1. 関連エントリフォーム
      フィールド 説明
      識別子 この関連エントリが関連付けられている識別子でプリセットします。
      アクティブ 関連エントリが有効であることを指定するチェック ボックス。
      関連テーブル 一致しているレコードを参照する関連テーブル (ルックアップテーブル)。
      参照フィールド 関連する識別子テーブルへの参照を持つ関連テーブルの参照フィールド。
      基準属性 関連アイテムを一意に識別する属性のセット。属性は、現在のクラスまたは親クラスに属することができます。
      注:
      基準属性として参照フィールドを追加することができます。ただし、そのようなフィールドが常に有効であるとは限りません。
      • 参照フィールドには別のテーブル内のレコードを指す sys_id が格納されているため、現在のテーブルに対して (一意性の点で) 弱い条件の属性と見なされます。
      • システムは、参照フィールド内の無効な値を検出し、「不明」に置き換えます。たとえば、無効な Model ID 値は「不明」の値に置き換えられます。また、複数の CI が、「不明」に設定された同じ参照フィールドを持つ場合、これらの CI は重複 CI になります。

      識別ルールの属性を表示、追加、または削除するには、ロックアイコンをクリックします。

      null 属性を許可 関連テーブルの少なくとも 1 つの基準属性が null でない場合は、null である基準属性がある場合でも、識別子エントリとの一致を試みることを許可します。
      優先度 指定された関連テーブルの関連エントリの優先度。特定の関連テーブルの関連アイテムを照合する際、優先度番号の低いルールには高い優先度が指定されます。同一の優先度を持つ指定された関連テーブルの関連エントリはランダムに適用されます。

      優先度の数値は間を空けて設定できます。これにより、既存の優先順位を変更せずに、未使用の優先度の数値を新しいエントリにアサインすることができます。

      オプションの条件 一致する関連アイテムを検索するレコードのセットを絞り込む条件をフィルタリングします。
    11. [送信] をクリックします。

    次のタスク

    ハイブリッド識別子エントリの [ハイブリッドエントリ CI 基準属性] フィールドに基準属性を追加するには、識別子エントリフォームを使用するのではなく、バックグラウンドスクリプトを使用する必要があります。識別ルールを保存した後、次の場所に移動します: システム定義 > スクリプト - バックグラウンドをクリックし、属性を追加するスクリプトを入力して、[ スクリプトの実行] をクリックします。

    サンプル スクリプト:
    var gr = new GlideRecord('cmdb_identifier_entry');
    // get the identifier entry you want to update
    gr.get('<identifier_entry_sys_id>');
    // set the attributes you want in the hybrid rule in a comma separated list
    // for example: 'name,serial_number'
    gr. hybrid_entry_ci_criterion_attributes='<column_name_1>,<column_name_2>,<etc.>';
    gr.update();

    このプロセスには admin ロールが必要です。