CI 識別および調整のインポートセットへの適用

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む4読むのに数分
  • CMDB 識別および調整プロセスは、インポートセットを使用して CI を CMDB にインポートするときに適用できます。CI の識別では、インポートセットによって生じる可能性がある CMDB 内の重複 CI を防ぐことができます。

    インポートセットを使用して CMDB テーブルを追加すると、インポートされた複数のレコードが既存の CI と同一であるときに不注意で重複 CI が生じることがあります。この重複を最小限に抑えるため、CMDB テーブルに新しいレコードをインポートするときに、インポートセットに CMDB 識別および調整プロセスを適用することができます。

    変換マップ スクリプト

    インポートセットの onBefore 変換マップスクリプトで、次のコードサンプルのように、CMDBTransformUtil API のコールを追加します。
    (function runTransformScript(source, map, log, target) {
    // Call CMDB API to do Identification and Reconciliation of current row
    var cmdbUtil = new CMDBTransformUtil();
    cmdbUtil.identifyAndReconcile(source, map, log);
    ignore = true;
    
    if (cmdbUtil.hasError()) {
            var errorMessage = cmdbUtil.getError();
            log.error(errorMessage);
    } else {
            log.info('IE Output Payload: ' + cmdbUtil.getOutputPayload());
            log.info('Imported CI: ' + cmdbUtil.getOutputRecordSysId());
    }
    
    })(source, map, log, target);

    ignore = true コードフレーズは、Import Sets が識別エンジンによって処理されたレコードと同じレコードを再び作成することを防ぎます。

    プロセス

    識別エンジンは、CMDB に挿入する前に各ソース レコードの識別を実行します。識別エンジンは、レコードが既存の CI の複製であるかどうかを判断し、
    • 重複しない場合:レコードをターゲット テーブルに挿入します。
    • 重複している場合:ソース レコードのデータを使用して、CMDB 内の既存の CI を更新します。

    CMDBTransformUtil API はソースデータを前処理した後、デフォルトでデータソースになるインポートセットと共に入力値を識別エンジンに渡します。CMDBTransformUtil API は、インポートセットがサポートするのと同じ方法で、参照フィールドであるターゲット フィールドをサポートします。また、CMDBTransformUtil API はソース スクリプトもサポートし、ソース スクリプトを評価して識別エンジンに渡されるターゲット値を決定します。詳細については、「フィールドマップの作成」を参照してください。

    インポートセットへの複数のターゲットテーブルの指定

    インポートセット内の各レコードを独自のターゲットテーブルで設定できます。次に、変換されたすべてのレコードを単一のターゲットテーブルに挿入するのではなく、レコードごとに指定された異なるターゲットテーブルにレコードを挿入します。たとえば、インポートセットの一部のレコードをコンピュータークラスに挿入し、その他のレコードをサーバークラスに挿入する必要がある場合に使用します。

    Import Sets を使用してデータをインポートする場合は、次の手順を組み込みます。
    • データソースファイルでターゲットテーブル列を追加します。列ヘッダーにラベルを付けるには「MyTable」などの文字列を使用します。各レコード行に、レコードのターゲットテーブルを「cmdb_ci_computer」などの有効な CMDB クラス名として入力します。
    • [テーブル変換マップ] フォームで [一致フィールドの自動マップ] を実行した後、追加されたターゲットテーブル列のフィールドマップを追加して、クラスと CMDB のターゲットテーブルとの関係を確立します。
      1. [テーブル変換マップ] フォームの [フィールドマップ] 関連リストで [新規] をクリックします。
      2. [ソースフィールド] を、データソースファイルに追加したターゲットテーブル列のヘッダー (「MyTable」など) に設定します。
      3. [ターゲットフィールド][クラス] に設定します。
      4. [送信] をクリックします。

    上記の手順で説明したように、インポートセットを複数のターゲットテーブルで設定すると、[テーブル変換マップ] フォームで指定された [ターゲットテーブル] は使用されません。

    制限

    次の制限が適用されます。
    • インポートセットは、単一の変換マップに関連付ける必要があります。CMDBTransformUtil API のコールを追加している間も、インポートセット用に 1 つの変換マップが存在することを確認してください。
    • CMDBTransformUtil API は、Import Sets とともに使用されるときに必須フィールドに値があるかどうかをチェックしません。enforce mandatory fieldsが変換マップでどのように設定されているかにかかわらず、必須フィールドに値がないとデータのインポートは失敗します。
    • 従属 CI (従属識別ルールを持つ CI) のインポートセットに CI 識別および調整を適用することはできません。