我遇到了一个问题,即对https://localhost:8080/alfresco/service/api/people
的调用仅返回前5000个用户。
我无法弄清楚如何将其余部分从系统中删除 - 该API似乎不支持“skipCount”参数。
我认为我可以通过使用WebDAV URL(https://localhost:8080/alfresco/webdav/User%20Homes/
)获取列表来获得至少一个用户名列表,但这也只返回前5000个。
那么,如何从5001开始获取用户列表?
答案 0 :(得分:3)
你可以给出一个maxResult参数。
例如https://localhost:8080/alfresco/service/api/people?filter=*&maxResults=10000
如果您查看此JIRA票证,您会看到当您在查询中提供*时,它将搜索SOLR,如果您没有,它将搜索数据库。
如果你看下面的JAVA代码:
public PagingResults<PersonInfo> getPeople(String pattern, List<QName> filterStringProps, List<Pair<QName, Boolean>> sortProps, PagingRequest pagingRequest)
{
ParameterCheck.mandatory("pagingRequest", pagingRequest);
您可以提供 PagingRequest ,因此您可以在5000之后找到需要行/结果的页面。
仍然需要制作一个检索结果的Java-Backend Webscript。
<强> --- --- UPDATE 强>
在org.alfresco.repo.jscript.People中有一个maxResult:
private int defaultListMaxResults = 5000;
如果你看得更远,那么这个类是在 script-service-context.xml 中启动的。 因此,只需覆盖bean peopleScript 并将defaultListMaxResults设置为更高的nr,重新启动Alfresco并且它应该可以工作。