ScriptRunner: Table Grid Data returning empty result?

Aira Veronica Dizon February 9, 2020

Hello,

My goal is to read grid data values, however my script is returning an empty grid result even though my grid has values in it. This is the error I'm getting:

"Grid ID 11234 data cannot be retrieved [] Grid ID 11234 content []"

Here is my script:

import com.atlassian.crowd.embedded.api.User
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.security.JiraAuthenticationContext
import com.atlassian.plugin.PluginAccessor
import com.atlassian.jira.user.ApplicationUser

import com.onresolve.scriptrunner.runner.customisers.WithPlugin
import com.onresolve.scriptrunner.runner.ScriptRunnerImpl
import com.onresolve.scriptrunner.runner.customisers.PluginModule
import com.idalko.jira.plugins.igrid.api.data.TGEGridTableDataManager
import com.idalko.jira.plugins.igrid.api.config.grid.TGEGridConfigManager
import com.opensymphony.workflow.InvalidInputException

InvalidInputException invalidInputException


@WithPlugin("com.idalko.jira.plugins.igrid")
@PluginModule
TGEGridTableDataManager tgeGridDataManager

@WithPlugin("com.idalko.jira.plugins.igrid")
@PluginModule
TGEGridConfigManager tgeConfigManager
// get an issue
IssueManager issueManager = ComponentAccessor.getOSGiComponentInstanceOfType(IssueManager.class);
Issue issue = issueManager.getIssueObject("TEST-1");



// find TGE custom fields
PluginAccessor pluginAccessor = ComponentAccessor.getPluginAccessor();
Class tgeConfigManagerClass = pluginAccessor.getClassLoader().findClass("com.idalko.jira.plugins.igrid.api.config.grid.TGEGridConfigManager");
tgeConfigManager = ComponentAccessor.getOSGiComponentInstanceOfType(tgeConfigManagerClass);
List<Long> tgeCustomFieldIds = tgeConfigManager.getGridCustomFieldIds();

// get current user
JiraAuthenticationContext jiraAuthenticationContext = ComponentAccessor.getOSGiComponentInstanceOfType(JiraAuthenticationContext.class);
Object userObject = jiraAuthenticationContext.getLoggedInUser();
User user = userObject instanceof ApplicationUser ? ((ApplicationUser) userObject).getDirectoryUser() : (User) userObject

// read the grid data
Class dataManagerClass = pluginAccessor.getClassLoader().findClass("com.idalko.jira.plugins.igrid.api.data.TGEGridTableDataManager");
tgeGridDataManager = ComponentAccessor.getOSGiComponentInstanceOfType(dataManagerClass);

StringBuilder result = new StringBuilder();
for (Long tgeCustomFieldId : tgeCustomFieldIds) {
try {
def callResult = tgeGridDataManager.readGridData(issue.getId(), tgeCustomFieldId, null, null, 0, 10, user);
//result.append("Grid ID=" + tgeCustomFieldId + " content: " + callResult.getValues() + "\n");
String msg = result.append("Grid ID: " + tgeCustomFieldId + " content: " + callResult.getValues() + "\n");
invalidInputException = new InvalidInputException(msg)
throw invalidInputException;
} catch (Exception e) {
String msg2 = result.append("Grid ID=" + tgeCustomFieldId + " data cannot be retrieved: " + e.getMessage() + "\n");
invalidInputException = new InvalidInputException(msg2)
throw invalidInputException;

}
}

println(result.toString());
return result.toString();

 

0 answers

Suggest an answer

Log in or Sign up to answer