How do I get the issue workflow name

Haiducu December 22, 2015

Hi,

I have already a behavior set-up to make some specific fields mandatory or not depending on the resolution value from the resolve screen.

I want to elaborate the behavior script a bit and add an option that will not make a field mandatory if the project is using a specific workflow.

How can i get the workflow name in the script?

Thanks

 

3 answers

1 accepted

1 vote
Answer accepted
Jeremy Gaudet
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
December 22, 2015
import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.workflow.WorkflowManager;
import com.atlassian.jira.workflow.JiraWorkflow;
import com.atlassian.jira.issue.Issue;
 
WorkflowManager workflowManager = ComponentManager.getInstance().getWorkflowManager();
 
JiraWorkflow workflow = workflowManager.getWorkflow(issue);
String workflowName = workflow.getName();

This assumes there is a standard issue object, such as in a validator or condition; if not you'll have to create the issue explicitly.

0 votes
Haiducu December 23, 2015

Thank you for your answers. Both of them works. I am using the 1st one since I found it more easier to integrate in my existing code

Thanos Batagiannis _Adaptavist_
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
December 23, 2015

If you use a condition in a worfklow transmission I would also use @Jeremy Gaudet solution, with a small modification, if I may, import com.atlassian.jira.component.ComponentAccessor worfklowManager = ComponentAccessor.getWorkflowManager() In case you wanted to use a [behaviour|https://scriptrunner.adaptavist.com/4.2.0.2/jira/behaviours-overview.html] Jeremy's script wouldn't work cause as he already correctly mentioned: "This assumes there is a standard issue object, such as in a validator or condition; if not you'll have to create the issue explicitly". Kind regards Thanos

0 votes
Thanos Batagiannis _Adaptavist_
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
December 22, 2015

Hi Haiducu

In the behaviour script try this

import com.atlassian.jira.component.ComponentAccessor
def context = getIssueContext()
def projectId = context.getProjectId()
def issueTypeId = context.getIssueTypeId()
def workflowManager = ComponentAccessor.getWorkflowManager()
// use the String workflowName as you wish 
def workflowName = workflowManager.getWorkflow(projectId, issueTypeId).getName()
log.debug("Workflow name ${workflowName}")

Using the getIssueContext() you get an issueContext and from the workflowManager you can get a JiraWorkflow using the projectId and the issueTypeId.

Hope that helps.

 

Suggest an answer

Log in or Sign up to answer