Jira Insight脚本无法导入SimplePagedRequest的解决办法问询
Jira Assets(原Insight)自动化脚本获取组织列表的替代方案
方案1:动态加载SimplePagedRequest类(无需导入)
用Groovy的类加载器绕过导入限制,直接实例化目标类:
// 动态加载SimplePagedRequest类 def simplePagedRequestClass = Class.forName("com.atlassian.servicedesk.api.util.paging.SimplePagedRequest") // 通过构造方法创建实例,传入起始位置和每页数量 def pagedRequest = simplePagedRequestClass.getConstructor(Integer.TYPE, Integer.TYPE).newInstance(startRequest, 50) // 继续构建组织查询 def organizationsQuery = organizationService.newOrganizationsQueryBuilder() .serviceDeskId(你的服务台ID) // 替换成实际的服务台ID .pagedRequest(pagedRequest) .build()
方案2:匿名类实现PagedRequest接口
直接基于PagedRequest接口写匿名实现类,不用依赖SimplePagedRequest:
def pagedRequest = new com.atlassian.servicedesk.api.util.paging.PagedRequest() { @Override int getStart() { return startRequest } @Override int getLimit() { return 50 } } // 构建查询 def organizationsQuery = organizationService.newOrganizationsQueryBuilder() .serviceDeskId(你的服务台ID) .pagedRequest(pagedRequest) .build()
方案3:循环分页获取全量组织列表
如果要拿到所有组织,需要循环分页请求直到获取完所有数据,结合动态加载方式的示例:
def allOrganizations = [] def start = 0 def pageSize = 50 def serviceDeskId = 你的服务台ID // 替换为实际ID while (true) { // 动态创建分页请求 def pagedRequestClass = Class.forName("com.atlassian.servicedesk.api.util.paging.SimplePagedRequest") def pagedRequest = pagedRequestClass.getConstructor(Integer.TYPE, Integer.TYPE).newInstance(start, pageSize) def query = organizationService.newOrganizationsQueryBuilder() .serviceDeskId(serviceDeskId) .pagedRequest(pagedRequest) .build() def page = organizationService.getOrganizations(query) allOrganizations.addAll(page.getResults()) // 没有下一页就停止循环 if (page.isLast()) { break } start += pageSize } // allOrganizations就是全量组织列表
内容的提问来源于stack exchange,提问作者mibemerami
相关产品推荐
相关产品推荐

