DuplicateTemplate - スコープ指定

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:48分
  • DuplicateTemplate API は、各メソッドに一連の検証を適用することで、ユーザーが重複排除テンプレートとやり取りするためのメソッドを提供します。

    重複排除タスクの修正は、個別に処理する場合、望ましい時間よりも時間がかかることがあります。重複テンプレートを使用すると、一連の重複タスクをグループ化してまとめて実行できます。DuplicateTemplate API を使用して、重複排除テンプレートを作成して使用します。この API は sn_cmdb 名前空間で実行され、アクセスするには cmdb_dedup_admin ロールが必要です。

    インスタンスは、識別および調整中に重複した構成アイテム (CI) を検出すると、レビューと修正のために重複 CI の各セットを重複排除タスクにグループ化します。重複排除タスクは、すべての重複 CI のリストなど、重複に関する詳細を提供します。詳細については、「Duplicate CIs remediation」を参照してください。

    関連項目:IdentificationEngine - スコープ指定

    テンプレートのライフサイクル
    1. CreateTemplate() メソッドを使用して、ドラフトステータスのテンプレートを作成します。
      テンプレートを取得または更新するには、次の方法を使用できます。
    2. テンプレートをドラフトから公開ステータスに移行するには、 publishTemplate() メソッドを使用します。
      注:
      unPublishTemplate() メソッドを使用して、公開されたテンプレートをドラフトステータスに戻し、テンプレートを更新します。
    3. オプション。CMDBDuplicateTemplateUtil スクリプトインクルードを使用して、タスクを追加または削除します。
    4. テンプレートを実行するには、 runTemplate() メソッドを使用します。

      実行中のタスクをキャンセルするには、 requestCancellation() メソッドを使用します。

    5. テンプレートが不要になった場合は、 retireTemplate() メソッドを使用してテンプレートを廃止できます。
    テンプレートを使用した単一タスクの修正
    テンプレートを実行せずに 1 つのタスクを修正するには、重複排除タスクをプレビューして修正します。
    1. previewTemplate() メソッドを使用して、テンプレートを使用して単一タスクの修正をプレビューします。
    2. remediateTask() メソッドを使用して、テンプレートで重複排除タスクを修正します。

    DuplicateTemplate - canAddTasksToTemplate(配列 taskIds, 文字列 templatId)

    指定されたタスクのリストをテンプレートに追加できるかどうかを確認します。

    タスクがテンプレートへの追加に適しているかどうかを判断するには、この方法を使用します。たとえば、指定したテンプレートはアプリケーションサーバー Tomcat 用に作成されていても、指定した重複排除タスクは Linux サーバー用に作成されている場合があります。これらのタスクには一致するテンプレートクラスがないため、テンプレートに追加できません。

    表 : 1. パラメーター
    名前 タイプ 説明
    taskIds アレイ テンプレートに追加する重複排除タスクのsys_idsアレイ。
    template_id 文字列 重複調整テンプレート [reconcile_duplicate_template] テーブルにリストされているテンプレートのSys_id。
    表 : 2. 返される内容
    タイプ 説明
    オブジェクト 追加、スキップ、または失敗できるタスクを含む結果オブジェクト。
    {
      "success": [
        "<task_id_1>",
        "<task_id_2>",
        "<task_id_3>"
      ],
      "failed": [
        "<task_id_4>"
      ],
      "skipped": [
        "<task_id_5>"
      ]
    }
    failed タスクがテンプレートと互換性があるかどうかの確認中にエラーが発生しました。「Detecting duplicate CIs」も参照してください。
    スキップ 一致するテンプレートクラスがないため、タスクに互換性がないため、タスクはスキップされました。
    正常終了 タスクはテンプレートクラスと一致し、テンプレートに追加できます。

    次の例は、テンプレートに追加できるタスクを確認する方法を示しています。

    var taskIds = [];
    taskIds.push(<task_id_1>);
    taskIds.push(<task_id_2>);
    taskIds.push(<task_id_3>);
    
    var result = sn_cmdb.DuplicateTemplate.canAddTasksToTemplate(taskIds, <template_id>);
    
    gs.info('Success:' + result.success);
    gs.info('Failed:' + result.failed);
    gs.info('Skipped:' + result.skipped);

    出力:

    Success: <task_id_1>
    Failed: <task_id_2>
    Skipped: <task_id_3>

    DuplicateTemplate - createTemplate (オブジェクトテンプレート)

    ドラフトステータスで重複排除テンプレートを作成します。

    表 : 3. パラメーター
    名前 タイプ 説明
    テンプレート オブジェクト テンプレートを作成するためのさまざまなオプションを含むテンプレートオブジェクト。
    {
      "allow_master_ci_null_update": Boolean,
      "allow_null_attribute_update": Boolean,
      "description": "String",
      "duplicate_ci_action": "String",
      "duplicate_ci_updates": [Array],
      "master_ci_condition": "String",
      "master_ci_option": "String",
      "merge_related_items": "String",
      "merge_related_items_condition": [Array],
      "merge_relations_condition": "String",
      "merge_relations": "String",
      "most_related_items_merge_attributes": "String",
      "most_relations_merge_attributes": "String",
      "name": "String",
      "newest_updated_merge_attributes": "String",
      "oldest_created_merge_attributes": "String",
      "table": "String",
      "task_conditions": "String"
    }
    template.allow_null_attribute_update ブーリアン オプション。重複排除タスク内の CI の属性競合を解決するときに、メイン CI 属性が重複 CI の null 値で更新されるかどうかを示すフラグ。
    有効な値:
    • true:メイン CI 属性は、重複 CI の null 値で更新されます。
    • false:メイン CI 属性は重複 CI の null 値で更新されません。

    デフォルト:False

    template.allow_master_ci_null_update ブーリアン オプション。メイン CI 値が null の場合にのみ、重複 CI からの更新が含まれます。

    メイン CI 値が null の場合に、重複 CI からの更新のみを含めるかどうかを示すフラグ。

    有効な値:
    • true:メイン CI 値が null の場合にのみ、重複 CI からの更新を含めます。
    • false:すべての重複 CI からの更新を含めます。

    デフォルト:False

    template.description 文字列 オプション。テンプレートに関する詳細情報を保存するための説明。
    template.duplicate_ci_action 文字列 オプション。重複 CI を削除するか、一意のカスタム値で更新するかを指定します。
    選択可能なオプション:
    • 削除
    • 更新 ( duplicate_ci_updates指定が必要)
    template.duplicate_ci_updates アレイ duplicate_ci_actionの設定が更新でない限り、オプションです。重複 CI 値の更新方法を指定するオブジェクトのアレイ。
    [
      {
        "element": "String",
        "element_label": "String",
        "value": "String",
        "display": "String"
      }
    ]
    template.duplicate_ci_updates.element 文字列 参照フィールドのシステム辞書名。
    template.duplicate_ci_updates.element_label 文字列 参照フィールドに表示されるラベル。
    template.duplicate_ci_updates.value 文字列 参照フィールドの値、つまり参照フィールドの内容。
    template.duplicate_ci_updates.display 文字列 参照フィールドの表示値。
    template.master_ci_option 文字列 オプション。このテンプレートを適用するときに、重複排除タスクに対してメイン CI を選択する方法を指定します。
    選択可能なオプション:
    • 条件付き ( master_ci_condition指定必須)
    • most_related_items - 最も関連性の高いアイテムを持つ CI からメイン CI に結合される属性。
    • most_relations - メイン CI との関係が最も多い CI から結合される属性。
    • newest_created - 最後に更新された CI からメイン CI に結合される分離された属性。
    • oldest_created - 最も古く作成された CI からメイン CI に結合されるカンマ区切りの属性。
    template.master_ci_条件 文字列 オプション ( master_ci_option の値が 条件付きの場合は必須)。メイン CI の選択方法を指定するエンコードされたクエリ。クエリに一致する CI が複数ある場合、またはクエリに一致する CI がない場合、メソッドは最後に更新された CI をメイン CI として選択します。エンコードされたクエリがテンプレートテーブルに対して評価されます。このテーブルは table プロパティで識別されます。

    詳しくは、 エンコード されたクエリ文字列 を参照してください。

    template.merge_relations 文字列 オプション。このテンプレートを適用するときに、重複排除タスク内の重複 CI の関係を結合する方法を指定します。
    選択可能なオプション:
    • すべて
    • 条件付きの
    • なし
    template.merge_relations 文字列 オプション。このテンプレートを適用するときに、重複排除タスク内の重複 CI の関係を結合する方法を指定します。
    選択可能なオプション:
    • すべて
    • 条件付きの
    • なし
    template.merge_relations_condition 文字列 オプション ( merge_relations の値が 条件付きの場合は必須)。重複 CI のすべての関係を結合するか、まったく結合しないかを指定するエンコードされたクエリ。クエリは、重複排除タスクに対して選択されたメイン CI で評価されます。クエリが true を返す場合、すべての関係が結合されます。false の場合、関係は結合されません。

    エンコードされたクエリがテンプレートテーブルに対して評価されます。このテーブルは table プロパティで識別されます。

    詳しくは、 エンコード されたクエリ文字列 を参照してください。

    template.merge_related_items 文字列 オプション。このテンプレートを適用するときに、重複排除タスク内の重複 CI のどの関連テーブルをメイン CI に結合するかを指定します。Remediate a de-duplication task (legacy) () も参照。
    選択可能なオプション:
    • all_available – デフォルトの関連テーブルと、テンプレートを介して修正された重複排除タスクの重複 CI を参照するすべての関連テーブルが含まれます。
    • 条件付きの
    • default – 重複 CI レメディエーターのデフォルト関連アイテムモジュールによって提供される関連エントリが含まれます。
    • なし
    template.merge_related_items_condition アレイ オプション。関連エントリごとにエンコードされたクエリがある関連エントリのリスト。各クエリーは、タスクに対して選択されたメイン CI で評価されます。クエリーが true を返した場合、重複排除タスクの修正中に関連エントリーが結合されます。false の場合、関連エントリは結合されません。
    "merge_related_items_condition": [
      {
        "related_entry": "String",
        "condition": "String"
      }
    ]

    詳しくは、 エンコード されたクエリ文字列 を参照してください。

    template.most_relations_merge_attributes 文字列 オプション。メイン CI との関係が最も大きい CI から結合されるカンマ区切り属性。
    template.most_related_items_merge_attributes 文字列 オプション。最も関連性の高いアイテムを持つ CI からメイン CI に結合されるカンマ区切り属性。
    template.name 文字列 テンプレートの名前。
    template.newest_updated_merge_attributes 文字列 オプション。最後に更新された CI からメイン CI に結合されるカンマ区切りの属性。
    template.oldest_created_merge_attributes 文字列 オプション。最も古く作成された CI からメイン CI に結合されるカンマ区切りの属性。
    template.table 文字列 テンプレートが作成されるテーブル。
    template.task_conditions 文字列 オプション。テンプレートの実行時に評価されるエンコードされたクエリ。このクエリは、重複タスク調整データ [reconcile_duplicate_task_data] テーブルで評価されます。このクエリから返されたすべてのタスクが、テンプレート評価時に考慮されます。
    注:
    タスクがクエリの一部として返された場合でも、テンプレートの実行によってタスクが処理されるとは限りません。その他の要因により、テンプレートの処理中にタスクがスキップされる可能性があります。

    詳しくは、 エンコード されたクエリ文字列 を参照してください。

    表 : 4. 返される内容
    タイプ 説明
    文字列 重複テンプレートの調整 [reconcile_duplicate_template] テーブルで作成されたテンプレートのSys_id。

    次の例は、重複排除テンプレートを作成する方法を示しています。

    var template = {
      "name": "Test Windows Template",
      "table": "cmdb_ci_win_server",
      "description": "This is a Windows server template",
      "master_ci_option": "oldest_created",
      "master_ci_condition": "",
      "allow_null_attribute_update": false,
      "allow_master_ci_null_update": false,
      "oldest_created_merge_attributes": "serial_number,os_version",
      "merge_relations": "all",
      "merge_relations_condition": "",
      "merge_related_items": "conditional",
      "merge_related_items_condition": [
        {
          "related_entry": "change_request.cmdb_ci",
          "condition": "ramCONTAINS1024"
        },
        {
          "related_entry": "incident.cmdb_ci",
          "condition": "os_versionCONTAINSWindows"
        }
      ],
      "duplicate_ci_action": "delete",
      "duplicate_ci_updates":   [{
        "element": "ram",
        "element_label": "RAM (MB)",
        "value": "1024",
        "display": "1024"
      }],
      "task_conditions": "category=attribute^key=serial_number^value=E2BX1^EQ"
    };
    
    var templateId = sn_cmdb.DuplicateTemplate.createTemplate(template);
    
    gs.info(templateId);

    出力:

    8dfcd36e042b2510f877c1665753a485

    DuplicateTemplate - getTemplate(文字列 templateId)

    テンプレートオブジェクトを取得します。

    表 : 5. パラメーター
    名前 タイプ 説明
    template_id 文字列 重複調整テンプレート [reconcile_duplicate_template] テーブルにリストされているテンプレートのSys_id。
    表 : 6. 返される内容
    タイプ 説明
    オブジェクト テンプレートを作成するためのさまざまなオプションを含むテンプレートオブジェクト。
    {
      "allow_master_ci_null_update": Boolean,
      "allow_null_attribute_update": Boolean,
      "description": "String",
      "duplicate_ci_action": "String",
      "duplicate_ci_updates": [Array],
      "master_ci_condition": "String",
      "master_ci_option": "String",
      "merge_related_items": "String",
      "merge_related_items_condition": [Array],
      "merge_relations_condition": "String",
      "merge_relations": "String",
      "most_related_items_merge_attributes": "String",
      "most_relations_merge_attributes": "String",
      "name": "String",
      "newest_updated_merge_attributes": "String",
      "oldest_created_merge_attributes": "String",
      "table": "String",
      "task_conditions": "String"
    }
    <Object>.allow_null_ attribute_update 重複排除タスク内の CI の属性競合を解決するときに、メイン CI 属性が重複 CI の null 値で更新されるかどうかを示すフラグ。
    有効な値:
    • true:メイン CI 属性は、重複 CI の null 値で更新されます。
    • false:メイン CI 属性は重複 CI の null 値で更新されません。

    データタイプ:ブーリアン

    <Object>.allow_master_ci_ null_update メイン CI 値が null の場合にのみ、重複 CI からの更新が含まれます。
    有効な値:
    • true:メイン CI 値が null の場合にのみ、重複 CI からの更新を含めます。
    • false:すべての重複 CI からの更新を含めます。

    データタイプ:ブーリアン

    <Object>。形容 テンプレートに関する詳細情報を保存するための説明。

    データタイプ:文字列

    <Object>.duplicate_ ci_action 重複 CI を削除するか、一意のカスタム値で更新するかを指定します。
    選択可能なオプション:
    • 削除
    • 更新 ( duplicate_ci_updates指定が必要)

    データタイプ:文字列

    <Object>.duplicate_ ci_updates 重複 CI 値の更新方法を指定するオブジェクトのアレイ。
    [
      {
        "element": "String",
        "element_label": "String",
        "value": "String",
        "display": "String"
      }
    ]

    データタイプ: オブジェクト

    <Object>.duplicateCIUpdates.element 参照フィールドのシステム辞書名。

    データタイプ:文字列

    <Object>.duplicateCIUpdates.element_label 参照フィールドに表示されるラベル。

    データタイプ:文字列

    <Object>.duplicateCIUpdates.value 参照フィールドの値、つまり参照フィールドの内容。

    データタイプ:文字列

    <Object>.duplicateCIUpdates.display 参照フィールドの表示値。

    データタイプ:文字列

    <Object>.master_ci_オプション このテンプレートを適用するときに、重複排除タスクに対してメイン CI を選択する方法を指定します。
    選択可能なオプション:
    • 条件付き ( master_ci_condition指定必須)
    • most_related_items - 最も関連性の高いアイテムを持つ CI からメイン CI に結合される属性。
    • most_relations - メイン CI との関係が最も多い CI から結合される属性。
    • newest_created - 最後に更新された CI からメイン CI に結合される分離された属性。
    • oldest_created - 最も古く作成された CI からメイン CI に結合されるカンマ区切りの属性。

    データタイプ:文字列

    <Object>.merge_relations このテンプレートを適用するときに、重複排除タスク内の重複 CI の関係を結合する方法を指定します。
    選択可能なオプション:
    • すべて
    • 条件付きの
    • なし

    データタイプ:文字列

    <Object>.merge_related_items このテンプレートを適用するときに、重複排除タスク内の重複 CI のどの関連テーブルをメイン CI に結合するかを指定します。Remediate a de-duplication task (legacy) () も参照。
    選択可能なオプション:
    • all_available – デフォルトの関連テーブルと、テンプレートを介して修正された重複排除タスクの重複 CI を参照するすべての関連テーブルが含まれます。
    • 条件付きの
    • default – 重複 CI レメディエーターのデフォルト関連アイテムモジュールによって提供される関連エントリが含まれます。
    • なし

    データタイプ:文字列

    <Object>.merge_related_items_条件 関連エントリごとにエンコードされたクエリがある関連エントリのリスト。各クエリーは、タスクに対して選択されたメイン CI で評価されます。クエリーが true を返した場合、重複排除タスクの修正中に関連エントリーが結合されます。false の場合、関連エントリは結合されません。

    詳しくは、 エンコード されたクエリ文字列 を参照してください。

    データタイプ:アレイ

    <Object>.most_relations_ merge_attributes メイン CI との関係が最も大きい CI から結合されるカンマ区切り属性。

    データタイプ:文字列

    <Object>.most_related_items_ merge_attributes 最も関連性の高いアイテムを持つ CI からメイン CI に結合されるカンマ区切り属性。

    データタイプ:文字列

    <Object>.name テンプレートの名前。

    データタイプ:文字列

    <Object>.newest_updated_ merge_attributes 最後に更新された CI からメイン CI に結合されるカンマ区切りの属性。

    データタイプ:文字列

    <Object>.oldest_created_ merge_attributes 最も古く作成された CI からメイン CI に結合されるカンマ区切りの属性。

    データタイプ:文字列

    <Object>.table テンプレートが作成されるテーブル。

    データタイプ:文字列

    <Object>.task_condition_table タスク条件のテーブル、つまり重複タスクデータの調整 [reconcile_duplicate_task_data] テーブルの場所。値は変更されることはなく、テーブルは内部使用のみを目的としています。

    データタイプ:文字列

    <Object>.task_conditions テンプレートの実行時に評価されるエンコードされたクエリ。このクエリは、重複タスク調整データ [reconcile_duplicate_task_data] テーブルで評価されます。このクエリから返されたすべてのタスクが、テンプレート評価時に考慮されます。
    注:
    タスクがクエリの一部として返された場合でも、テンプレートの実行によってタスクが処理されるとは限りません。その他の要因により、テンプレートの処理中にタスクがスキップされる可能性があります。

    詳しくは、 エンコード されたクエリ文字列 を参照してください。

    データタイプ:文字列

    次の例は、テンプレートを取得する方法を示しています。

    var template = sn_cmdb.DuplicateTemplate.getTemplate('<template_id>');
    gs.info(JSON.stringify(template));

    出力:

    {
      "most_relations_merge_attributes": "",
      "task_conditions": "category=attribute^key=serial_number^value=E2BX1^EQ",
      "duplicate_ci_updates": "org.mozilla.javascript.NativeArray@5d3b19ef",
      "description": "This is a Windows server template",
      "master_ci_option": "oldest_created",
      "merge_related_items": "conditional",
      "duplicate_ci_action": "delete",
      "newest_updated_merge_attributes": "",
      "merge_related_items_condition": [
        {
          "condition": "os_versionCONTAINSWindows",
          "related_entry": "incident.cmdb_ci"
        },
        {
          "condition": "ramCONTAINS1024",
          "related_entry": "change_request.cmdb_ci"
        }
      ],
      "most_related_items_merge_attributes": "",
      "merge_relations": "all",
      "task_condition_table": "reconcile_duplicate_task_data",
      "name": "Test Windows Template",
      "allow_null_attribute_update": false,
      "table": "cmdb_ci_win_server",
      "allow_master_ci_null_update": false,
      "oldest_created_merge_attributes": "serial_number,os_version"
    }

    DuplicateTemplate - previewTemplate(文字列 templateId, 文字列 taskId)

    さまざまなテンプレートオプションが重複排除タスクにどのように適用され、どのように修正されるかを示すプレビューを生成します。

    このメソッドは、テンプレートを使用してタスクのプレビューを生成する前に、必要なすべての属性を検証します。テンプレートは、必要な属性を指定せずに作成または更新できます。重複排除タスクをプレビューするには、必要な属性を指定する必要があります。

    次の属性が必要です。
    • duplicate_ci_action
    • master_ci_option
    • merge_related_items
    • merge_relations
    • name
    • テーブル
    注:
    この方法ではすべての属性が検証されますが、プレビューではテンプレートが公開済み状態である必要はありません。

    重複排除タスクを修正するには、 remediateTask() メソッドを使用します。

    表 : 7. パラメーター
    名前 タイプ 説明
    template_id 文字列 重複調整テンプレート [reconcile_duplicate_template] テーブルにリストされているテンプレートのSys_id。
    taskId 文字列 重複修復タスク [reconcile_duplicate_task] テーブルにリストされている重複排除タスクのSys_id。
    表 : 8. 返される内容
    タイプ 説明
    オブジェクト テンプレートを使用して重複排除タスクを修正する方法を示す値を含むプレビューオブジェクト。
    {
      "allClassCIMap": {Object},
      "duplicateCIAction": "String",
      "duplicateCIUpdates": [Array],
      "masterCI": "String",
      "mergeRelations": Boolean,
      "relatedTablesMerged": [Array],  
      "resolvedFieldCIMap": [Array],
      "taskId": "String",
      "tooManyDuplicates": Boolean
    }
    <Object>.allClassCIMap CI クラス別にグループ化された、重複排除タスク内のsys_ids CI のリスト。cmdb_ci_computer など。
    "allClassCIMap": {
      "<ci_class_name>": [
        "<ci_sys_id_1>",
        "<ci_sys_id_2>"
      ]
    }

    データタイプ: オブジェクト

    <Object>.duplicateCIAction 重複 CI を削除するか、一意のカスタム値で更新するかを指定します。
    選択可能なオプション:
    • 削除
    • 更新 ( duplicate_ci_updates指定が必要)

    データタイプ:文字列

    <Object>.duplicateCIUpdates 重複 CI 値の更新方法を指定するオブジェクトのアレイ。
    [
      {
        "element": "String",
        "element_label": "String",
        "value": "String",
        "display": "String"
      }
    ]

    データタイプ:アレイ

    <Object>.duplicateCIUpdates.element 参照フィールドのシステム辞書名。

    データタイプ:文字列

    <Object>.duplicateCIUpdates.element_label 参照フィールドに表示されるラベル。

    データタイプ:文字列

    <Object>.duplicateCIUpdates.value 参照フィールドの値、つまり参照フィールドの内容。

    データタイプ:文字列

    <Object>.duplicateCIUpdates.display 参照フィールドの表示値。

    データタイプ:文字列

    <Object>.masterCI メイン CI として選択された CI のSys_id。

    データタイプ:文字列

    <Object>.mergeRelations このテンプレートを適用するときに、重複排除タスク内の重複 CI の関係を結合する方法を指定します。
    選択可能なオプション:
    • すべて
    • 条件付きの
    • なし

    データタイプ:文字列

    <Object>.relatedTablesMerged このテンプレートを適用するときに、重複排除タスク内の重複 CI のどの関連テーブルをメイン CI に結合するかを指定します。Remediate a de-duplication task (legacy) () も参照。
    選択可能なオプション:
    • all_available – デフォルトの関連テーブルと、テンプレートを介して修正された重複排除タスクの重複 CI を参照するすべての関連テーブルが含まれます。
    • 条件付きの
    • default – 重複 CI レメディエーターのデフォルト関連アイテムモジュールによって提供される関連エントリが含まれます。
    • なし

    データタイプ:アレイ

    <Object>.resolvedFieldCIMap 重複 CI からメイン CI に結合される要素のアレイ。
    "resolvedFieldCIMap": [
      {
        "element": "String",
        "sys_id": "String"
      }
    ]

    データタイプ:アレイ

    <Object>.resolvedFieldCIMap です。要素 重複 CI からメイン CI に結合される要素の名前。

    データタイプ:文字列

    <Object>.resolvedFieldCIMap です。sys_id 重複 CI からメイン CI に結合される要素のSys_id。

    データタイプ:文字列

    <Object>.taskId 重複修復タスク [reconcile_duplicate_task] テーブルにリストされている重複排除タスクのSys_id。

    データタイプ:文字列

    <Object>.tooManyDuplicates タスクの CI が最大数を超えているかどうかを示すフラグ。しきい値は、システムプロパティ glide.duplicate_ci_ remediator.max.cis の値 (デフォルト値は 1000 CI) を比較することによって決定されます。
    有効な値:
    • true:CI のタスク数が CI の最大数を超えています。
    • false:CI のタスク数は CI の最大数を超えません。

    データタイプ:ブーリアン

    次の例は、指定したテンプレートの重複排除修正のプレビューを取得する方法を示しています。

    var preview = sn_cmdb.DuplicateTemplate.previewTemplate("<template_id>", "<task_id>");
    gs.info(JSON.stringify(preview));

    出力:

    {
      "taskId": "<task_id>",
      "masterCI": "<ci_sys_id_1>",
      "allClassCIMap": {
        "cmdb_ci_computer": [
          "<ci_sys_id_1>",
          "<ci_sys_id_2>"
        ]
      },
      "resolvedFieldCIMap": [
        {
          "element": "ram",
          "sys_id": "<ci_sys_id_2>"
        },
        {
          "element": "os_version",
          "sys_id": "<ci_sys_id_2>"
        }
      ],
      "mergeRelations": true,
      "relatedTablesMerged": [
        "incident.cmdb_ci",
        "change_request.cmdb_ci"
      ],
      "duplicateCIAction": "delete",
      "duplicateCIUpdates": [],
      "tooManyDuplicates": false
    }

    DuplicateTemplate - publishTemplate(文字列 templateId)

    テンプレートを公開します。成功すると、テンプレートはドラフトから公開済みステータスに移行します。

    このメソッドは、テンプレートを公開する前に必要なすべての属性を検証します。必要な属性を指定せずにテンプレートを作成または更新できますが、テンプレートを公開する前に属性を指定する必要があります。

    次の属性が必要です。
    • duplicate_ci_action
    • master_ci_option
    • merge_related_items
    • merge_relations
    • name
    • テーブル

    公開済みステータスでは、 runTemplate() メソッドを使用してテンプレートを実行できます。

    表 : 9. パラメーター
    名前 タイプ 説明
    template_id 文字列 重複調整テンプレート [reconcile_duplicate_template] テーブルにリストされているテンプレートのSys_id。
    表 : 10. 返される内容
    タイプ 説明
    ブーリアン

    テンプレートが公開されたかどうかを示すフラグ。

    有効な値:
    • true:テンプレートが公開されました。
    • false:テンプレートは公開されませんでした。

    次の例は、テンプレートを公開して結果を表示する方法を示しています。

    var isPublished = sn_cmdb.DuplicateTemplate.publishTemplate('<template_id>');
    gs.info(isPublished);

    出力:

    true

    DuplicateTemplate - remediateTask(文字列 templateId, 文字列 taskId)

    テンプレートを使用して重複排除タスクを修正します。

    テンプレートが公開済みステータスでない場合、テンプレートは実行できず、メソッドは例外をスローします。

    previewTemplate() メソッドを使用して、重複排除タスクの修正方法をプレビューします。

    表 : 11. パラメーター
    名前 タイプ 説明
    template_id 文字列 重複調整テンプレート [reconcile_duplicate_template] テーブルにリストされているテンプレートのSys_id。
    taskId 文字列 重複修復タスク [reconcile_duplicate_task] テーブルにリストされている重複排除タスクのSys_id。
    表 : 12. 返される内容
    タイプ 説明
    文字列 成功した場合、重複排除タスクの修正の結合解決 ID。この結合解決 ID は、重複 CI 修正 [cmdb_duplicate_ci_remediation] テーブル内のレコードのsys_idです。失敗した場合、テンプレートは公開済みステータスではない可能性があります。

    次の例は、重複排除タスクを修正する方法を示しています。

    var mergeResolutionId = sn_cmdb.DuplicateTemplate.remediateTask("<template_id>", "<task_id>");
    gs.info(mergeResolutionId);

    出力:

    <merge_resolution_id>

    DuplicateTemplate - requestCancellation(文字列 templateRunId)

    既存のテンプレートの実行をキャンセルします。

    キャンセル要求は、テンプレートがドラフト、準備完了、または実行中ステータスである場合にのみ、実行に対して行うことができます。

    テンプレート実行キャンセル要求の後、テンプレート実行ステータスは中間ステージの [キャンセル要求済み] に変わります。

    このメソッドを実行しても、準備完了またはドラフトステータスのテンプレートの実行は自動的にキャンセルされません。テンプレートの実行状態は、実行中のタスクがすべて完了するまで [キャンセル] に変わりません。その時点で、修復のためにステージングされている残りのタスクが、キャンセル要求からキャンセルに変わります。

    表 : 13. パラメーター
    名前 タイプ 説明
    templateRunId 文字列 重複排除テンプレートの実行 [reconcile_duplicate_template_run] テーブルにリストされているテンプレート実行のSys_id。
    表 : 14. 返される内容
    タイプ 説明
    文字列

    キャンセル要求が成功したかどうかを示すフラグ。

    有効な値:
    • true:キャンセル要求は成功しました。
    • false:キャンセル要求は成功しませんでした。

    次の例は、テンプレートの実行をキャンセルし、操作が成功したかどうかを表示する方法を示しています。

    var isCancelled = sn_cmdb.DuplicateTemplate.requestCancellation("487c67e2046b2510f877c1665753a4cc");
    gs.info(isCancelled);

    出力:

    true

    DuplicateTemplate - retireTemplate(文字列 templateId)

    テンプレートを廃止します。

    テンプレートが不要になった場合は、この方法を使用してテンプレートを廃止ステータスに移行します。

    テンプレートは廃止できず、メソッドは次の条件で例外をスローします。
    • テンプレートのステータスは [公開済み] です。
    • テンプレートが実行中であるか、実行がスケジュールされています。
    表 : 15. パラメーター
    名前 タイプ 説明
    template_id 文字列 重複調整テンプレート [reconcile_duplicate_template] テーブルにリストされているテンプレートのSys_id。
    表 : 16. 返される内容
    タイプ 説明
    ブーリアン テンプレートが廃止されたかどうかを示すフラグ。
    有効な値:
    • true:テンプレートは廃止されます。
    • false:テンプレートが実行中、実行予定、または公開済みステータスであるため、テンプレートを廃止できませんでした

    次の例は、テンプレートを廃止して結果を表示する方法を示しています。

    var isRetired = sn_cmdb.DuplicateTemplate.retireTemplate(<template_id>);
    gs.info(isRetired);

    出力:

    true

    DuplicateTemplate - runTemplate(文字列 templateId)

    公開済みステータスの重複排除テンプレートの修正実行をスケジュールします。テンプレートは複数回実行できますが、一度にスケジュールできる実行は 1 回のみです。

    テンプレートが公開済みステータスでない場合は実行できず、メソッドは例外をスローします。 テンプレートをドラフトから公開ステータスに移行するには、 publishTemplate() メソッドを使用します。

    実行中のタスクをキャンセルするには、 requestCancellation() メソッドを使用します。

    表 : 17. パラメーター
    名前 タイプ 説明
    template_id 文字列 重複調整テンプレート [reconcile_duplicate_template] テーブルにリストされているテンプレートのSys_id。
    表 : 18. 返される内容
    タイプ 説明
    文字列 重複排除テンプレートの実行 [reconcile_duplicate_template_run] テーブルにリストされている実行されたテンプレートのSys_id。失敗した場合、テンプレートは公開済みステータスではない可能性があります。

    次の例は、公開された重複排除テンプレートの実行をスケジュールする方法を示しています。

    var template = sn_cmdb.DuplicateTemplate.runTemplate('<template_id>');
    gs.info(JSON.stringify(template));

    出力:

    487c67e2046b2510f877c1665753a4cc

    DuplicateTemplate - unPublishTemplate(文字列 templateId)

    テンプレートを非公開にします。

    この方法では、テンプレートが公開済みステータスからドラフトステータスに移行し、テンプレートを更新できるようになります。テンプレートが実行中または実行がスケジュールされている場合、テンプレートを非公開にすることはできません。

    表 : 19. パラメーター
    名前 タイプ 説明
    template_id 文字列 重複調整テンプレート [reconcile_duplicate_template] テーブルにリストされているテンプレートのSys_id。
    表 : 20. 返される内容
    タイプ 説明
    ブーリアン

    テンプレートが正常に非公開になったかどうかを示すフラグ。

    有効な値:
    • true:テンプレートは正常に非公開になりました。
    • false:テンプレートは正常に非公開にされませんでした。テンプレートが実行中であるか、実行がスケジュールされている可能性があります。

    次の例は、テンプレートを非公開にして結果を表示する方法を示しています。

    var isUnPublished = sn_cmdb.DuplicateTemplate.unPublishTemplate(<template_id>);
    gs.info(isUnPublished);

    出力:

    true

    DuplicateTemplate - updateTemplate(文字列 templateId, オブジェクト template)

    ドラフト状況の重複排除テンプレートを更新します。

    表 : 21. パラメーター
    名前 タイプ 説明
    template_id 文字列 重複調整テンプレート [reconcile_duplicate_template] テーブルにリストされているテンプレートのSys_id。
    テンプレート オブジェクト テンプレートを作成するためのさまざまなオプションを含むテンプレートオブジェクト。
    {
      "allow_master_ci_null_update": Boolean,
      "allow_null_attribute_update": Boolean,
      "description": "String",
      "duplicate_ci_action": "String",
      "duplicate_ci_updates": [Array],
      "master_ci_condition": "String",
      "master_ci_option": "String",
      "merge_related_items": "String",
      "merge_related_items_condition": [Array],
      "merge_relations_condition": "String",
      "merge_relations": "String",
      "most_related_items_merge_attributes": "String",
      "most_relations_merge_attributes": "String",
      "name": "String",
      "newest_updated_merge_attributes": "String",
      "oldest_created_merge_attributes": "String",
      "table": "String",
      "task_conditions": "String"
    }
    template.allow_null_attribute_update ブーリアン オプション。重複排除タスク内の CI の属性競合を解決するときに、メイン CI 属性が重複 CI の null 値で更新されるかどうかを示すフラグ。
    有効な値:
    • true:メイン CI 属性は、重複 CI の null 値で更新されます。
    • false:メイン CI 属性は重複 CI の null 値で更新されません。

    デフォルト:False

    template.allow_master_ci_null_update ブーリアン オプション。メイン CI 値が null の場合にのみ、重複 CI からの更新が含まれます。

    メイン CI 値が null の場合に、重複 CI からの更新のみを含めるかどうかを示すフラグ。

    有効な値:
    • true:メイン CI 値が null の場合にのみ、重複 CI からの更新を含めます。
    • false:すべての重複 CI からの更新を含めます。

    デフォルト:False

    template.description 文字列 オプション。テンプレートに関する詳細情報を保存するための説明。
    template.duplicate_ci_action 文字列 オプション。重複 CI を削除するか、一意のカスタム値で更新するかを指定します。
    選択可能なオプション:
    • 削除
    • 更新 ( duplicate_ci_updates指定が必要)
    template.duplicate_ci_updates アレイ duplicate_ci_actionの設定が更新でない限り、オプションです。重複 CI 値の更新方法を指定するオブジェクトのアレイ。
    [
      {
        "element": "String",
        "element_label": "String",
        "value": "String",
        "display": "String"
      }
    ]
    template.duplicate_ci_updates.element 文字列 参照フィールドのシステム辞書名。
    template.duplicate_ci_updates.element_label 文字列 参照フィールドに表示されるラベル。
    template.duplicate_ci_updates.value 文字列 参照フィールドの値、つまり参照フィールドの内容。
    template.duplicate_ci_updates.display 文字列 参照フィールドの表示値。
    template.master_ci_option 文字列 オプション。このテンプレートを適用するときに、重複排除タスクに対してメイン CI を選択する方法を指定します。
    選択可能なオプション:
    • 条件付き ( master_ci_condition指定必須)
    • most_related_items - 最も関連性の高いアイテムを持つ CI からメイン CI に結合される属性。
    • most_relations - メイン CI との関係が最も多い CI から結合される属性。
    • newest_created - 最後に更新された CI からメイン CI に結合される分離された属性。
    • oldest_created - 最も古く作成された CI からメイン CI に結合されるカンマ区切りの属性。
    template.master_ci_条件 文字列 オプション ( master_ci_option の値が 条件付きの場合は必須)。メイン CI の選択方法を指定するエンコードされたクエリ。クエリに一致する CI が複数ある場合、またはクエリに一致する CI がない場合、メソッドは最後に更新された CI をメイン CI として選択します。エンコードされたクエリがテンプレートテーブルに対して評価されます。このテーブルは table プロパティで識別されます。

    詳しくは、 エンコード されたクエリ文字列 を参照してください。

    template.merge_relations 文字列 オプション。このテンプレートを適用するときに、重複排除タスク内の重複 CI の関係を結合する方法を指定します。
    選択可能なオプション:
    • すべて
    • 条件付きの
    • なし
    template.merge_relations 文字列 オプション。このテンプレートを適用するときに、重複排除タスク内の重複 CI の関係を結合する方法を指定します。
    選択可能なオプション:
    • すべて
    • 条件付きの
    • なし
    template.merge_relations_condition 文字列 オプション ( merge_relations の値が 条件付きの場合は必須)。重複 CI のすべての関係を結合するか、まったく結合しないかを指定するエンコードされたクエリ。クエリは、重複排除タスクに対して選択されたメイン CI で評価されます。クエリが true を返す場合、すべての関係が結合されます。false の場合、関係は結合されません。

    エンコードされたクエリがテンプレートテーブルに対して評価されます。このテーブルは table プロパティで識別されます。

    詳しくは、 エンコード されたクエリ文字列 を参照してください。

    template.merge_related_items 文字列 オプション。このテンプレートを適用するときに、重複排除タスク内の重複 CI のどの関連テーブルをメイン CI に結合するかを指定します。Remediate a de-duplication task (legacy) () も参照。
    選択可能なオプション:
    • all_available – デフォルトの関連テーブルと、テンプレートを介して修正された重複排除タスクの重複 CI を参照するすべての関連テーブルが含まれます。
    • 条件付きの
    • default – 重複 CI レメディエーターのデフォルト関連アイテムモジュールによって提供される関連エントリが含まれます。
    • なし
    template.merge_related_items_condition アレイ オプション。関連エントリごとにエンコードされたクエリがある関連エントリのリスト。各クエリーは、タスクに対して選択されたメイン CI で評価されます。クエリーが true を返した場合、重複排除タスクの修正中に関連エントリーが結合されます。false の場合、関連エントリは結合されません。
    "merge_related_items_condition": [
      {
        "related_entry": "String",
        "condition": "String"
      }
    ]

    詳しくは、 エンコード されたクエリ文字列 を参照してください。

    template.most_relations_merge_attributes 文字列 オプション。メイン CI との関係が最も大きい CI から結合されるカンマ区切り属性。
    template.most_related_items_merge_attributes 文字列 オプション。最も関連性の高いアイテムを持つ CI からメイン CI に結合されるカンマ区切り属性。
    template.name 文字列 テンプレートの名前。
    template.newest_updated_merge_attributes 文字列 オプション。最後に更新された CI からメイン CI に結合されるカンマ区切りの属性。
    template.oldest_created_merge_attributes 文字列 オプション。最も古く作成された CI からメイン CI に結合されるカンマ区切りの属性。
    template.table 文字列 テンプレートが作成されるテーブル。
    template.task_conditions 文字列 オプション。テンプレートの実行時に評価されるエンコードされたクエリ。このクエリは、重複タスク調整データ [reconcile_duplicate_task_data] テーブルで評価されます。このクエリから返されたすべてのタスクが、テンプレート評価時に考慮されます。
    注:
    タスクがクエリの一部として返された場合でも、テンプレートの実行によってタスクが処理されるとは限りません。その他の要因により、テンプレートの処理中にタスクがスキップされる可能性があります。

    詳しくは、 エンコード されたクエリ文字列 を参照してください。

    表 : 22. 返される内容
    タイプ 説明
    ブーリアン

    テンプレートが更新されたかどうかを示すフラグ。

    有効な値:
    • true:テンプレートが更新されました。
    • false:テンプレートが更新されました。テンプレートがドラフト (未公開) ステータスではない可能性があります。

    次の例は、既存の重複排除テンプレートのいくつかのプロパティを更新する方法を示しています。

    var template = {
      "name": "Test Windows Template",
      "table": "cmdb_ci_win_server",
      "description": "This is a windows server template",
      "master_ci_option": "newest_updated",
      "master_ci_condition": "",
      "allow_null_attribute_update": false,
      "allow_master_ci_null_update": false,
      "oldest_created_merge_attributes": "",
      "newest_updated_merge_attributes": "ram,cpu_count",
      "most_relations_merge_attributes": "",
      "most_related_items_merge_attributes": "",
      "merge_relations": "all",
      "merge_relations_condition": "",
      "merge_related_items": "conditional",
      "merge_related_items_condition": [
        {
          "related_entry": "change_request.cmdb_ci",
          "condition": "ramCONTAINS1024"
        },
        {
          "related_entry": "incident.cmdb_ci",
          "condition": "os_versionCONTAINSWindows"
        }
      ],
      "duplicate_ci_action": "delete",
      "duplicate_ci_updates": "",
      "task_conditions": "category=attribute^key=serial_number^value=E2BX1^EQ"
    };
    
    sn_cmdb.DuplicateTemplate.updateTemplate(<template_id>, template);

    出力:

    true