使用JAVA API分配内容存储库

问题描述 投票:0回答:1

我已经在露天集线器上发帖了,还无法解决。

我正在尝试将JavaScript API代码转换为Java API,从而将文件移动到其他内容存储区('storeB')。我们在-'content-store-selector-context.xml'中定义了storeB。我们正在使用Alfresco 5.2的Enterrprises版本。

java脚本代码如下,-效果很好。它的工作代码。

对于每个(node.children中的var n){如果(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在执行代码后返回相同的计数,因此不会发生数据库更新。哪里不对了 ?

任何帮助,赞赏

关于Brijesh

alfresco alfresco-share alfresco-webscripts alfresco-enterprise
1个回答
0
投票

我不明白为什么这行不通,您是否肯定要输入该方法?尝试添加没有属性映射的内容存储选择器方面,然后分别使用setProperty方法添加内容存储名称属性。

© www.soinside.com 2019 - 2024. All rights reserved.