When attempting to use scriptrunner scriptfield to read a Table Grid next gen field, we get the following error:
com.idalko.tgng.jira.server.api.GridException: evalBuildGrid: Error evaluating Javascript: No language and polyglot implementation was found on the classpath. Make sure the truffle-api.jar is on the classpath.!
at com.idalko.tgng.jira.server.api.GridServiceImpl$.com$idalko$tgng$jira$server$api$GridServiceImpl$$handleErrors(GridServiceImpl.scala:116)
at com.idalko.tgng.jira.server.api.GridServiceImpl.readFieldData(GridServiceImpl.scala:38)
at com.idalko.tgng.jira.server.api.GridService$readFieldData.call(Unknown Source)
at Script112.run(Script112.groovy:32)
Script looks like this...
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.plugin.PluginAccessor
import com.atlassian.jira.user.ApplicationUser
import org.apache.log4j.Category
def Category log = Category.getInstance("com.onresolve.jira.groovy.PostFunction")
log.setLevel(org.apache.log4j.Level.DEBUG)
log.debug "debug statements"
def issueManager = ComponentAccessor.getIssueManager();
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def issuetype = issue.getIssueType().name
def issueId = issue.getId()
// Set "Budget Estimate" field id
Long tgngCustomFieldId = 21000
ApplicationUser user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
// Get GridService - Ignore error messages for the plugin and service
PluginAccessor pluginAccessor = ComponentAccessor.getPluginAccessor()
Class apiServiceClass = pluginAccessor.getClassLoader().findClass("com.idalko.tgng.jira.server.api.GridService")
def gridService = ComponentAccessor.getOSGiComponentInstanceOfType(apiServiceClass)
// Read field data
def fieldData = gridService.readFieldData(issueId, tgngCustomFieldId, user, null)
def gridRows = fieldData.getRows()
StringBuilder result = new StringBuilder()
for (row in gridRows) {
def columns = row.getColumns()
result.append("${columns.get("Platform")};")
result.append("${columns.get("Type")};;")
result.append("${columns.get("Jan")};")
result.append("${columns.get("Feb")};")
result.append("${columns.get("Mar")};")
result.append("${columns.get("Apr")};")
result.append("${columns.get("May")};")
result.append("${columns.get("Jun")};")
result.append("${columns.get("Jul")};")
result.append("${columns.get("Aug")};")
result.append("${columns.get("Sep")};")
result.append("${columns.get("Oct")};")
result.append("${columns.get("Nov")};")
result.append("${columns.get("Dec")};")
result.append("${columns.get("EstComplete")};,")
}
return result