¿Es posible obtener una lista de los flujos de trabajo del documento se adjunta en el Alfresco

StackOverflow https://stackoverflow.com/questions/3530952

  •  30-09-2019
  •  | 
  •  

Pregunta

Estoy tratando de obtener una lista de los flujos de trabajo del documento se adjunta a en un WebScript al aire libre, pero estoy un poco atascado.

Mi problema original es que tengo una lista de archivos, y el usuario actual puede tener flujos de trabajo que se le asignan con estos documentos. Por lo tanto, ahora quiero crear una WebScript que se verá en una carpeta, tomar todos los documentos allí, y ensamblar una lista de documentos junto con las referencias de trabajo, si hay alguno para el usuario actual.

Yo sé sobre el objeto "flujo de trabajo" que me da la lista de flujos de trabajo para el usuario actual, pero esto no es una solución para mi problema.

Por lo tanto, se puede obtener una lista de los flujos de trabajo de un documento específico está unido a?

¿Fue útil?

Solución

Bueno, para futuras referencias, he encontrado una manera de conseguir todos los flujos de trabajo activos en un documento del javascript:

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

Otros consejos

utiliza packageContains asociación para encontrar los flujos de trabajo de documentos. A continuación he publicado el código en JavaScript al aire libre para los flujos de trabajo activos (como zladuric contestados) y también para todos los flujos de trabajo:

/*global search, logger, workflow*/
var getWorkflowsForDocument, getActiveWorkflowsForDocument;

getWorkflowsForDocument = function () {
    "use strict";
    var doc, parentAssocs, packages, 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}packageContains"];
    //
    if (packages) {
        packagesLen = packages.length;
        //
        for (i = 0; i < packagesLen; i += 1) {
            pack = packages[i];
            props = pack.getProperties();
            workflowId = props["{http://www.alfresco.org/model/bpm/1.0}workflowInstanceId"];
            instance = workflow.getInstance(workflowId);
            /* instance is org.alfresco.repo.workflow.jscript.JscriptWorkflowInstance */
            isActive = instance.isActive();
            logger.log(" + instance: " + workflowId + " (active: " + isActive + ")");
        }
    }
};

getActiveWorkflowsForDocument = function () {
    "use strict";
    var doc, activeWorkflows, activeWorkflowsLen, i, instance;
    //
    doc = search.findNode("workspace://SpacesStore/8847ea95-108d-4e08-90ab-34114e7b3977");
    activeWorkflows = doc.activeWorkflows;
    activeWorkflowsLen = activeWorkflows.length;
    for (i = 0; i < activeWorkflowsLen; i += 1) {
        instance = activeWorkflows[i];
        /* instance is org.alfresco.repo.workflow.jscript.JscriptWorkflowInstance */
        logger.log(" - instance: " + instance.getId() + " (active: " + instance.isActive() + ")");
    }
}


getWorkflowsForDocument();
getActiveWorkflowsForDocument();

Por desgracia, la API de JavaScript no expone todas las funciones de flujo de trabajo. Que se vea como conseguir la lista de instancias de flujo de trabajo que se adjunta a un documento sólo funciona en Java (Java o respaldado webscripts).

List<WorkflowInstance> workflows = workflowService.getWorkflowsForContent(node.getNodeRef(), true);

Un uso de esto se puede encontrar en la lista de flujo de trabajo en los detalles del documento: http://svn.alfresco.com/repos/alfresco-open-mirror/alfresco /HEAD/root/projects/web-client/source/java/org/alfresco/web/ui/repo/component/UINodeWorkflowInfo.java

Para llegar a los usuarios que se hayan asignado tareas que entonces necesitaría el uso getWorkflowPaths y getTasksForWorkflowPath métodos de la WorkflowService.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top