Automatizar el etiquetado en los Documentos

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

Automatizar el etiquetado en los Documentos

Jump to solution

Como se puede definir una regla para que se automatice , para que por defecto todo documento que se cree dentro de la carpeta, se le incluya una etiqueta con el nombre de la carpeta.

Gracias

1 Solution

Accepted Solutions
angelborroy
Alfresco Employee

Re: Automatizar el etiquetado en los Documentos

Jump to solution

No podrás hacerlo mediante una regla estándar de Alfresco, requiere la programación de un script JS en el repositorio.

Crea el fichero add-tag-name.js en la ruta "Repositorio > Diccionario de Datos > Scripts" con el siguiente contenido:

document.addTag(document.parent.properties["cm:name"]);
document.save();

Después asigna una regla en la carpeta con los siguientes parámetros:

Cuando:
Se crean o entran elementos en esta carpeta

Si se cumplen todos los criterios:
Todos los elementos

Realizar acción
Ejecutar script 'add-tag-name.js'

A partir de este momento, cuando subas cualquier documento a la carpeta será etiquetado con el nombre de la carpeta.

Hyland Developer Evangelist

View solution in original post

8 Replies
cristinamr
Advanced

Re: Automatizar el etiquetado en los Documentos

Jump to solution

Buenas.

Tendrías que crearte un script que añada los tags que quieras al documento que se añada o cree en un espacio y en la regla hacer que se lance el script al crear o entrar elementos en esta carpeta.

El script sería algo así:

if (!document.hasAspect("cm:taggable"))   
   document
.addAspect("cm:taggable"); 
document
.addTag("test");
document.save();

Aquí te dejo los pasos para definir una regla: Creating a rule | Alfresco Documentation 

Cuéntanos si tienes problemas y te echamos una mano.

Un saludo,

Cristina.

--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc
angelborroy
Alfresco Employee

Re: Automatizar el etiquetado en los Documentos

Jump to solution

No podrás hacerlo mediante una regla estándar de Alfresco, requiere la programación de un script JS en el repositorio.

Crea el fichero add-tag-name.js en la ruta "Repositorio > Diccionario de Datos > Scripts" con el siguiente contenido:

document.addTag(document.parent.properties["cm:name"]);
document.save();

Después asigna una regla en la carpeta con los siguientes parámetros:

Cuando:
Se crean o entran elementos en esta carpeta

Si se cumplen todos los criterios:
Todos los elementos

Realizar acción
Ejecutar script 'add-tag-name.js'

A partir de este momento, cuando subas cualquier documento a la carpeta será etiquetado con el nombre de la carpeta.

Hyland Developer Evangelist
angelborroy
Alfresco Employee

Re: Automatizar el etiquetado en los Documentos

Jump to solution

Jaja, el script de Cristina es más fino. Lo hemos escrito a la vez...

Hyland Developer Evangelist
maxson
Active Member II

Re: Automatizar el etiquetado en los Documentos

Jump to solution

Gracias ‌ y ‌ lo pruebo y os comento

Un saludo

Max

cristinamr
Advanced

Re: Automatizar el etiquetado en los Documentos

Jump to solution

Jajaja, !!ahí estamos esa comunidad potente!!

--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc
maxson
Active Member II

Re: Automatizar el etiquetado en los Documentos

Jump to solution

Buenas Angel Borroy‌ me fue de perlas, pero ahora bien, si lo que quieren es añadir las etiquetas de todas las carpetas padre??, pongo ejemplo:

CARPETA1>  

                     Carpeta2>

                                       CARPETA3>

                                                                                          Documento.txt

Bien el documento txt, debería de tener 3 etiquetas (CARPETA1  /  Carpeta2  /   CARPETA3)

cristinamr
Advanced

Re: Automatizar el etiquetado en los Documentos

Jump to solution

Buenas.

Pues tendrás que recorrer desde el padre las caprtas y para añadir esos tags a los documentos hijos.

El script sería algo así y debe ser lanzado desde la javascript console:

var carpeta_padre = companyhome.childByNamePath('CARPETA1');
var tags_array=[];
recurse(carpeta_padre, function(node) {   
   for each (n in carpeta_padre.children)
   {
      tags_array = foundNode.getTags();

      if (n.isDocument){
         n.addTags(tags_array);
         n.save();
      }
} });


Ojo, lo he hecho sobre la marcha y abría que probarlo, pero la idea es que lances este script para probar con 1 padre y ver si los documentos hijos adquieren los tags de los padres. Para ir viendo el resultado puedes usar logger.log(); dentro del script.

Este script debe ser lanzado desde la javascript console porque estoy usando la función recurse que es exclusiva de la misma.

Por cierto, hay otras formas de hacerlo pero creo que es un buen punto de partida para que vayas controlando poco a poco la api de javascript.

Ve contándonos.

Un saludo,

Cris.

--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc
cesarista
Customer

Re: Automatizar el etiquetado en los Documentos

Jump to solution

Hola:

Este es otro ejemplo sencillo de autoetiquetado o autocategorización basado en el nombre de los documentos. Quizá pueda ser útil.

- Name-based autocategorization or tagging in Alfresco via content rule - zylk 

Saludos.

--C.