DuplicateTemplate - スコープ指定

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月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 つのタスクを修復するには、重複排除タスクをプレビューして修正します。
    1. previewTemplate() メソッドを使用して、テンプレートを使用した単一タスクの修正をプレビューします。
    2. remediateTask() メソッドを使用して、テンプレートで重複排除タスクを修正します。

    DuplicateTemplate - canAddTasksToTemplate(アレイ taskIds, 文字列 templatId)

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

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

    表 : 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>"
      ]
    }
    失敗 タスクがテンプレートと互換性があるかどうかを確認中にエラーが発生しました。「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(オブジェクト template)

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

    表 : 3. パラメーター
    名前 タイプ 説明
    template オブジェクト テンプレートを作成するためのさまざまなオプションを持つテンプレートオブジェクト。
    {
      "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 を削除するか、一意のカスタム値で更新するかを指定します。
    選択可能なオプション:
    • delete
    • 更新 (指定 duplicate_ci_updatesが必要)
    template.duplicate_ci_updates アレイ 設定が duplicate_ci_actionupdate でない限り、省略可能です。重複 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 を参照する関連テーブルが含まれます。
    • 条件 付き
    • デフォルト - [重複 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 を削除するか、一意のカスタム値で更新するかを指定します。
    選択可能なオプション:
    • delete
    • 更新 (指定 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 を参照する関連テーブルが含まれます。
    • 条件 付き
    • デフォルト - [重複 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
    • table
    注:
    このメソッドはすべての属性を検証しますが、テンプレートがプレビュー用に公開済みステータスである必要はありません。

    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 クラス別にグループ化された、重複排除タスク内の CI sys_idsのリスト。cmdb_ci_computer など。
    "allClassCIMap": {
      "<ci_class_name>": [
        "<ci_sys_id_1>",
        "<ci_sys_id_2>"
      ]
    }

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

    <Object>.duplicateCIAction 重複 CI を削除するか、一意のカスタム値で更新するかを指定します。
    選択可能なオプション:
    • delete
    • 更新 (指定 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 を参照する関連テーブルが含まれます。
    • 条件 付き
    • デフォルト - [重複 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
    • table

    公開済みステータスでは、 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. パラメーター
    名前 タイプ 説明
    テンプレート実行 ID 文字列 重複排除テンプレート実行 [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。
    template オブジェクト テンプレートを作成するためのさまざまなオプションを持つテンプレートオブジェクト。
    {
      "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 を削除するか、一意のカスタム値で更新するかを指定します。
    選択可能なオプション:
    • delete
    • 更新 (指定 duplicate_ci_updatesが必要)
    template.duplicate_ci_updates アレイ 設定が duplicate_ci_actionupdate でない限り、省略可能です。重複 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 を参照する関連テーブルが含まれます。
    • 条件 付き
    • デフォルト - [重複 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