ScriptRunner Integration
Introduction
To access the Lookup Manager public API in ScriptRunner, the user need to add these two annotations
@WithPlugin(pluginKey) which makes the service class available to the script
@PluginModule to inject instance of the module into script
Public APIs
Sample code
import com.onresolve.scriptrunner.runner.customisers.PluginModule
import com.onresolve.scriptrunner.runner.customisers.WithPlugin
import com.akelesconsulting.jira.plugins.rest.LookupService
import org.apache.log4j.Logger
import org.apache.log4j.Level
import groovy.json.JsonSlurper
@WithPlugin("com.akelesconsulting.jira.plugins.LookupManager")
@PluginModule
LookupService lookupService
def log = Logger.getLogger("LookupManager")
log.setLevel(Level.DEBUG)
log.debug("***** Get table list *****")
def tableListText = lookupService.getTableList()
def tableListArray = new JsonSlurper().parseText( tableListText )
tableListArray.each { log.debug it }
log.debug("***** Get table id by name *****")
int tableId = lookupService.getTableIdByName("Project Category Table")
log.debug("Table id: " + tableId)
log.debug("***** Get table information ****")
def table = tableListArray.find {table -> table.name.equals("Project Category Table")}
log.debug("Table information: " + table)
log.debug("***** Get column information*****")
def columns = table.columns
log.debug("Column information: " + columns)
log.debug("***** Execute lookup to get matching values *****")
def matchingValuesArray = lookupService.lookup(tableId, "Category", "BUSINESS", "Project Key")
matchingValuesArray.each { log.debug it }
log.debug("***** Get table entries by table id *****")
def tableEntriesText = lookupService.getTableEntriesById(tableId)
def tableEntriesArray = new JsonSlurper().parseText( tableEntriesText )
tableEntriesArray.each { log.debug it }
More Examples
- How to add a new row to Lookup Manager via ScriptRunner
- How to set a custom field value when date is between two other dates
- How to import a table into Lookup Manager via ScriptRunner
- How to identify the workflows that are using Lookup Manager
- How to support Component field in Lookup Manager
- How to append values to multi-select fields
- How to use Issue Properties in ScriptRunner Groovy scripts