我想将附带工作流程的文档移动到某些特定的位置。我在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版本一样吗?请帮我! 提前谢谢。
答案 0 :(得分:1)
你可以使用fileFolderService来移动任何文件。在fileFolderService中有一个名为move的方法。你可以在下面的链接上查看更多内容。
http://dev.alfresco.com/resource/docs/java/org/alfresco/service/cmr/model/FileFolderService.html
对于使用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
,因为有一些额外的检查。