DevOps change request attributes
Summarize
Summary of DevOps Change Request Attributes
This content explains how ServiceNow customers can add or update DevOps change request attributes using various methods such as the changeInfo REST API, Default Change Handler subflow, orchestration pipeline, Update function, or automated flows. It highlights the practical ways to specify, manage, and control the precedence of change request attributes to ensure accurate and consistent change management within DevOps pipelines.
Show less
Specifying Change Request Attributes
- changeInfo REST API: Use the DevOps PUT API to update fields within a specified change request. Note that this API does not function when the pipeline is paused, so thorough testing is recommended before implementation.
- Default Change Handler subflow: Automatically populates change request fields with default values within ServiceNow.
- Orchestration pipeline: Pass change attributes directly through the pipeline steps or via the Update function in orchestration pipelines for Azure DevOps, Jenkins, or custom actions using Docker container images.
- Automated flows: Use DevOps approval flows to make controlled changes to change requests.
Precedence and Conflict Management
Attributes can be specified in multiple locations, and their precedence determines which value is ultimately applied. The precedence varies between type-based and model-based changes and depends on where the attributes are set:
- Type-based changes:
- Standard changes prioritize attributes passed through the pipeline, followed by step record fields, then templates passed in change attributes, and finally templates in step fields.
- Non-standard changes consider pipeline attributes first, then Default Change Handler subflow and approval flows, followed by step record fields and templates.
- Model-based changes:
- Standard changes prioritize model presets, pipeline attributes, step record fields, then templates.
- Non-standard changes prioritize model presets, pipeline attributes, Default Change Handler and approval flows, then step record fields and templates.
Important: Setting attribute values both in the Default Change Handler subflow and approval flows simultaneously can cause conflicts because they might run concurrently. Customers should configure attributes in only one of these sources to avoid issues.
Additional Configuration Note
If business rules are used in change operations, set the sndevops.changerequest.applyattributesoncreation property to true. This ensures that attributes passed in the pipeline are applied when the change request is created rather than afterward.
Practical Scenarios Demonstrating Precedence
- Scenario 1: When assignmentgroup is set in both the Default Change Handler subflow and Update function, the Default Change Handler value applies at creation, and the Update function value applies after approval.
- Scenario 2: When assignmentgroup is set in the Default Change Handler and orchestration pipeline change step, the pipeline step value applies at creation, followed by the Default Change Handler value upon trigger.
- Scenario 3: When assignmentgroup is specified in both the template passed in change attributes and the pipeline step template, the template passed in change attributes takes precedence at creation.
- Scenario 4: For model-based changes, when assignmentgroup is set in both change attributes and model presets, the model preset value applies at creation.
Add or update DevOps change request attributes using the changeInfo REST API, the Default Change Handler subflow, by passing attributes through the pipeline, Update function, or automated flows.
Specifying attributes
Use one of the following methods to specify change request attributes:
- DevOps - PUT /devops/orchestration/changeInfo/{changeInfo} to update fields within a specified change request.Note:
- The changeInfo API won’t function when the pipeline is in the paused state.
- An API call can’t be executed while the pipeline is waiting.
- The API approach must be considered after thorough testing.
- Default Change Handler subflow to populate change request fields with default values. For more information, see Default Change Handler subflow.
- Passing the change attributes through the orchestration pipeline. For more information, see Configuring DevOps change request details within the pipeline.
- Passing the change attributes through the Update function in the orchestration pipeline function. For more information, see the following:
- Automated flows: DevOps approval flows to make changes in a change request. For more information, see Flows.
Precedence of consideration
When the change attributes are specified through multiple methods, the precedence in which the attribute values are considered will vary. In ServiceNow, attributes can be specified in the pipeline step of DevOps Change Velocity, in the Default Change Handler subflow, or in an approval flow. In the orchestration tool pipeline, attributes can be passed in the pipeline step, or using the REST APIs. If a change model is used, they can also be specified in model presets.
See the following tables and examples to understand the precedence in which the values will be considered.
| Change request | Precedence |
|---|---|
| Standard |
|
| Non-standard |
|
| Change request | Precedence |
|---|---|
| Standard |
|
| Non-standard |
|
Scenario 1
Consider a scenario where the attributes are specified in the Default change handler subflow in ServiceNow and in the Update function in the orchestration pipeline. Assume that the assignment_group attribute is specified as “change mgmt” in the Default change handler subflow, and as “CAB” in the Update function in the pipeline. In this scenario, when the change is created, the value from the Default change handler subflow will be considered, and “change mgmt” will be the value considered for assignment_group. Once the change is approved, and the pipeline is resumed, the value specified in the Update function will be considered, i.e. “CAB”.
Scenario 2
Consider a scenario where the attributes are specified in the Default change handler subflow in ServiceNow and in the change step in the orchestration pipeline. Assume that the assignment_group attribute is specified as “change mgmt” in the Default change handler subflow, and as “chg mgmt1” in the change step of the pipeline. In this scenario, when the change is created, the value from change step (chg mgmt1) will be considered, and then once the Default change handler subflow is triggered, the value considered will be “change mgmt”.
Scenario 3
Consider a scenario where the attributes are specified through the template passed in change attributes and in the template of the step record. Assume that the assignment_group attribute is specified as “change mgmt” in the template passed in change attributes, and as “chg mgmt1” in the template of the pipeline step record. In this scenario, when the change is created, the value from the template passed in change attribute (chg mgmt) will be considered.
Scenario 4
Consider a scenario where the attributes are specified in the change attributes and the model preset for a model-based change. Assume that the assignment_group attribute is specified as “change mgmt” in change attributes and as “chg mgmt1” in the model preset. In this scenario, when the change is created, the value from model preset (chg mgmt1) will be considered.