DuplicateTemplate - Scoped
-
- UpdatedFeb 1, 2024
- 19 minutes to read
- Washington DC
- API reference
The DuplicateTemplate API provides methods for users to interact with de-duplication templates by enforcing a set of validations for each method.
De-duplication task remediation can be more time consuming than desirable when handled individually. Duplication templates enable grouping a set of duplicate tasks and running them together. Use the
DuplicateTemplate API to create and consume de-duplication templates. This API runs in the sn_cmdb
namespace and requires the cmdb_dedup_admin role to access.
When an instance detects duplicate configuration items (CIs) during identification and reconciliation, it groups each set of duplicate CIs into a de-duplication task for review and remediation. De-duplication tasks provide details about the duplication, including a list of all duplicate CIs. For information, see Duplicate CIs remediation.
See also: IdentificationEngine - Scoped
- Template life cycle
- Use the CreateTemplate() method to create a template in the draft state.You can use the following methods to retrieve or update the template:
- Use the publishTemplate() method to move the template from draft to published state.Note: Use the unPublishTemplate() method to return a published template to draft state and update the template.
- (Optional) Use the CMDBDuplicateTemplateUtil script include to add or remove tasks.
- Use the runTemplate() method to run the template.
To cancel a running task, use the requestCancellation() method.
- If the template is no longer needed, you can retire the template using the retireTemplate() method.
- Use the CreateTemplate() method to create a template in the draft state.
- Remediating a single task using a template
- To remediate a single task without running the template, you can preview and remediate de-duplication tasks.
- Use the previewTemplate() method to preview the remediation of a single-task with a template.
- Use the remediateTask() method to remediate the de-duplication task with a template.
DuplicateTemplate - canAddTasksToTemplate(Array taskIds, String templatId)
Checks if the provided list of tasks can be added to a template.
Use this method to determine whether tasks are suitable for adding to the template. For example, the specified template might be created for Application Server Tomcat, but the specified de-duplication tasks are created for Linux Server. These tasks don’t have a matching template class, so they can’t be added to the template.
Name | Type | Description |
---|---|---|
taskIds | Array | Array of sys_ids of the de-duplication tasks to add to the template. |
templateId | String | Sys_id of the template listed in the Reconcile Duplicate Template [reconcile_duplicate_template] table. |
Example
The following example shows how to check for tasks that can be added to the template.
Output:
DuplicateTemplate - createTemplate(Object template)
Creates a de-duplication template in draft state.
Type | Description |
---|---|
String | Sys_id of the template created in the Reconcile Duplicate Templates [reconcile_duplicate_template] table. |
Example
The following example shows how to create a de-duplication template.
Output:
DuplicateTemplate - getTemplate(String templateId)
Gets the template object.
Name | Type | Description |
---|---|---|
templateId | String | Sys_id of the template listed in the Reconcile Duplicate Template [reconcile_duplicate_template] table. |
Example
The following example shows how to retrieve a template.
Output:
DuplicateTemplate - previewTemplate(String templateId, String taskId)
Generates a preview of how different template options were applied to the de-duplication task and how it’s to be remediated.
This method validates all the required attributes before generating the preview for the task using the template. Templates can be created or updated without specifying the required attributes. The required attributes must be provided to preview any de-duplication task.
- duplicate_ci_action
- master_ci_option
- merge_related_items
- merge_relations
- name
- table
Use the remediateTask() method to remediate de-duplication tasks.
Name | Type | Description |
---|---|---|
templateId | String | Sys_id of the template listed in the Reconcile Duplicate Template [reconcile_duplicate_template] table. |
taskId | String | Sys_id of the de-duplication task listed in the Remediate Duplicate Task [reconcile_duplicate_task] table. |
Example
The following example shows how to get a preview of de-duplication remediation for a specified template.
Output:
DuplicateTemplate - publishTemplate(String templateId)
Publishes a template. When successful, the template moves from draft to published state.
This method validates all the required attributes before publishing the template. You can create or update templates without specifying the required attributes, but the attributes must be provided before publishing a template.
- duplicate_ci_action
- master_ci_option
- merge_related_items
- merge_relations
- name
- table
In published state, you can run the template using the runTemplate() method.
Name | Type | Description |
---|---|---|
templateId | String | Sys_id of the template listed in the Reconcile Duplicate Template [reconcile_duplicate_template] table. |
Type | Description |
---|---|
Boolean | Flag that indicates whether the template was published. Valid values:
|
Example
The following example shows how to publish a template and display results.
Output:
DuplicateTemplate - remediateTask(String templateId, String taskId)
Remediates a de-duplication task using the template.
If the template isn’t in the published state, the template can't be run and the method throws an exception.
Use the previewTemplate() method to preview how de-duplication tasks are to be remediated.
Name | Type | Description |
---|---|---|
templateId | String | Sys_id of the template listed in the Reconcile Duplicate Template [reconcile_duplicate_template] table. |
taskId | String | Sys_id of the de-duplication task listed in the Remediate Duplicate Task [reconcile_duplicate_task] table. |
Type | Description |
---|---|
String | If successful, the merge resolution ID for the de-duplication task remediation. This merge resolution ID the sys_id of a record in the Duplicate CI Remediation [cmdb_duplicate_ci_remediation] table. If unsuccessful, the template might not be in the published state. |
Example
The following example shows how to remediate a de-duplication task.
Output:
DuplicateTemplate - requestCancellation(String templateRunId)
Cancels an existing template run.
A cancel request can only be made for a template run if it's in draft, ready, or running state.
After a template run cancel request, the template run state changes to the intermediate stage Cancel Requested.
Running this method doesn’t automatically cancel template runs in Ready or Draft state. The template run state doesn’t change to Cancelled until any tasks running are complete. At that point any remaining tasks staged for remediation change from cancel requested to canceled.
Name | Type | Description |
---|---|---|
templateRunId | String | Sys_id of the template run listed in the De-Duplication Template Run [reconcile_duplicate_template_run] table. |
Type | Description |
---|---|
String | Flag that indicates whether the cancel request was successful. Valid values:
|
Example
The following example shows how to cancel a template run and display whether the operation is successful.
Output:
DuplicateTemplate - retireTemplate(String templateId)
Retires a template.
Use this method to move a template to the retire state if it’s no longer needed.
- The template is in the published state.
- The template is running or scheduled to run.
Name | Type | Description |
---|---|---|
templateId | String | Sys_id of the template listed in the Reconcile Duplicate Template [reconcile_duplicate_template] table. |
Type | Description |
---|---|
Boolean | Flag that indicates whether the template is retired. Valid values:
|
Example
The following example shows how to retire a template and display results.
Output:
DuplicateTemplate - runTemplate(String templateId)
Schedules a remediation run for a de-duplication template in the published state. A template can be run multiple times but you can only schedule one run at a time.
If the template isn’t in published state, it can't be run and the method throws an exception. Use the publishTemplate() method to move the template from draft to published state.
To cancel a running task, use the requestCancellation() method.
Name | Type | Description |
---|---|---|
templateId | String | Sys_id of the template listed in the Reconcile Duplicate Template [reconcile_duplicate_template] table. |
Type | Description |
---|---|
String | Sys_id of the template that was run listed in the De-Duplication Template Run [reconcile_duplicate_template_run] table. If unsuccessful, the template might not be in published state. |
Example
The following example shows how to schedule a run for a published de-duplication template.
Output:
DuplicateTemplate - unPublishTemplate(String templateId)
Unpublishes a template.
This method moves the template from the published state to the draft state, which enables updating the template. The template can't be unpublished if it is running or scheduled to be run.
Name | Type | Description |
---|---|---|
templateId | String | Sys_id of the template listed in the Reconcile Duplicate Template [reconcile_duplicate_template] table. |
Type | Description |
---|---|
Boolean | Flag that indicates whether the template was successfully unpublished. Valid values:
|
Example
The following example shows how to unpublish a template and display results.
Output:
DuplicateTemplate - updateTemplate(String templateId, Object template)
Updates a de-duplication template in draft state.
Type | Description |
---|---|
Boolean | Flag that indicates whether the template was updated. Valid values:
|
Example
The following example shows how to update several properties of an existing de-duplication template.
Output:
On this page
- DuplicateTemplate - canAddTasksToTemplate(Array taskIds, String templatId)
- DuplicateTemplate - createTemplate(Object template)
- DuplicateTemplate - getTemplate(String templateId)
- DuplicateTemplate - previewTemplate(String templateId, String taskId)
- DuplicateTemplate - publishTemplate(String templateId)
- DuplicateTemplate - remediateTask(String templateId, String taskId)
- DuplicateTemplate - requestCancellation(String templateRunId)
- DuplicateTemplate - retireTemplate(String templateId)
- DuplicateTemplate - runTemplate(String templateId)
- DuplicateTemplate - unPublishTemplate(String templateId)
- DuplicateTemplate - updateTemplate(String templateId, Object template)