【问题标题】:Share file of a workflow with assignees - Alfresco与受让人共享工作流文件 - Alfresco
【发布时间】:2016-03-03 17:53:04
【问题描述】:

我正在制作自定义工作流程,并且我想与受让人共享我创建工作流程的文件,因为否则,用户只能通过“我最近修改过”以及任务完成时访问该文件,文件消失。

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

提前致谢。

【问题讨论】:

  • “与受让人分享”到底是什么意思?您是否希望受让人获得更改文件的权利?您是否希望受让人收到带有文件链接的任务?
  • 我希望受让人在例如“共享文件”或“我的文件”@StefanDeLaet 中拥有该文件。

标签: workflow alfresco activiti alfresco-share alfresco-webscripts


【解决方案1】:

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

获取工作流包节点:

 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());
    }
 }

【讨论】:

  • 但是这个共享文件是我在工作流中附加的受让人的共享文件?我不明白如何获得这些节点引用。
  • 共享文件夹在所有人之间共享。如果您想与有限数量的用户共享,您应该对各个受让人的用户主页执行上述操作。您可以使用路径搜索找到这些主文件夹的节点引用,例如 PATH:"/app:company_home/app:user_homes/cm:mjackson"
  • 只有一件事,packageNode是附加到工作流的文件的nodeRef?
  • 是的,正确的。你可以像这样找到这些:ActivitiScriptNode packageItemsbpm = (ActivitiScriptNode) execution.getVariable(BPM_PACKAGE); return nodeService.getChildAssocs(packageItemsbpm.getNodeRef());
  • 函数createAssociation的前两个参数是NodeRef。如何创建指向主文件夹路径的 nodeRef?我正在尝试这个:NodeRef assigneesNodeRef = assignees.get(i).getNodeRef(); nodeService.createAssociation(assigneesNodeRef, nodeRef, ContentModel.ASSOC_CONTAINS); 但这并没有给我路径。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
相关资源
最近更新 更多