Workflow simple: ¿cómo asignarlo a un grupo?

cancel
Showing results for 
Search instead for 
Did you mean: 
nicecons
Active Member II

Workflow simple: ¿cómo asignarlo a un grupo?

Estimados:

Estoy trabajando con "reglas" que lanzan un script de "workflow simple" para aprobar o rechazar documentos que entran en una carpeta y son movidos a otras según se aprueben o rechacen.

Esto funciona de maravilla puesto que no son necesarias "tareas" ni "fechas de vencimiento" ni nada más que revisar los documentos y aprobarlos o rechazarlos para que se muevan a las correspondientes carpetas.

Solo necesitaría agregarle que solo determinado grupo de usuarios puedan realizar esta aprobación o rechazo, y no encuentro la manera utilizando workflow simple.

La alternativa de pasarme a workflows complejos solo por este requisito me parece una mala solución.

¿Alguien podría, por favor, decirme dónde puedo encontrar información sobre cómo hacer esto con workflow simple? 

Este es el script que utilizo:

**********************************************************************************
var folders = document.parent.parent.getChildren();
var acceptFolder, rejectFolder;
for (var i = 0; i < folders.length; i++) {
if (folders[i].properties["cm:name"] == "ParaRevision2") acceptFolder = folders[i];
if (folders[i].properties["cm:name"] == "ParaRevision1_Rechazos") rejectFolder = folders[i];
}
if(!document.hasAspect("app:simpleworkflow")){
document.addAspect("app:simpleworkflow");
}
document.properties["app:approveStep"] = "Approve";
document.properties["app:approveMove"] = "true";
document.properties["app:approveFolder"] = acceptFolder;
document.properties["app:rejectStep"] = "Reject";
document.properties["app:rejectMove"] = "true";
document.properties["app:rejectFolder"] = rejectFolder;
document.save();

********************************************************************************

Muchas gracias.

4 Replies
angelborroy
Alfresco Employee

Re: Workflow simple: ¿cómo asignarlo a un grupo?

La respuesta corta es no, no es posible.

Lo cierto es que no es sencillo y requiere diferentes técnicas de programación en Alfresco.

Se me ocurre algo como lo siguiente.

La acción de aprobación / rechazo está definida en https://github.com/Alfresco/share/blob/master/share/src/main/resources/alfresco/share-documentlibrar... y https://github.com/Alfresco/share/blob/master/share/src/main/resources/alfresco/share-documentlibrar... 

Como ves, ambas acciones pueden ser ejecutadas por cualquier usuario con permisos para ver del documento. Mi propuesta sería restringir estas acciones para que pudiesen ser ejecutadas solo con usuarios con permisos de escritura, incluyendo una directiva Write similar a esta https://github.com/Alfresco/share/blob/master/share/src/main/resources/alfresco/share-documentlibrar...

De esta manera, en el script JS en el que realizas la definición de la tarea podrías cambiar los permisos del documento para que solo tuviesen permisos de escritura aquellas personas que pueden aprobarla o rechazarla.

No me gusta demasiado esta aproximación porque requiere sobre-escribir definiciones por defecto de Alfresco, pero no veo alternativas.

Hyland Developer Evangelist
nicecons
Active Member II

Re: Workflow simple: ¿cómo asignarlo a un grupo?

Muchas gracias por tu ayuda Ángel.

Tal como me temía no hay forma simple de resolverlo.

Estoy probando dándoles a los "no aprobadores" el rol "consumer" en la carpeta de destino, con esto no evito que aparezca el botón de "aprobar" pero al pulsarlo sale un mensaje de error y el documento se queda donde está.

Voy a ver si con esto los usuarios se quedan satisfechos, en caso contrario probaré con la alternativa que propones (como tú dices sería mejor no tocar definiciones por defecto de Alfresco.

Un saludo.

nicecons
Active Member II

Re: Workflow simple: ¿cómo asignarlo a un grupo?

Hola Ángel:

He visto que tienes publicado un addon "Alfresco Site Homepage Plus" para que los administradores de un sitio puedan definir que los usuarios entren, por ejemplo, directamente en la Biblioteca de Documentos.

En nuestro caso queremos que en todos los sitios que se creen todos los usuarios accedan directamente a la Biblioteca de Documentos.

¿Hay alguna modificación en los ficheros de configuración que consiga este efecto?

Te agradezco anticipadamente tu ayuda.

Un saludo.

angelborroy
Alfresco Employee

Re: Workflow simple: ¿cómo asignarlo a un grupo?

Creo que te podría funcionar lo siguiente. Con el addon instalado, crea una regla en la carpeta del repositorio "Sitios" que se active cada vez que se crea una carpeta. Como está en esta ruta, la regla se lanzará cada vez que se cree un Sitio.

Deberías poder realizar un script JS que asignase a la propiedad "homePagePath" la URL de la "documentLibrary", para que el addon tuviese un valor "por defecto".

La propiedad en cuestión se establece aquí: https://github.com/keensoft/alfresco-site-home-page-plus/blob/master/site-home-page-repo/src/main/ja...

Hyland Developer Evangelist