Alfresco Java代码将文档移动到特定的

时间:2015-02-13 06:05:16

标签: alfresco activiti

我想将附带工作流程的文档移动到某些特定的位置。我在java脚本中完成了这个。

        var destNode = search.findNode("workspace://SpacesStore/55bbdd0e-c185-4ab4-a7e8-5e8d9701a5ed");                     
                for (var i = 0; i < bpm_package.children.length; i++)
                {
                    bpm_package.children[i].move(destNode);
                }

但是我想要java版本一样吗?请帮我! 提前谢谢。

2 个答案:

答案 0 :(得分:1)

你可以使用fileFolderService来移动任何文件。在fileFolderService中有一个名为move的方法。你可以在下面的链接上查看更多内容。

http://dev.alfresco.com/resource/docs/java/org/alfresco/service/cmr/model/FileFolderService.html

enter image description here

对于使用filefolderService,您需要注入该服务。如果您正在使用javabackend webscript,您可以在任何上下文文件中执行此操作。

<bean id="webscript.{Path}.get" class="com.yaskawa.api.WebScript"
        parent="webscript">
        <property name="fileFolderService" ref="fileFolderService" />
    </bean>

以下是示例

FileFolderService().move(node,destNode, "NameOnDestination")

希望这会有所帮助:)

答案 1 :(得分:0)

这是 Java 等价的:

ActivitiScriptNode bpmPackageScriptNode = (ActivitiScriptNode) delegateTask.getVariable("bpm_package");
if(bpmPackageScriptNode != null) {
    NodeRef bpmPackage = bpmPackageScriptNode.getNodeRef();
    List<ChildAssociationRef> children = nodeService.getChildAssocs(
            bpmPackage, WorkflowModel.ASSOC_PACKAGE_CONTAINS, RegexQNamePattern.MATCH_ALL);
    for (ChildAssociationRef child : children) {
        NodeRef childRef = child.getChildRef();
        fileService.move(childRef, destinationXpath, null);
    }   
}

最好使用 move(...) 中的 FileFolderService 而不是 NodeSerivce,因为有一些额外的检查。