Назначение хранилища контента с использованием JAVA API - PullRequest
0 голосов
/ 26 февраля 2020

У меня была публикация в хабе под открытым небом, пока не удалось найти решение.

Я пытался преобразовать javascript код API в java API, который перемещает файлы в другое хранилище контента ('storeB'). У нас есть storeB, определенный в - 'content-store-selector-context. xml'. Мы используем версию Alfresco 5.2 для предприятий.

java код скрипта следующим образом, - отлично работает. его рабочий код.

для каждого (var n в node.children) {if (n.isDocument) {

               //Apply script for moving files to DMS Store 01   
    n.removeAspect("cm:versionable");
    n.addAspect("cm:storeSelector");
    n.properties['cm:storeName'] = "storeB";      

    n.save();
  }

}

Ниже приведен Java API-код - но это Код не перемещает файлы в «storeB». Есть что-то, что я пропускаю?

Есть ли подобный метод, доступный в java API.

List<ChildAssociationRef> children = nodeService.getChildAssocs(dayFolderRef);
        Map<QName, Serializable> aspectsProps = new HashMap<QName, Serializable>(1);
        aspectsProps.put(ContentModel.PROP_STORE_NAME, "storeB");
        LOG.info("Folder::" + dayFolderRef.getId());
        LOG.info("Number of Subfolder to be moved is ::" + children.size());
        for (ChildAssociationRef childAssoc : children) {
            NodeRef childNodeRef = childAssoc.getChildRef();
            if (ContentModel.TYPE_CONTENT.equals(nodeService.getType(childNodeRef))) {
                LOG.info("Moving the file to secondary storae "+childNodeRef.getId());

                nodeService.removeAspect(childNodeRef, ContentModel.ASPECT_VERSIONABLE);
                nodeService.addAspect(childNodeRef, ContentModel.ASPECT_STORE_SELECTOR,   aspectsProps);                

            }
        }

Я вижу способ сохранения - java скрипт API. основываясь на ответе, полученном на форуме Alfresco, в javascript API нет метода сохранения. Java API работает в транзакциях, поэтому в конечном итоге будет зафиксирован. Но я могу видеть из БД, используя следующее SQL -

SELECT count(*)
FROM alf_content_url
WHERE orphan_time IS NOT NULL;

выше SQL возвращает тот же счет после выполнения кода, поэтому обновления БД не происходит. Ничего плохого ?

Любая помощь, приветствуется

С уважением Brije sh

1 Ответ

0 голосов
/ 27 февраля 2020

Я не понимаю, почему это не сработает, вы уверены, что даже вводите этот метод? Попробуйте добавить аспект селектора хранилища контента без карты свойств, затем добавьте свойство имени хранилища контента отдельно с помощью метода setProperty.

...