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();
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.