我试过这个
@Override
public void notify(DelegateExecution arg0) throws Exception{
接着是
taskService = arg0.getEngineServices().getTaskService();
String id = arg0.getProcessInstanceId();
List <Attachment> attach = taskService.getProcessInstanceAttachments(id);
但是我没有得到任何依恋。由于 attach.size() 0 。 需要帮助。
或者我应该尝试使用露天RESTful api获取附件
答案 0 :(得分:2)
Kangkan,
您使用的是Activiti的Community Edition还是Enterprise Edition? 我问,因为企业版(和V6社区版)使用不同的机制来存储附件,因此您可能会得到您所看到的行为。
如果使用Enterprise Edition,则需要使用platform contentService而不是taskService来检索附件。
您将使用contentService.getAllContentForTask(taskId)
希望这有帮助, 格雷格
答案 1 :(得分: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()表示文档的节点引用。