Hello, guys!I have two issues - "issue A" and "issue B". "Issue A" has a link to issue "B".
Is it possible to set "Priority" field to "Major" of "issue B", if an user sets "Priority" of "issue A" to "Major"?
I have a chance to use ScriptRunner.
It can be done by ScriptRunner using the following way:
2. Then "Add New Item"
3. Then in "Events" we should write : "Issue updated", and finally paste the follwoing code into "Inline script":
import com.atlassian.jira.issue.Issueimport com.atlassian.jira.issue.ModifiedValueimport com.atlassian.jira.issue.util.DefaultIssueChangeHolderimport com.atlassian.jira.component.ComponentAccessorimport com.atlassian.jira.user.ApplicationUserimport com.atlassian.jira.user.util.UserManagerimport com.atlassian.jira.issue.IssueManagerimport org.apache.log4j.Loggerimport org.apache.log4j.Levelimport com.atlassian.jira.issue.IssueInputParametersimport com.atlassian.jira.ComponentManagerimport com.atlassian.jira.event.type.EventDispatchOption;import com.opensymphony.workflow.loader.ActionDescriptorimport com.opensymphony.workflow.loader.StepDescriptorimport com.atlassian.jira.bc.issue.IssueServiceimport com.atlassian.jira.issue.IssueInputParametersImplimport com.atlassian.jira.workflow.TransitionOptionsdef log = Logger.getLogger("com.acme.CreateSubtask")log.setLevel(Level.DEBUG)def issue = event.issuedef idPriorityLoIssue = issue.getPriorityObject().getId().toString();def customFieldManager = ComponentAccessor.getCustomFieldManager()def sequenceField = customFieldManager.getCustomFieldObjects(issue).find {it.name == "Seq."}log.info(sequenceField)def sequenceFieldValue = issue.getCustomFieldValue(sequenceField)log.info(sequenceFieldValue)def issueLinkManager = ComponentAccessor.getIssueLinkManager()issueLinkManager.getOutwardLinks(issue.id).each{ issueLink ->def linkedIssue = issueLink.getDestinationObject()log.info('1. ***** LinkedIssue: *****' + linkedIssue)def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()def issueInputParameters = new IssueInputParametersImpl()def issueService = ComponentAccessor.getIssueService()issueInputParameters.setPriorityId(idPriorityLoIssue.toString())issueInputParameters.setSkipScreenCheck(true)def validationResult = issueService.validateUpdate(user, linkedIssue.id, issueInputParameters)log.info('validationResult.isValid() ' + validationResult.isValid())if (validationResult.isValid()) {log.info('vaild')issueService.update(user, validationResult)log.info('2. ***** Priority of issue is set to: *****' + idPriorityLoIssue)def seqFieldLinkedIssue = customFieldManager.getCustomFieldObjects(linkedIssue).find {it.name == "Послед."}if(seqFieldLinkedIssue){def changeHolder = new DefaultIssueChangeHolder()seqFieldLinkedIssue.updateValue(null, linkedIssue, new ModifiedValue(linkedIssue.getCustomFieldValue(seqFieldLinkedIssue), sequenceFieldValue),changeHolder)}} else {log.info('not vaild')log.warn validationResult.errorCollection.errorslog.info('3. ***** Priority of issue is NOT set to: *****' + idPriorityLoIssue)}}
Yes. Have a look at the documentation for Script runner (if you can script:).
or attempt the scriptless solution below:
-remove the priority field from the edit screen.
-Create a global transition for set priority and add prioity to the corresponding screen.
-Use the Copy Field Value To Linked Issues post function from Misc. Workflow Extension plugin.
Thanks for your reply!How can I do it using ScriptRunner?
It looks like you're new here. Sign in or register to get started.