Converting of Jira DC Custom plugin - Multi Level Cascading fied values (3 levels) into text field and syncing it with Jira Project on Cloud

I would like to raise question in terms of checking possibilities for converting Jira Data Center custom made Multi Level Cascading Field (3 levels) into text field and sending out then values to the Jira Cloud environment.
On Jira DC we have developed multi level cascading field which is supporting 3 levels of inserting values and we are now facing situation that we want to sync our Project with project on separate instance which is on Cloud Environment. Hence, Jira Cloud will not for sure support this behavior and we are seeking for option in terms of converting MLC field values into text field value and then to map it with same text field on Jira Cloud project side.

Could someone please let me know if this is maybe possible through the Exalate plugin, to convert the values and keep them within the scope and then to sync it with project on Cloud, or we should look for another direction?

Yes, what you want to achieve is possible with Exalate! You can convert the values from your custom multi-level cascading field on Jira Data Center into a text field and sync that with a text field on Jira Cloud.

Here’s how you can approach it:

  • On the Data Center side, extract the values from your multi-level cascading field (even if it has more than two levels, you can access each level’s value).
  • Concatenate these values into a single string (for example, separated by commas).
  • Map this string to a text custom field in the replica.
  • On the Cloud side, receive this string and set it as the value of a text custom field.

A typical incoming sync script for a two-level cascading field looks like this:

issue.customFields."Cascading field details".value = 
    replica.customFields."Cascading select"?.value?.parent?.value + ", " + 
    replica.customFields."Cascading select"?.value?.child?.value

For a three-level cascading field, you’d extend this logic to include the third level (e.g., grandchild?.value if your field structure supports it).

You can find more details and examples in the Exalate documentation:

So, you don’t need to look for another direction—Exalate can handle this transformation and sync for you! Just make sure to adjust your sync scripts to match your custom field structure.

Hi @NinetySix ,

Thank you for being a part of Exalate Community.

Could you please confirm if the assistance provided by Ai tool - Aida was helpful or still need assistance?

Kind regards,

Ashar

Hi @ashar.iqbal !,

Yes I would say it was helpful, but currently I’m facing some challenges in order to display appropriate Multi Level Cascading field values into the text field. Currently I’m only receiving null as a value for each level.

Anyhow I’ll continue with trying various scenarios in order to resolve this challenge. Will let you know whether I have succeed or your additional assistance will be required.

Thanks a lot!

Regards,

NinetySix

Hi @ashar.iqbal,

I would need at the end additional support in order to forward MLC field values into Text Field, since so far only null values have been received.

Best regards,

NS

Hi @NinetySix !

Would you please provide me the script from both ends?

Jira Cloud and on premise please

BR

Tomas

Hi @Tomas_Lalanne ,

Sure here is example, which we have tried on our side. Just to let you know this is example which we wanted to establish between our 2 projects within Jira DC, since we want to test it out firstly within our Instance and then to contact customer which is on Cloud.

----- Outgoing sync for MLC ----
replica.customFields.“Stream/Technical site/Mandant” = issue.customFields.“Version 10311TF”

-— Incoming sync for Text Field ----
issue.customFields.“Version 10311TF”.value = replica.customFields.“Stream”?.value?.parent?.value +
", " + replica.customFields.“Technical site”?.value?.child?.value +
", " + replica.customFields.“Mandant”?.value?.grandchild?.value

Also I want to point out information received from our developers team, that values from our custom Multi levele cascading field are send out in following format:

{
“fields”: {
“customfield_16400” : [{ “value”: “Level 1”}, { “value”: “Level 2”}, { “value”: “Level 3”}]
}
}

Which might be not desirable for Exalate in order to convert it further into Text Field.

Thank you in advance!

Regards,

NinetySix

Thank you for the info @NinetySix .

Lastly I will need an screenshot if possible on what’s the field type, I will replicate it on my own instance and come back with a solution on Monday

BR

Tomas

Hi @Tomas_Lalanne !

Sure, here is the info:
Version 10311TF - Text Field (single line)

Stream/Technical site/Mandant - Multi-Level Cascading Field
But just to be aware that this Mulit-level Cascading is Custom made plugin and it has 3 levels.

Regards,

NinetySix

Hi @NinetySix !

Sorry for the delay on my answer, at this point the best thing we can do is go on a call and check on this matter, to really understand the useCase.

I will message you privatly here on community

BR

Tomas

Hi @NinetySix !

The fix that worked on the call was

Outgoing Script:

def streamField = issue.customFields."Stream/Technical site/Mandant"
if (streamField?.value) {
    // Convert the values to a comma-separated string
    replica.customKeys."Stream/Technical site/Mandant" = streamField.value.join(", ")
}

Incoming Script:

issue.customFields."Version 10311TF".value = replica.customKeys."Stream/Technical site/Mandant"

BR

Tomas

1 Like