Processors : ProcessDefinitionProcessor
Ref
Less than 1 minute to read
2024-12-04 17:20:47 +0000
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. | missing XML code comments |
MaxDegreeOfParallelism | Int32 | missing XML code comments | missing XML code comments |
Processes | Dictionary | missing XML code comments | missing XML code comments |
ProcessMaps | Dictionary | missing XML code comments | missing XML code comments |
SourceName | String | missing XML code comments | missing XML code comments |
TargetName | String | missing XML code comments | missing XML code comments |
UpdateProcessDetails | Boolean | missing XML code comments | missing XML code comments |
Examples
sample
This is an example of what your config might look like once configured.
1
2
There is no sample, but you can check the classic below for a general feel.
defaults
These are the default values for this configuration. If you do not set it in your config the default always applies. You can overide by adding a diferent value in your config.
1
2
There are no defaults! Check the sample for options!
classic
We have moved to a new config format, and you will need to update your old configs. This entry is a strate seralisation of the object and is here for legacy, and may provide value for debugging issues.
1
2
3
4
5
6
7
8
9
10
11
{
"$type": "ProcessDefinitionProcessorOptions",
"Enabled": false,
"Processes": null,
"ProcessMaps": null,
"UpdateProcessDetails": false,
"MaxDegreeOfParallelism": 0,
"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 %}