Categorías y Aspectos con JavaScript

RECU-0075 (Recurso Ejemplo)
Tabla de contenidos

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";