Answer by Simone Svedin on 05 July 2022
Hi Serhiy Onyshchenko, thanks for you answer! But unfortunately the remote issue isn’t closed (in reality it can still be open for a while). Couldn’t this be done through the incoming sync?
Comments:
Simone Svedin commented on 05 July 2022
And to add, I have found this post
if (!firstSync && replica.status.name == "Closed") {
//here you add the script rules you want to run when the remote side is closed, and it's not first sync.
}
But I what should I write between the brackets? and where should I add it? and another question, the workflow that we ar using have three Close statuses (Closed, Declined and Invalid). How should I write to make it possible to state all three? or perhaps change the code to Status Category, i.e Done?
Ariel Aguilar commented on 05 July 2022
You can do something like:
if(replica.status.name == "Closed" || replica.status.name == "Declined" || replica.status.name == "Invalid"){return
}
It should be added on the side you want to stop sync rules from been sent. (Outgoing sync)
Kind regards,
Ariel
Simone Svedin commented on 06 July 2022
Hi Ariel Aguilar, thanks for your reply. But I can’t add it to the outgoing sync. It needs to be in the incoming, because the remote issue where the sync is been sent from is still open. It’s the other issue that is closed. Couldn’t this be done in the incoming sync?
Ariel Aguilar commented on 08 July 2022
Then, is it possible to add the following snippet on the Outgoing sync, on the remote side where the issue it is closed, so you can try:
if(issue.status.name == "Closed" || issue.status.name == "Declined" || issue.status.name == "Invalid"){
return
}
Kind regards,
Ariel
Simone Svedin commented on 11 July 2022
Hi Ariel Aguilar , not sure I’m following. The scenario: Issue 1 = status Open, Issue 2 = status Closed. Issue 1 gets updated and will trigger a sync to remote issue 2. Issue 2 retrieves the incoming sync and the issue will get updated, this is what I want to avoid. Adding a snippet to the outgoing sync for issue 1 or 2 won’t help. IF both the issues where closed, then yes, but on the other hand the issue should’t be updated when its closed either so the problem exist while one issue is still open and still trigger sync to the remote issue. So I can’t see how to solve this any other way than adding a snippet to the incoming sync?
Ariel Aguilar commented on 11 July 2022
Hi Simone,
From your scenario, then you can do the following. Let’s call Issue 1 A side and Issue 2 B side. If the issue 2 gets updated to Closed status. You will want/need to prevent the update to push from B side to A side. So, you will add on B side Outgoing sync:
if(issue.status.name == "Closed" || issue.status.name == "Declined" || issue.status.name == "Invalid"){
return
}
Then, if you do an update from A side on Issue 1 and you don’t want this to be updated on B side. You can also implement the same code on B side incoming script:
if(issue.status.name == "Closed" || issue.status.name == "Declined" || issue.status.name == "Invalid"){
return
}
In this case, your incoming rules from B side won’t be executed if you match the criteria as we discuss in this scenario.
Kind regards,
Ariel
Simone Svedin commented on 13 July 2022
Hi Ariel Aguilar, I added the code on the B side incoming script, right on the top. Which worked just as I wanted! But now I get an error for new connections? I tried to add !firstSync right before issue.status.name, but that didn’t work. Or should I add som If else? or do you have any clue what I’m I doing wrong here? I have added the whole incoming script below.
if(issue.status.name == "Closed" || issue.status.name == "Declined" || issue.status.name == "Invalid"){
return
}
if(firstSync && replica.project.key == "EFI"){
issue.projectKey = "EFI"
issue.typeName = nodeHelper.getIssueType(replica.type?.name, issue.projectKey)?.name ?: "Task"
}
if(firstSync && replica.project.key == "EFI"){
issue.projectKey = "EFI"
issue.typeName = nodeHelper.getIssueType(replica.type?.name, issue.projectKey)?.name ?: "Task"
}
issue.summary = replica.summary
issue.description = replica.description
issue.comments = commentHelper.mergeComments(issue, replica)
issue.attachments = attachmentHelper.mergeAttachments(issue, replica)
issue.labels = replica.labels
Ariel Aguilar commented on 13 July 2022
Hi Simone,
Try the following:
if(issue.status?.name == "Closed" || issue.status?.name == "Declined" || issue.status?.name == "Invalid"){
return
}
Kind regards,
Ariel
Simone Svedin commented on 14 July 2022
Hi Ariel Aguilar, now it works like a charm! Thank you so much!!