JIRA SERVER

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, for example 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

Data Filter

replica.customFields."Product & Version" = issue.customFields."Product & Version"
 

Receiving side

 Map the parent value from the cascading select to the projects and if mapping for the option is not found or the option is not selected, use PRODX as a default.

Create Processor

def projectMapping = [
	"product_X": "PRODX"
	"product_Y": "PRODY"
	"product_Z": "PRODZ"
]

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.

Create processor

def projectMapping = [
	"product_X": "PRODX"
	"product_Y": "PRODY"
	"product_Z": "PRODZ"
]

def projectKey = projectMapping[replica.customFields."Product & Version"?.value?.parent?.value]

if (projectKey != null) {
  issue.projectKey = projectKey
  // your entire create processor goes here
  // ...
}
 

See Also