Se encuentra en:
Categorías y Aspectos con JavaScript
RECU-0075 (Recurso Ejemplo)
Tabla de contenidos
- Área: Ejemplos Ampliados de Acceso a Alfresco
- Carácter del recurso: Recomendado
Descripción
Iniciamos las variables necesarias
var salida="";
var espacio= "\r\n";
var nomFile="prueba.txt";
var documento = space.childByNamePath(nomFile);
Obtenemos el documento con el cual vamos a trabajar.
var query="PATH:\"//app:company_home/*\"";
query= query + "AND TYPE:\"cm:content\" ";
var nodes = search.luceneSearch(query);
for(var i=0;i<nodes.length;i++)
{
if(nodes[i].name==nomFile)
{
var doc=nodes[i];
}
}
Creamos la categoria
classification.createRootCategory("cm:generalclassifiable","categoriatest");
salida+="Categoria creada"+espacio;
Añadimos el aspecto al documento para que se pueda clasificar mediante categorias
doc.addAspect("cm:generalclassifiable");
doc.save();
Obtenemos las categorias del documento
var catNodeRef = search.luceneSearch("PATH:\"/cm:generalclassifiable//cm:categoriatest\"")[0] ;
var cats = doc.properties["cm:categories"];
if(cats==null)
{
cats=new Array();
}
salida+="el numero de categorias que tiene el documento son :"+cats.length+espacio;
Añadimos la categoria al documento respetando las que ya posee
var newCats = new Array();
for (var i=0; i < cats.length; i++)
{
newCats[i] = cats[i];
}
newCats.push(catNodeRef);
Guardamos las categorias en el documento
doc.properties["cm:categories"] = newCats;
doc.save();
Quitamos la categoria al documento
var catsActuales = doc.properties["cm:categories"];
var newCatsActuales = new Array();
if(catsActuales.length<=1)
{
doc.properties["cm:categories"]=newCatsActuales;
}
else
{
for (var i=0; i < catsActuales.length; i++)
{
if(catsActuales[i].properties.name!=catNodeRef.properties.name)
{
newCatsActuales.push(catsActuales[i]);
}
}
doc.properties["cm:categories"] = newCatsActuales;
}
Guardamos los cambios en el documento
doc.save();
Quitamos el aspecto al documento
doc.removeAspect("cm:generalclassifiable");
doc.save();
Para la eliminación de la categoria de un documento ,primero se debe de obtener la categoria en cuestión y despues comprobar si el documento la tiene,en caso afirmativo se eliminara.
var categorias = classification.getAllCategoryNodes("cm:generalclassifiable");
for(var i=0;i<categorias.length;i++)
{
if(categorias[i].name=="categoriatest")
{
categorias[i].removeCategory();
}
}
salida+="La categoria ha sido eliminada correctamente"+espacio;
Creamos el archivo de log
var dir1= space.childByNamePath("pruebas");
doc = dir1.createFile("log.txt");
doc.content += "LOG \r\n\r\n";
doc.content += salida+"\r\n\r\n";