Introduction
Imagine you have two instances, SD and DEV, and you need to synchronize issues from SD to DEV. In SD you have a Cascading Select List customField, having two values: product (parent) & version (child). You want to select the correct DEV project based on the cascading field parent value 'product'. Let's say you have the following products and corresponding DEV projects:
- product_X => PRODX
- product_Y => PRODY
- product_Z => PRODZ
The scripts below help to map the parent value from the cascading select list to the projects.
Sending side
Outgoing sync
1 replica.customFields."Product & Version" = issue.customFields."Product & Version"
Receiving side
Map the parent value from the cascading select to the projects and if a mapping for the option is not found or the option is not selected, use PRODX as a default.
Incoming sync
1 def projectMapping = [ 2 "product_X": "PRODX" 3 "product_Y": "PRODY" 4 "product_Z": "PRODZ" 5 ] 6 7 issue.projectKey = projectMapping[replica.customFields."Product & Version"?.value?.parent?.value] ?: "PRODX"
Drop the synchronization (indicate that you don't want to create an issue on your side) if you don't find a mapping.
Incoming sync
1 def projectMapping = [ 2 "product_X": "PRODX" 3 "product_Y": "PRODY" 4 "product_Z": "PRODZ" 5 ] 6 7 def projectKey = projectMapping[replica.customFields."Product & Version"?.value?.parent?.value] 8 9 if (projectKey != null) { 10 issue.projectKey = projectKey 11 // your entire create processor goes here 12 // ... 13 }