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();