Originally asked by Matthias on 27 August 2020 (original question)
Hi, I have some questions about synchronizing linked sprints.
For the context, here is my code.
// The sprint from the incoming message.
def remoteSprint = replica.customFields.Sprint?.value?.find { it.state.toUpperCase() != "CLOSED" };
// Current local sprint.
def currentLocalSprint = issue.customFields.Sprint?.value?.find { it.state.toUpperCase() != "CLOSED" };
// The new local sprint, according to the incoming message, translated to local IDs.
def newLocalSprint = remoteSprint?.id == null ? null : nodeHelper.getLocalIssueKeyFromRemoteId(remoteSprint?.id, "sprint");
if (currentLocalSprint?.id?.toString() == newLocalSprint?.id?.toString()) {
// DO NOTHING
// It is already well configugured.
// Both null or with the same ID.
} else if (remoteSprint?.id != null && newLocalSprint?.id == null) {
// DO NOTHING
// The sprint was not synchronized, because the project existed before the synchronisation.
// So, we simply ignore this cas.
} else if (currentLocalSprint?.id != null && remoteSprint?.id == null) {
// The issue was moved to Backlog.
issue.customFields.Sprint.value = nodeHelper.getCustomFieldDefaultValue("Sprint", issue)
} else if (newLocalSprint?.id != null) {
// Finaly, I can set a sprint.
issue.customFields.Sprint.value = newLocalSprint.id
} else {
// I'm not supposed to be here.
debug.error("Lost in the dark" + [remoteSprint?.id, remoteSprint?.id?.class, currentLocalSprint?.id, currentLocalSprint?.id?.class, newLocalSprint?.id, newLocalSprint?.id?.class].join(";"));
}
Why, by going through the first “if” close, I have an error “Number value expected as the Sprint id” ?
Values are already right, I do nothing.
How could I get the status for newLocalSprint ?
With the method nodeHelper.getLocalIssueKeyFromRemoteId(remoteSprint.id, “sprint”), only the id is filled. How to get more information ?
Did not find any clue in the documentation.
Thanks in advance for your help.
Matthias
Source : Jira Cloud