Originally asked by Christos Katsivas on 18 June 2020 (original question)
I would like to synchronize a cascading jira field to Zendesk and specific in two select lists. If it is possible?Source: Zendesk (old community)
Originally asked by Christos Katsivas on 18 June 2020 (original question)
I would like to synchronize a cascading jira field to Zendesk and specific in two select lists. If it is possible?Source: Zendesk (old community)
Answer by André Leroy-Beaulieu Castro on 02 July 2020
The final configuration that worked for receiving the child values from different fields depending on the parent value chosen was the following:
String parentValue = replica.customFields."category"?.value?.value //zendesk select list
def childValue;
if (parentValue == "a") {
childValue = replica.customFields."A SUBCATEGORIES"?.value?.value //zendesk select list
}
if (parentValue == "b") {
childValue = replica.customFields."B SUBCATEGORIES"?.value?.value //zendesk select list
}
if (parentValue == "c") {
childValue = replica.customFields."C SUBCATEGORIES"?.value?.value //zendesk select list
}
def categoryMapping = [mapping... ]
def parent = nodeHelper.getOption(
issue,
"Categories/Sub-categories", //cascading field jira
categoryMapping[parentValue]
)
def child = parent.childOptions.find
{it.value == categoryMapping[childValue]}
if ( parent != null && (childValue == null || child != null)) {
issue.customFields."Categories/Sub-categories"?.value = nodeHelper.getCascadingSelect(
parent,
child
)
} else if (parentValue == null) {
issue.customFields."Categories/Sub-categories"?.value = null
}
Answer by Christos Katsivas on 19 June 2020
Can i use this script also from Zendesk to Jira? for example, i would like to synchronize two select lists from Zendesk to Cascading field on Jira.
Hi Christos,
In that case let’s say your two Zendesk fields are “Select List 1” and “Select List 2”, and your Jira field is “Cascading Select”:
Outgoing Zendesk:
replica.customFields."Select List 1" = issue.customFields."Select List 1"
replica.customFields."Select List 2" = issue.customFields."Select List 2"
Incoming Jira:
String parentValue = replica.customFields."Select List 1"?.value?.value
String childValue = replica.customFields."Select List 2"?.value?.value
def parent = nodeHelper.getOption(
issue,
"Cascading Select",
parentValue
)
def child = parent.childOptions.find{it.value == childValue}
if ( parent != null && (childValue == null || child != null)) {
issue.customFields."Cascading Select"?.value = nodeHelper.getCascadingSelect(
parent,
child
)
} else if (parentValue == null) {
issue.customFields."Cascading Select"?.value = null
}
Thanks,
André
Answer by Juan Grases on 18 June 2020
Hi! You can extract the child and parent values of the Jira cascading field from zendesk like this:
//Incoming script on zendesk
def cascadingValue = replica.customFields."Cascading Jira Field"?.value
if(cascadingValue){
def parentValue = cascadingValue.parent?.value //This is a String value
def childValue = cascadingValue.child?.value //This is a String value
/*
from here, you can set directly to a zendesk field or map to a different value
if(parentValue)
issue.customFields."Zendesk Parent Field".value = parentValue
or
def valueMap = ["Jira V": "Zendesk V"]
if(childValue)
issue.customFields."Zendesk Child Field".value = valueMap[childValue]
*/
}
Let me know if this makes sense.