Error with ScriptRunner Custom Macro example

Dave Hollinden April 20, 2017

Hello,

I'm attempting to create a ScriptRunner custom script macro by following the example at:

https://scriptrunner.adaptavist.com/latest/confluence/macros/CustomMacros.html#_cql_search_macro

When I enter the macro code from the example, I get the following errors:

Screen Shot 2017-04-20 at 8.24.52 PM.png

I'm on Confluence 6.0.6 and using ScriptRunner 4.3.17.

I'm a newbie, so any help would be very much appreciated. 

Thanks, 

Dave

1 answer

0 votes
JohnsonHoward
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
April 25, 2017

Hi Dave,

 

Can I see which classes you are importing please?

 

Thanks

Johnson

Dave Hollinden April 27, 2017

Hi Johnson, 

I copied the entire script from the example at the link in my original post pasted it into my script macro, as follows:

import com.atlassian.confluence.api.model.Expansion
import com.atlassian.confluence.api.model.content.Content
import com.atlassian.confluence.api.model.pagination.PageResponse
import com.atlassian.confluence.api.model.pagination.SimplePageRequest
import com.atlassian.confluence.api.model.search.SearchContext
import com.atlassian.confluence.api.service.search.CQLSearchService
import com.atlassian.confluence.xhtml.api.XhtmlContent
import com.onresolve.scriptrunner.runner.ScriptRunnerImpl
import groovy.xml.MarkupBuilder

def cqlSearchService = ScriptRunnerImpl.getOsgiService(CQLSearchService)
def xhtmlContent = ScriptRunnerImpl.getOsgiService(XhtmlContent)
def maxResults = parameters.maxResults as Integer ?: 10

def cqlQuery = parameters.cql as String

def pageRequest = new SimplePageRequest(0, maxResults)
def searchResult = cqlSearchService.searchContent(cqlQuery, SearchContext.builder().build(), pageRequest, Expansion.combine("space")) as PageResponse<Content>

def writer = new StringWriter()
def builder = new MarkupBuilder(writer)

if (searchResult.size()) {
builder.table {
tbody {
tr {
th { p("Title") }
th { p("Space") }
}
searchResult.results.each { content ->
tr {
td {
p {
"ac:link" {
"ri:page"("ri:content-title": content.title, "ri:space-key": content.space.key)
}
}
}
td { p(content.space.name) }
}
}
}
}

if (searchResult.respondsTo("totalSize")) { // confl 5.8+
builder.p("Showing ${Math.min(maxResults, searchResult.totalSize())} of ${searchResult.totalSize()}")
}
}
else {
builder.p("No results")
}

def view = xhtmlContent.convertStorageToView(writer.toString(), context)
view

Thanks for your help. 

Dave

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events