Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Can't return workflow scheme name from a project

April
Contributor
July 4, 2021

Hi there,

I'm trying to make a quick report based on an idea I saw on the Isos Technology blog (https://blog.isostech.com/atlassian/finding-where-issue-types-are-used-the-quick-way, worth a read).

I want to output this project data where the project contains a specific issue type:

Issue Name, Project Key, Issue Scheme, Workflow Scheme, IssueType Screen Scheme.

The variable "iwf" (Workflow Scheme) is returning a map, but I'm failing to get the value for the 'name' key from it.

Here's the code:

import com.atlassian.jira.component.ComponentAccessor

//replace with your issue type name
def issueTypeName = "Idea"

def schemeManager = ComponentAccessor.issueTypeScreenSchemeManager
def issueTypeSchemeManager = ComponentAccessor.issueTypeSchemeManager
def wfSchemeManager = ComponentAccessor.workflowSchemeManager
def sb = new StringBuffer()
//iterate over all projects in instance
ComponentAccessor.getProjectManager().getProjectObjects().each{ project->
//iterate over issue types for this project
project.getIssueTypes().each{ issuetype->
def thisIssueTypeName = issuetype.name.toString()
//check if correct issue type
if(thisIssueTypeName == issueTypeName) {
//get issue type screen scheme name for project
def iss = schemeManager.getIssueTypeScreenScheme(project).getName()
def its = issueTypeSchemeManager.getConfigScheme(project).getName()

// HERE IS THE PROBLEM:
def iwf = wfSchemeManager.getWorkflowScheme(project)
//def iwfn = iwf.collect {it.value.name} // nope

//output project and issue type screen scheme we found
sb.append("${issueTypeName}|${project.key}|${its}|${iwf}|${iss}\n")
}
}
}
log.info "Issue_Name|Project_Key|Issue_Scheme|Workflow_Scheme|IssueType_Screen_Scheme"
log.info sb.toString()

 

Example output:

Issue_Name|Project_Key|Issue_Scheme|Workflow_Scheme|IssueType_Screen_Scheme 

Idea|DPP|FSG Product Planning Issue Type Scheme|[name:FSG Product Planning Workflow Scheme, description:, id:11705]|FSG Product Planning Issue Type Screen Scheme

Any reference to 'name' throws a null by any means I've tried so far.

How do I pull "FSG Product Planning Workflow Scheme" out of that map?

Or, am I looking for that string in the wrong place to begin with?

Thanks,

April

1 answer

1 accepted

Suggest an answer

Log in or Sign up to answer
0 votes
Answer accepted
PD Sheehan
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.
July 5, 2021

If you are just trying to get the workflow name for a specific issue type, you can get that directly from the workflowSchemeManager

wfSchemeManager.getWorkflowName(project, issuetype.id)

Otherwise, to get the workflowScheme name for a project, you should be able to get that directly from the scheme object:

wfSchemeManager.getWorkflowScheme(project).name
April
Contributor
July 8, 2021

Peter, you are going to laugh at this one...

First thing I tried was ".name" but got the null error.

I just tried adding Groovy safe navigation:

wfSchemeManager.getWorkflowScheme(project)?.name

It turns out that if a project has the Jira default workflow scheme, there's no name to get. Thought it would have a name attribute like "Default...."

Other default schemes do have names, e.g. "Default Issue Type Scheme" but clearly that is not always true, so I guess safe nav is the way to go for querying schemes.

Thanks for your help. Thought I was losing it!

TAGS
AUG Leaders

Atlassian Community Events