2017-05-01 20 views
0

我已经试过这 @Override public void notify(DelegateExecution arg0) throws Exception{Alfresco的 - 方法来获取Attachement

其次

taskService = arg0.getEngineServices().getTaskService(); 
String id = arg0.getProcessInstanceId(); 
List <Attachment> attach = taskService.getProcessInstanceAttachments(id); 

但是我没有得到任何附件。由于attach.size()是。 需要关于此的帮助。

或者我应该尝试露天的RESTful API来获取附件

回答

1

下面的代码相同。

ActivitiScriptNode scriptNode = (ActivitiScriptNode) arg0 
          .getVariable(WorkflowNotificationUtils.PROP_PACKAGE); 
        NodeRef workflowPackage = scriptNode.getNodeRef(); 

        List<ChildAssociationRef> childAssociationRefList = nodeService.getChildAssocs(workflowPackage); 
        for (ChildAssociationRef child : childAssociationRefList) { 
         System.out.println(child.getChildRef()); 
        } 

child.getChildRef()表示文档的节点参考。

2

康康

您使用Activiti的社区版或企业版吗? 我问,因为企业版(和V6社区版)使用不同的机制来存储附件,因此您可能会看到您所看到的行为。

如果使用企业版,那么您将需要使用的平台,而contentService的比taskService检索附件。

你会使用contentService.getAllContentForTask(任务id)

希望这有助于 格雷格

+0

我的是企业版。但是我没有跟着你。 'ApplicationContext ctx = ApplicationContextHelper.getApplicationContext(); \t \t ServiceRegistry serviceRegistry =(ServiceRegistry)ctx.getBean(ServiceRegistry.SERVICE_REGISTRY); \t \t ContentService contentService = serviceRegistry.getContentService();'现在如何从这里获得附件。谢谢 – Kangkan