Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以在Alfresco中获取文档所附加到的工作流列表_Java_Javascript_Alfresco - Fatal编程技术网

Java 是否可以在Alfresco中获取文档所附加到的工作流列表

Java 是否可以在Alfresco中获取文档所附加到的工作流列表,java,javascript,alfresco,Java,Javascript,Alfresco,我试图在Alfresco webscript中获取文档所附加到的工作流列表,但我有点卡住了 我最初的问题是,我有一个文件列表,当前用户可能有分配给他的工作流和这些文档。因此,现在我想创建一个webscript,它将在文件夹中查找所有文档,并将文档列表与任务引用(如果当前用户有)组合在一起 我知道“workflow”对象为我提供了当前用户的工作流列表,但这不是解决我问题的方法 那么,我可以获得特定文档所附加的工作流列表吗?不幸的是,javascript API没有公开所有工作流功能。看起来,获取附

我试图在Alfresco webscript中获取文档所附加到的工作流列表,但我有点卡住了

我最初的问题是,我有一个文件列表,当前用户可能有分配给他的工作流和这些文档。因此,现在我想创建一个webscript,它将在文件夹中查找所有文档,并将文档列表与任务引用(如果当前用户有)组合在一起

我知道“workflow”对象为我提供了当前用户的工作流列表,但这不是解决我问题的方法


那么,我可以获得特定文档所附加的工作流列表吗?

不幸的是,javascript API没有公开所有工作流功能。看起来,获取附加到文档的工作流实例列表只适用于Java(或Java支持的WebScript)

List workflows=workflowService.getWorkflowsForContent(node.getNodeRef(),true);
可在文档详细信息中的工作流列表中找到此功能的用法:


为了找到分配了任务的用户,您需要使用WorkflowService的GetWorkflowPathGettaskForWorkflowPath方法。

好吧,为了以后的参考,我找到了一种从javascript获取文档上所有活动工作流的方法:

var nodeR = search.findNode('workspace://SpacesStore/'+doc.nodeRef);
    for each ( wf in nodeR.activeWorkflows )
    { 
        // Do whatever here.
    }

我使用packageContains关联查找文档的工作流。 下面我用Alfresco JavaScript发布了活动工作流(如zladuric所回答)和所有工作流的代码:

/*全局搜索、记录器、工作流*/
变量getWorkflowsForDocument、getActiveWorkflowsForDocument;
GetWorkflowForDocument=函数(){
“严格使用”;
var doc、parentAssocs、packagesLen、i、pack、props、workflowId、instance、isActive;
//
doc=search.findNode(“workspace://SpacesStore/8847ea95-108d-4e08-90ab-34114e7b3977");
parentAssocs=doc.getParentAssocs();
packages=parentAssocs[”{http://www.alfresco.org/model/bpm/1.0}包装包含“];
//
如果(包){
packagesLen=packages.length;
//
对于(i=0;i
好吧,这确实回答了我的问题:(无论如何,我已经解决了这个问题,我怀疑我最近是否有时间回到这里,用Java重写它。
var nodeR = search.findNode('workspace://SpacesStore/'+doc.nodeRef);
    for each ( wf in nodeR.activeWorkflows )
    { 
        // Do whatever here.
    }