На самом деле, я пытаюсь получить файлы из текущей задачи во флигеле, но не могу найти никакого дескриптора того, как получить текущий узел. Я обнаружил, что я могу получить все дочерние nodeRefs мне нужно с помощью этого:Как получить компаниюHome для nodeService.getChildAssocs в Alfresco?
List<ChildAssociationRef> children = nodeService.getChildAssocs(companyHome)
но here я только вижу, что мне нужно NodeRef nodeRef, QNamePattern typeQNamePattern, QNamePattern qnamePattern
это по крайней мере 3 параметров один из них также NodeRef и получается что мне нужен NodeRef для получения NodeRef. Насколько я понимаю, последний nodeRef похож на родительскую папку, но как ее получить, я тоже не знаю. Кроме того, можно получить NodeRef на этом пути:
StoreRef storeRef = new StoreRef(StoreRef.PROTOCOL_WORKSPACE, "SpacesStore");
ResultSet rs = searchService.query(storeRef, SearchService.LANGUAGE_LUCENE, "PATH:\"/app:company_home/app:user_homes/sys:boris/cm:mypics\"");
NodeRef companyHomeNodeRef = null;
try
{
if (rs.length() == 0)
{
throw new AlfrescoRuntimeException("Didn't find Company Home");
}
companyHomeNodeRef = rs.getNodeRef(0);
}
finally
{
rs.close();
}
, но я не могу жёстко пути как Alfresco может работать на любом сервере или друг. Также можно получить NodeRef с помощью Lucene, как таким образом:
SearchParameters sp = new SearchParameters();
sp.addStore(getStoreRef());
sp.setLanguage(SearchService.LANGUAGE_LUCENE);
sp.setQuery("TYPE:\"{http://www.alfresco.org/model/content/1.0}content\"");
ResultSet results = null;
try
{
results = serviceRegistry.getSearchService().query(sp);
for(ResultSetRow row : results)
{
NodeRef currentNodeRef = row.getNodeRef();
...
}
}
finally
{
if(results != null)
{
results.close();
}
}
Но это вернет мне все узлы, существующие в Alfresco. Возможно, есть возможность улучшить один из этих методов, чтобы достичь моих желаний? Или, может быть, есть другой способ?
UPD: здесь является частью кода, где я хотел бы получить и использовать узлы:
NodeService nodeService = getServiceRegistry().getNodeService();
ContentService contentService = getServiceRegistry().getContentService();
List<ChildAssociationRef> children = nodeService.getChildAssocs(companyHome);
if (children.isEmpty()) {
throw new AlfrescoRuntimeException("Workflow bpm_package does not contain any files");
}
for(ChildAssociationRef childAssoc: children){
NodeRef childNodeRef = childAssoc.getChildRef();
FileBinary = getFileBinary(childNodeRef, contentService);
дальше я собираюсь выполнять преобразование файлов. Надеюсь, что это прольет немного облегчения по ситуации.
Можете ли вы разрабатывающих ниже вещи 1. «один из них также NodeRef и получается, что мне нужно, чтобы получить NodeRef NodeRef.» 2.Для этого названия «Как получить компаниюДомой для nodeService.getChildAssocs в Alfresco». Я скажу приложение: companyhome вернется в lucene, вернет companyhome. 3.Actually Я пытаюсь получить файлы из текущей задачи в alfresco, но не могу найти никакого описания того, как получить текущий узел .--> Очень запутанно –
NodeRef = Файл, не так ли? для выполнения любых действий с файлами, прикрепленными к созданию задачи, мне нужны эти файлы. и я не могу понять, как их получить. Все примеры отрезаны от контекста, и невозможно, как получить параметры для этих методов –
все еще не в состоянии понять? Можете ли вы поместить весь код Java? Все то, что вы создали. –