Hey guys, someone could help me with codes/tips/whatever pls ?
I'm trying to copy the Wiki Page link (Confluence link) to a Custom Field named Wiki Page. Trying to do it with Listener.
I was able to retrieve the remote link, but I cannot set it into the CF. Following the script and the error as well.
import org.apache.log4j.Logger
import org.apache.log4j.Level
def log = Logger.getLogger("com.acme.ListLinks")
log.setLevel(Level.DEBUG)
//-------------------------------------------------------------------------------------------------------------------------------------------
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.link.*
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.ModifiedValue
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.atlassian.jira.issue.MutableIssue
def issue = event.issue as MutableIssue
def cfManager = ComponentAccessor.getCustomFieldManager();
def ilkManager = ComponentAccessor.getIssueLinkManager();
def changeHolder = new DefaultIssueChangeHolder();
def RemoteLinkManager = ComponentAccessor.getComponent(RemoteIssueLinkManager)
def linkBuilder = new RemoteIssueLinkBuilder()
def remoteLinks = RemoteLinkManager.getRemoteIssueLinksForIssue(issue)?.collect {"From Application ${it.applicationName}, Title ${it.title}, URL: ${it.url}"}?.join("<br>")
RemoteLinkManager.getRemoteIssueLinksForIssue(issue).findAll {
it.applicationType == RemoteIssueLink.APPLICATION_TYPE_CONFLUENCE
}.each {WikiPageLink ->
def cfWikiPage = cfManager.getCustomFieldObjects(issue).find {it.name == "Wiki Page"}
cfWikiPage.updateValue(null, issue, new ModifiedValue(cfWikiPage, remoteLinks),changeHolder)
// issue.setCustomFieldValue(null, issue, new ModifiedValue(WikiPageLink2, cfWikiPage),changeHolder)
log.debug("Wiki Page = " + remoteLinks)
}
Any help is welcome.
Thanks all.
Cassio.
I was able to correct the script and to set the URL link into the custom field.
Below are the parameters and the corrected script.
Script type: Custom Listener;
Events: All Issue Events;
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.event.issue.IssueEvent
import com.atlassian.jira.issue.link.*
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.ModifiedValue
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
IssueEvent event = event
def issue = event.getIssue()
def cfManager = ComponentAccessor.getCustomFieldManager();
def ilkManager = ComponentAccessor.getIssueLinkManager();
def changeHolder = new DefaultIssueChangeHolder();
def RemoteLinkManager = ComponentAccessor.getComponent(RemoteIssueLinkManager)
def linkBuilder = new RemoteIssueLinkBuilder()
def remoteLinks = RemoteLinkManager.getRemoteIssueLinksForIssue(issue)?.collect {"${it.url}"}?.join("<br>")
RemoteLinkManager.getRemoteIssueLinksForIssue(issue).findAll {
it.applicationType == RemoteIssueLink.APPLICATION_TYPE_CONFLUENCE
}.each {WikiPageLink ->
def cfWikiPage = cfManager.getCustomFieldObjects().find {it.name == "Wiki Page"}
def url = remoteLinks.toString()
cfWikiPage.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(cfWikiPage), url),changeHolder)
}
@Cassio Miranda What type of Custom Field are you trying to set?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@Alejandro Suárez - TecnoFor I managed to correct my script and now it's setting the URL into the custom field. I'll post the corrected script with the parameters I set.
Thank you for your concern.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.