Azure DevOps Migration Tools

v16.0.9

Azure DevOps Migration Tools allow you to migrate Teams, Backlogs, Tasks, Test Cases, and Plans & Suits from one Project to another in Azure DevOps / TFS both within the same Organisation, and between Organisations.

Home
 › 
Learn
 › 
Overview
 › 
Reference
 › 
Processors
 › 
Processdefinitionprocessor
Overview

Processors : ProcessDefinitionProcessor

Ref

  

Less than 1 minute to read

  

2024-12-04 17:20:47 +0000

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 %}
...
Getting Support

Community Support

Question & Discussion - The first place to look for usage, configuration, and general help.

Commercial Support

We provide training, ad-hoc support, and full service migrations through Azure DevOps Migration Services