DuplicateTemplate - スコープ指定
DuplicateTemplate API は、各メソッドに一連の検証を強制することで、ユーザーが重複排除テンプレートを操作するためのメソッドを提供します。
重複排除タスクの修正は、個別に処理する場合、望ましいよりも時間がかかる可能性があります。複製テンプレートを使用すると、一連の重複タスクをグループ化して一緒に実行できます。重複排除テンプレートを作成して使用するには、 DuplicateTemplate API を使用します。この API は sn_cmdb 名前空間で実行され、アクセスするには cmdb_dedup_admin ロールが必要です。
インスタンスは、識別および調整中に重複する構成アイテム (CI) を検出すると、重複 CI の各セットをレビューおよび修正のために重複排除タスクにグループ化します。重複排除タスクは、すべての重複 CI のリストを含む、重複に関する詳細を提供します。詳細については、「Duplicate CIs remediation」を参照してください。
関連項目:IdentificationEngine - スコープ指定
- テンプレートライフサイクル
- CreateTemplate() メソッドを使用して、ドラフト状況のテンプレートを作成します。次の方法を使用して、テンプレートを取得または更新できます。
- publishTemplate() メソッドを使用して、テンプレートをドラフトから公開ステータスに移動します。注:unPublishTemplate() メソッドを使用して、公開されたテンプレートをドラフトステータスに戻し、テンプレートを更新します。
- オプション。CMDBDuplicateTemplateUtil スクリプトインクルードを使用して、タスクを追加または削除します。
- runTemplate() メソッドを使用してテンプレートを実行します。
実行中のタスクをキャンセルするには、 requestCancellation() メソッドを使用します。
- テンプレートが不要になった場合は、 retireTemplate() メソッドを使用してテンプレートを廃止できます。
- CreateTemplate() メソッドを使用して、ドラフト状況のテンプレートを作成します。
- テンプレートを使用した単一のタスクの修正
- テンプレートを実行せずに単一のタスクを修正するために、重複排除タスクをプレビューして修正します。
- previewTemplate() メソッドを使用して、テンプレートを使用して単一タスクの修復をプレビューします。
- テンプレートを使用して重複排除タスクを修正するには 、remediateTask() メソッドを使用します。
DuplicateTemplate:canAddTasksToTemplate(アレイ taskIds, 文字列 templatId)
指定されたタスクのリストをテンプレートに追加できるかどうかを確認します。
この方法を使用して、タスクがテンプレートに追加するのに適しているかどうかを判断します。たとえば、指定されたテンプレートはアプリケーションサーバー Tomcat に対して作成されていても、指定された重複排除タスクは Linux サーバーに対して作成される場合があります。これらのタスクには一致するテンプレートクラスがないため、テンプレートに追加できません。
| 名前 | タイプ | 説明 |
|---|---|---|
| taskIds | アレイ | テンプレートに追加する重複排除タスクのsys_idsのアレイ。 |
| template_id | 文字列 | 重複調整テンプレート [reconcile_duplicate_template] テーブルにリストされているテンプレートのSys_id。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 追加、スキップ、または失敗できるタスクを含む結果オブジェクト。 |
| 失敗 | タスクがテンプレートと互換性があるかどうかの確認中にエラーが発生しました。「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 | オブジェクト | テンプレートを作成するためのさまざまなオプションを持つテンプレートオブジェクト。 |
| template.allow_null_attribute_update | ブーリアン | オプション。重複排除タスク内の CI の属性競合を解決するときに、メイン CI 属性が重複 CI の null 値で更新されるかどうかを示すフラグ。 有効な値:
デフォルト値:False |
| template.allow_master_ci_null_update | ブーリアン | オプション。メイン CI 値が null の場合にのみ、重複 CI からの更新が含まれます。 メイン CI 値が null の場合に重複 CI からの更新のみを含めるかどうかを示すフラグ。 有効な値:
デフォルト値:False |
| template.description | 文字列 | オプション。テンプレートに関する詳細情報を保存するための説明。 |
| template.duplicate_ci_action | 文字列 | オプション。重複 CI を削除するか、一意のカスタム値で更新するかを指定します。 選択可能なオプション:
|
| template.duplicate_ci_updates | アレイ | duplicate_ci_actionの設定が更新されている場合を除き、オプションです。重複 CI 値の更新方法を指定するオブジェクトのアレイ。 |
| 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 を選択する方法を指定します。 選択可能なオプション:
|
| 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 (manual)」も参照してください。 選択可能なオプション:
|
| template.merge_related_items_condition | アレイ | オプション。各関連エントリのエンコードされたクエリを含む関連エントリのリスト。各クエリーは、タスクに対して選択されたメイン CI で評価されます。クエリーが true を返した場合、重複排除タスクの修正中に関連エントリーが結合されます。false の場合、関連エントリーは結合されません。詳細については、「 エンコードされたクエリ文字列」 を参照してください。 |
| 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] テーブルで評価されます。このクエリーから返されたすべてのタスクは、テンプレートの評価時に考慮されます。 注: タスクがクエリの一部として返された場合でも、テンプレートの実行でタスクが処理されることは保証されません。他の要因により、テンプレートの処理中にタスクがスキップされる可能性があります。 詳細については、「 エンコードされたクエリ文字列」 を参照してください。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 重複調整テンプレート [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)
テンプレートオブジェクトを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| template_id | 文字列 | 重複調整テンプレート [reconcile_duplicate_template] テーブルにリストされているテンプレートのSys_id。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | テンプレートを作成するためのさまざまなオプションを持つテンプレートオブジェクト。 |
| <Object>.allow_null_ attribute_update | 重複排除タスク内の CI の属性競合を解決するときに、メイン CI 属性が重複 CI の null 値で更新されるかどうかを示すフラグ。 有効な値:
データタイプ:ブーリアン |
| <Object>.allow_master_ci_ null_update | メイン CI 値が null の場合にのみ、重複 CI からの更新が含まれます。 有効な値:
データタイプ:ブーリアン |
| <Object>.description | テンプレートに関する詳細情報を保存するための説明。 データタイプ:文字列 |
| <Object>.duplicate_ ci_action | 重複 CI を削除するか、一意のカスタム値で更新するかを指定します。 選択可能なオプション:
データタイプ:文字列 |
| <Object>.duplicate_ ci_updates | 重複 CI 値の更新方法を指定するオブジェクトのアレイ。データタイプ: オブジェクト |
| <Object>.duplicateCIUpdates.element | 参照フィールドのシステムディクショナリ名。 データタイプ:文字列 |
| <Object>.duplicateCIUpdates.element_label | 参照フィールドに表示されるラベル。 データタイプ:文字列 |
| <Object>.duplicateCIUpdates.value | 参照フィールドの値、つまり参照フィールドの内容。 データタイプ:文字列 |
| <Object>.duplicateCIUpdates.display | 参照フィールドの表示値。 データタイプ:文字列 |
| <Object>.master_ci_オプション | このテンプレートを適用するときに重複排除タスクに対してメイン CI を選択する方法を指定します。 選択可能なオプション:
データタイプ:文字列 |
| <Object>.merge_relations | このテンプレートを適用するときに、重複排除タスク内の重複 CI の関係をどのように結合するかを指定します。 選択可能なオプション:
データタイプ:文字列 |
| <Object>.merge_related_items | このテンプレートを適用するときに、重複排除タスク内の重複 CI のどの関連テーブルをメイン CI に結合するかを指定します。「 Remediate a de-duplication task (manual)」も参照してください。 選択可能なオプション:
データタイプ:文字列 |
| <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() メソッドを使用して重複排除タスクを修復します。
| 名前 | タイプ | 説明 |
|---|---|---|
| template_id | 文字列 | 重複調整テンプレート [reconcile_duplicate_template] テーブルにリストされているテンプレートのSys_id。 |
| taskId | 文字列 | 重複修復タスク [reconcile_duplicate_task] テーブルにリストされている重複排除タスクのSys_id。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | テンプレートを使用して重複排除タスクを修正する方法を示す値を含むオブジェクトをプレビューします。 |
| <Object>.allClassCIMap | 重複排除タスク内の CI の sys_ids のリスト、 CI クラス別にグループ化されます。cmdb_ci_computer など。データタイプ: オブジェクト |
| <Object>.duplicateCIAction | 重複 CI を削除するか、一意のカスタム値で更新するかを指定します。 選択可能なオプション:
データタイプ:文字列 |
| <Object>.duplicateCIUpdates | 重複 CI 値の更新方法を指定するオブジェクトのアレイ。データタイプ:アレイ |
| <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 (manual)」も参照してください。 選択可能なオプション:
データタイプ:アレイ |
| <Object>.resolvedFieldCIMap | 重複 CI からメイン CI に結合される要素のアレイ。データタイプ:アレイ |
| <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) の値を比較することによって決定されます。 有効な値:
データタイプ:ブーリアン |
次の例は、指定したテンプレートの重複排除修正のプレビューを取得する方法を示しています。
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() メソッドを使用してテンプレートを実行できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| template_id | 文字列 | 重複調整テンプレート [reconcile_duplicate_template] テーブルにリストされているテンプレートのSys_id。 |
| タイプ | 説明 |
|---|---|
| ブーリアン | テンプレートが公開されたかどうかを示すフラグ。 有効な値:
|
次の例は、テンプレートを公開して結果を表示する方法を示しています。
var isPublished = sn_cmdb.DuplicateTemplate.publishTemplate('<template_id>');
gs.info(isPublished);
出力:
true
DuplicateTemplate:remediateTask(文字列 templateId, 文字列 taskId)
テンプレートを使用して重複排除タスクを修正します。
テンプレートが公開済みステータスでない場合、テンプレートは実行できず、メソッドは例外をスローします。
previewTemplate() メソッドを使用して、重複排除タスクの修復方法をプレビューします。
| 名前 | タイプ | 説明 |
|---|---|---|
| template_id | 文字列 | 重複調整テンプレート [reconcile_duplicate_template] テーブルにリストされているテンプレートのSys_id。 |
| taskId | 文字列 | 重複修復タスク [reconcile_duplicate_task] テーブルにリストされている重複排除タスクのSys_id。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 成功した場合、重複排除タスク修正の結合解決 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)
既存のテンプレートの実行をキャンセルします。
キャンセル要求は、ドラフト、準備完了、または実行中ステータスのテンプレート実行に対してのみ行うことができます。
テンプレート実行のキャンセル要求の後、テンプレートの実行ステータスは中間ステージの [キャンセル要求済み (Cancel Requested)] に変更されます。
このメソッドを実行しても、[準備完了] または [ドラフト] ステータスのテンプレートの実行は自動的にキャンセルされません。実行中のタスクが完了するまで、テンプレートの実行状況は [キャンセル] に変更されません。その時点で、修復のためにステージングされた残りのタスクはすべて [キャンセル要求] から [キャンセル] に変更されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| テンプレート RunId | 文字列 | 重複排除テンプレート実行 [reconcile_duplicate_template_run] テーブルにリストされているテンプレート実行のSys_id。 |
| タイプ | 説明 |
|---|---|
| 文字列 | キャンセル要求が成功したかどうかを示すフラグ。 有効な値:
|
次の例は、テンプレートの実行をキャンセルし、操作が成功したかどうかを表示する方法を示しています。
var isCancelled = sn_cmdb.DuplicateTemplate.requestCancellation("487c67e2046b2510f877c1665753a4cc");
gs.info(isCancelled);
出力:
true
DuplicateTemplate:retireTemplate(文字列 templateId)
テンプレートを廃止します。
テンプレートが不要になった場合に、この方法を使用して廃止ステータスに移行します。
- テンプレートは公開済みステータスです。
- テンプレートが実行中か、実行がスケジュールされています。
| 名前 | タイプ | 説明 |
|---|---|---|
| template_id | 文字列 | 重複調整テンプレート [reconcile_duplicate_template] テーブルにリストされているテンプレートのSys_id。 |
| タイプ | 説明 |
|---|---|
| ブーリアン | テンプレートが廃止されたかどうかを示すフラグ。 有効な値:
|
次の例は、テンプレートを廃止して結果を表示する方法を示しています。
var isRetired = sn_cmdb.DuplicateTemplate.retireTemplate(<template_id>);
gs.info(isRetired);
出力:
true
DuplicateTemplate:runTemplate(文字列 templateId)
公開済みステータスの重複排除テンプレートの修正実行をスケジュールします。テンプレートは複数回実行できますが、一度に 1 つの実行のみをスケジュールできます。
テンプレートが公開済みステータスでない場合、テンプレートは実行できず、メソッドは例外をスローします。 publishTemplate() メソッドを使用して、テンプレートをドラフトから公開ステータスに移動します。
実行中のタスクをキャンセルするには、 requestCancellation() メソッドを使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| template_id | 文字列 | 重複調整テンプレート [reconcile_duplicate_template] テーブルにリストされているテンプレートのSys_id。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 重複排除テンプレート実行 [reconcile_duplicate_template_run] テーブルにリストされている、実行されたテンプレートのSys_id。失敗した場合、テンプレートは公開済みステータスではない可能性があります。 |
次の例は、公開済みの重複排除テンプレートの実行をスケジュールする方法を示しています。
var template = sn_cmdb.DuplicateTemplate.runTemplate('<template_id>');
gs.info(JSON.stringify(template));
出力:
487c67e2046b2510f877c1665753a4cc
DuplicateTemplate:unPublishTemplate(文字列 templateId)
テンプレートを非公開にします。
この方法では、テンプレートが公開済みステータスからドラフトステータスに移行し、テンプレートを更新できるようになります。テンプレートが実行中または実行がスケジュールされている場合、テンプレートを非公開にすることはできません。
| 名前 | タイプ | 説明 |
|---|---|---|
| template_id | 文字列 | 重複調整テンプレート [reconcile_duplicate_template] テーブルにリストされているテンプレートのSys_id。 |
| タイプ | 説明 |
|---|---|
| ブーリアン | テンプレートが正常に非公開になったかどうかを示すフラグ。 有効な値:
|
次の例は、テンプレートを非公開にして結果を表示する方法を示しています。
var isUnPublished = sn_cmdb.DuplicateTemplate.unPublishTemplate(<template_id>);
gs.info(isUnPublished);
出力:
true
DuplicateTemplate - updateTemplate(文字列 templateId, オブジェクトテンプレート)
ドラフトステータスの重複排除テンプレートを更新します。
| 名前 | タイプ | 説明 |
|---|---|---|
| template_id | 文字列 | 重複調整テンプレート [reconcile_duplicate_template] テーブルにリストされているテンプレートのSys_id。 |
| template | オブジェクト | テンプレートを作成するためのさまざまなオプションを持つテンプレートオブジェクト。 |
| template.allow_null_attribute_update | ブーリアン | オプション。重複排除タスク内の CI の属性競合を解決するときに、メイン CI 属性が重複 CI の null 値で更新されるかどうかを示すフラグ。 有効な値:
デフォルト値:False |
| template.allow_master_ci_null_update | ブーリアン | オプション。メイン CI 値が null の場合にのみ、重複 CI からの更新が含まれます。 メイン CI 値が null の場合に重複 CI からの更新のみを含めるかどうかを示すフラグ。 有効な値:
デフォルト値:False |
| template.description | 文字列 | オプション。テンプレートに関する詳細情報を保存するための説明。 |
| template.duplicate_ci_action | 文字列 | オプション。重複 CI を削除するか、一意のカスタム値で更新するかを指定します。 選択可能なオプション:
|
| template.duplicate_ci_updates | アレイ | duplicate_ci_actionの設定が更新されている場合を除き、オプションです。重複 CI 値の更新方法を指定するオブジェクトのアレイ。 |
| 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 を選択する方法を指定します。 選択可能なオプション:
|
| 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 (manual)」も参照してください。 選択可能なオプション:
|
| template.merge_related_items_condition | アレイ | オプション。各関連エントリのエンコードされたクエリを含む関連エントリのリスト。各クエリーは、タスクに対して選択されたメイン CI で評価されます。クエリーが true を返した場合、重複排除タスクの修正中に関連エントリーが結合されます。false の場合、関連エントリーは結合されません。詳細については、「 エンコードされたクエリ文字列」 を参照してください。 |
| 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] テーブルで評価されます。このクエリーから返されたすべてのタスクは、テンプレートの評価時に考慮されます。 注: タスクがクエリの一部として返された場合でも、テンプレートの実行でタスクが処理されることは保証されません。他の要因により、テンプレートの処理中にタスクがスキップされる可能性があります。 詳細については、「 エンコードされたクエリ文字列」 を参照してください。 |
| タイプ | 説明 |
|---|---|
| ブーリアン | テンプレートが更新されたかどうかを示すフラグ。 有効な値:
|
次の例は、既存の重複排除テンプレートのいくつかのプロパティを更新する方法を示しています。
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