ProcessDefinitionProcessor
Ref
Less than 1 minute to read
2024-09-06 09:35:04 +0100
draft
This page is in draft and may include errors or omissions. Please check the discussions for any pending updates and changes to the content or to suggest your own changes.
Process definition processor used to keep processes between two orgs in sync
Source: https://github.com/nkdAgility/azure-devops-migration-tools/pull/918
I’ve got a use case where I need to have a single inheritance process model that is standardized across organizations. My proposed solution to this is to build a processor that iterates all the source process definitions the processor has configured to synchronize and update the target process definitions accordingly.
Below is a sample processor configuration that will synchronize a process model definition on the source called “Custom Agile Process”, with a process model definition on the target called “Other Agile Process”. It will only synchronize the work item types configured, in the below case, Bug. The synchronize will not destroy any target entities, but will move and update them according to the source. Meaning if the target has it’s own custom fields, this sync process will not damage them, unless they are named the same in the source.
It supports, new fields, updated fields, moved fields, new groups, updated groups, moved groups, new pages, updated pages, moved pages, behaviors and rules.
Options
Parameter name | Type | Description | Default Value |
Enabled | Boolean | If set to `true` then the processor will run. Set to `false` and the processor will not run. | missng XML code comments |
MaxDegreeOfParallelism | Int32 | missng XML code comments | missng XML code comments |
Processes | Dictionary | missng XML code comments | missng XML code comments |
ProcessMaps | Dictionary | missng XML code comments | missng XML code comments |
ProcessorEnrichers | List | List of Enrichers that can be used to add more features to this processor. Only works with Native Processors and not legacy Processors. | missng XML code comments |
RefName | String | `Refname` will be used in the future to allow for using named Options without the need to copy all of the options. | missng XML code comments |
SourceName | String | missng XML code comments | missng XML code comments |
TargetName | String | missng XML code comments | missng XML code comments |
UpdateProcessDetails | Boolean | missng XML code comments | missng XML code comments |
Example
A basic sample for ProcessDefinitionProcessor configuration.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"$type": "ProcessDefinitionProcessorOptions",
"Enabled": false,
"Processes": {
"$type": "Dictionary`2",
"*": [
"*"
]
},
"ProcessMaps": {
"$type": "Dictionary`2"
},
"UpdateProcessDetails": true,
"MaxDegreeOfParallelism": 1,
"ProcessorEnrichers": null,
"SourceName": null,
"TargetName": null
}
Example
{
...
"Processors": [
{
"$type": "ProcessDefinitionProcessorOptions",
"Enabled": true,
"Processes": {
"Custom Agile Process": [
"Bug"
]
},
"ProcessMaps": {
"Custom Agile Process": "Other Agile Process"
},
"SourceName": "Source",
"TargetName": "Target",
"UpdateProcessDetails": true
}
]
...
}
Example Full
{% include sampleConfig/ProcessDefinitionProcessor-Full.json %}