1

我正在制作自定义工作流程,并且我想与受让人共享与我创建工作流程的文件,否则,用户只能通过“我已经最近修改“,当任务完成时,文件消失。与受让人共享工作流文件 - Alfresco

与受派人创建工作流时,如何共享文件?

在此先感谢。

+0

究竟你的意思是用“与受让人份额”是什么?你想让受让人获得更改文件的权利吗?您是否希望受让人接收到带有该文件链接的任务? –

+0

我希望受让人拥有“共享文件”中的文件或“我的文件”@StefanDeLaet中的文件。 – PRVS

回答

1

在获取工作流程包中的节点的工作流程启动时使用executionflowlistener,然后将“用户主目录”noderef添加为辅助父目录。

获取工作流程包的节点:

ActivitiScriptNode packageItemsbpm = (ActivitiScriptNode) execution.getVariable(BPM_PACKAGE); 
List<ChildAssociationRef> packageitemAssociations = nodeService.getChildAssocs(packageItemsbpm.getNodeRef()); 

然后遍历这些WF包节点,并把它们添加到受让人的主文件夹:

for(String assigneeName : assigneesList) { 
    ResultSet rs = getServiceRegistry().getSearchService().query(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE, SearchService.LANGUAGE_LUCENE, "PATH:\"/app:company_home/app:user_homes/cm:"+ assigneeName +"\""); 
    if(rs.length() > 0){ 
      NodeRef assigneeHome = rs.getNodeRef(0);           
      nodeService.addChild(assigneeHome, nodeRef, ContentModel.ASSOC_CONTAINS, nodeService.getPrimaryParent(nodeRef).getQName()); 
    } 
} 
+0

但是这个共享文件是我在工作流程中附加的受让人的共享文件?我无法理解如何获取这些节点的参数。 – PRVS

+0

共享文件夹在每个人之间共享。如果您想与有限数量的用户分享,您应该在个人受让人的用户家中进行上述操作。您可以使用路径搜索找到这些homefolders的noderefs,例如PATH:“/ app:company_home/app:user_homes/cm:mjackson” –

+0

只有一件事,packageNode是连接到工作流的文件的nodeRef? – PRVS