Alfresco 3.3에서 동적 목록 제약 조건을 만들려면 this post에 제공된 예제를 따르려고합니다.Alfresco의 동적 목록 제약
public class MyConstraint extends ListOfValuesConstraint {
private static ServiceRegistry registry;
@Override
public void initialize() {
loadData();
}
@Override
public List getAllowedValues() {
//loadData();
return super.getAllowedValues();
}
@Override
public void setAllowedValues(List allowedValues) {
}
protected void loadData() {
List<String> values = new LinkedList<String>();
String query = "+TYPE:\"cm:category\" [email protected]\\:description:\"" + tipo + "\"";
StoreRef storeRef = new StoreRef("workspace://SpacesStore");
ResultSet resultSet = registry.getSearchService().query(storeRef, SearchService.LANGUAGE_LUCENE, query);
// ... values.add(data obtained using searchService and nodeService) ...
if (values.isEmpty()) {
values.add("-");
}
super.setAllowedValues(values);
}
}
ServiceRegistry
참조가 Spring에 의해 주입하고, 그것을 잘 작동하고 :
그래서, ListOfValuesConstraint
를 확장 내 자신의 클래스를 만들었습니다. loadData()
을 initialize()
에서 호출하면 Lucene 쿼리를 실행하고 데이터를 가져 오며 드롭 다운에 올바르게 표시됩니다. 동적이 아닙니다. Alfresco 서버를 다시 시작하지 않으면 데이터가 새로 고쳐지지 않습니다.
getAllowedValues()
이 UI가이 제약 조건을 가진 속성을 표시해야 할 때마다 호출됩니다. 추천 게시물에 대한 아이디어는 loadData()
을 getAllowedValues()
에서 호출하기 때문에 값은 실제로 동적입니다. 그러나 내가 이것을 할 때, 나는 어떤 데이터도 얻지 못한다. Lucene 쿼리는 동일하지만 결과가 0이므로 내 드롭 다운에 -
만 표시됩니다.
현재, 내가 수행하고있는 쿼리는 +TYPE:"cm:category" [email protected]\:description:"something here"
이며 각각의 경우에 동일합니다. 그것은 초기화에서 작동하지만 getAllowedValues에서는 발생하지 않습니다.
왜 이런 일이 발생했는지 또는 어떻게 해결할 수 있습니까?
감사
편집 : 우리가 어제 프레스코 3.3.0g 커뮤니티로 업그레이드,하지만 우리는 여전히 같은 문제가 있습니다.
답변 해 주셔서 감사합니다. (알고 있습니다. 나는 조금 늦었습니다. :). 당신이 답을 쓸 때쯤에는 이미 회사 내의 다른 프로젝트로 옮겨 졌으므로 귀하의 제안을 시도 할 기회가 없었습니다. 어쨌든, 특히 동적 가치 목록에 대한 경고에 감사드립니다! – AJPerez