Exalate local connection of statuses

Originally asked by Michal Sitkey on 14 September 2021 (original question)


Hi,

In local connection of Jira project to project we need to have something to divide connections / statuses for we can tell to Exalate how to change status in one project differently than for another when statuses are not same. Even we need some statuses from one side dont trigger synchronization / or this will stay in open.

For Jira to Jira connection we have possibility to do that, because we have 2 connectors, in local is only one…Now we have problems inside of tickets for sometimes when someone make a commentary this is also triggering sychronization to status Open from another status.

Please help

Thanks

def statusMap = [
// “remote status name”: “local status name”
“Waiting for 3rd party support” : “Open”,
“Done” : “Done”,
“Pending Reporter” : “Open”,
“Pending Release” : “Open”,
“Work in progress” : “Open”,
“Open” : “Open”,
“Completed” : “Done”,
“In Progress” : “Open”,
“Waiting for support” : “Open”,
“Pending Customer Feedback” : “Work in progress”,
“Pending Release” : “Work in progress”

]


Comments:

Andrii Markov commented on 14 September 2021

Hi Michal Sitkey,

Can I ask you please to paste in here your full outgoing and incoming syncs from your instances?

Thanks,
Andrii

Answer by Michal Sitkey on 14 September 2021

+ this is local connection when two projects have different workflows and we need to differently match statuses for that we have only one mapping what is imposible to do. Than instances is not correct word only one instance.


Answer by Michal Sitkey on 14 September 2021

replica.key = issue.key
replica.type = issue.type
replica.assignee = issue.assignee
replica.reporter = issue.reporter
replica.summary = issue.summary
replica.description = issue.description
replica.labels = issue.labels += nodeHelper.getLabel(“PTO”)
replica.comments = issue.comments
replica.resolution = issue.resolution
replica.status = issue.status
replica.parentId = issue.parentId
replica.priority = issue.priority
replica.attachments = issue.attachments
replica.project = issue.project

---------------------------------------------------------------------------------------------------------------

if(firstSync && replica.project.key == “FGS”){
issue.projectKey = “PTO”
issue.typeName = nodeHelper.getIssueType(replica.type?.name, issue.projectKey)?.name ?: “Info Request”
}
if(firstSync && replica.project.key == “PTO”){
issue.projectKey = “FGS”
issue.typeName = nodeHelper.getIssueType(replica.type?.name, issue.projectKey)?.name ?: “Service Request”
}
issue.summary = replica.summary
issue.description = replica.description
issue.labels = replica.labels
issue.comments = commentHelper.mergeComments(issue, replica)
issue.attachments = attachmentHelper.mergeAttachments(issue, replica)

/*
def statusMap = [
// “remote status name”: “local status name”
“Waiting for 3rd party support” : “Waiting for 3rd party support”,
“Done” : “Done”,
“Pending Reporter” : “Work in progress”,
“Pending Release” : “Work in progress”,
“Work in progress” : “Waiting for 3rd party support”,
“Open” : “Waiting for 3rd party support”,
“Completed” : “Done”,
“In Progress” : “Waiting for 3rd party support”,
“Waiting for support” : “Waiting for 3rd party support”,
“Pending Customer Feedback” : “Work in progress”,
“Pending Release” : “Waiting for 3rd party support”

     ]  

*/
def statusMap = [
// “remote status name”: “local status name”
“Waiting for 3rd party support” : “Open”,
“Done” : “Done”,
“Pending Reporter” : “Open”,
“Pending Release” : “Open”,
“Work in progress” : “Open”,
“Open” : “Open”,
“Completed” : “Done”,
“In Progress” : “Open”,
“Waiting for support” : “Open”,
“Pending Customer Feedback” : “Work in progress”,
“Pending Release” : “Work in progress”

     ]  

def remoteStatusName = replica.status.name
issue.setStatus(statusMap[remoteStatusName] ?: remoteStatusName)


Comments:

Andrii Markov commented on 14 September 2021

Thank you!

Checking…

Kind Regards,
Andrii

Michal Sitkey commented on 14 September 2021

One mapping is also commented /* */ …than please ignore commented section

Andrii Markov commented on 15 September 2021

Hi Michal Sitkey ,

I have tested it out and I see everything is alright in the incoming configuration from my perspective.

The statuses should be mapped correctly.

I think there could be some another problem with it, something triggers to change a status after you are leaving a comment.

Can you please reproduce a problem and send me a history of the affected issue and a support zip file?

Thanks,
Andrii

Michal Sitkey commented on 16 September 2021

From my point of view is also doing what is mapped, but for us is wrong.

We need to have different behaviour for one side from perspective our one project and from another side.

For me is not like a bug to sending affected issue, but this is lack of possible settings for LOCAL Jira exalate connection, because in local we have only one connector where we can map statuses not like in Jira to Jira synchronization where are two sides and two possible mappings.

Please let me know if you understand how i this mean

Anshuman Bakshi commented on 16 September 2022

HI Michael,

Were you able to find any update to this ?

We are also facing same issue where we have the following mapping to be done in exalate:

def statusMapping =

[“PENDING”:“To Do”,

“Open”:“Waiting For Customer”,

“Done”:“Done”]
def remoteStatusName = replica.status.name
issue.setStatus(statusMapping[remoteStatusName] ?: remoteStatusName)

  • Status changes will be mapped as follows in Product Support and Cloud Project in jira.

o If status is “Pending” in Product Support = CloudOps “To do”

o If Status is “waiting for customer” in CloudOps = “Open” in Product Support

o If Status is “Done” in Cloudops = “Solved” in Product Support

o If “Solved” in Product support = “Done” in CloudOps project.