Se encuentra en:
Categorías y Aspectos con WebScript
RECU-0083 (Recurso Ejemplo)
Tabla de contenidos
- Área: Ejemplos Ampliados de Acceso a Alfresco
- Carácter del recurso: Recomendado
Descripción
Código correspondiente al archivo GestionCategorias.get.desc.xml
<webscript>
<shortname>GestionCategorias</shortname>
<description>Operaciones que se puede realizar con categorias en Alfresco</description>
<url>/sample/GestionCategorias</url>
<format default="html">argument</format>
<authentication>guest</authentication>
</webscript>
Código correspondiente al archivo GestionCategorias.get.html.ftl
<html>
<body>
<img src="/servicios/madeja/%24%7Burl.context%7D/images/logo/AlfrescoLogo32.png" alt="Alfresco" />
${salida}
</body>
</html>
Código correspondiente al archivo GestionCategorias.get.js
Inicializamos las variables necesarias
model.salida="";
var espacio="<br>";
var nomFile="prueba.txt";
var folder = roothome.childByNamePath("Company Home");
var documento = roothome.childByNamePath(nomFile);
Obtenemos el documento con el cual vamos a trabajar
var query="PATH:\"/";
query= query + folder.qnamePath;
query= query + "//*\" ";
query= query + "AND TYPE:\"cm:content\" ";
var a= folder.qnamePath;
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");
model.salida+="Categoria creada"+espacio;
Añadimos el aspecto al documento para que se pueda clasificar mediante categorías
doc.addAspect("cm:generalclassifiable");
doc.save();
Obtenemos las categorías del documento
var catNodeRef = search.luceneSearch("PATH:\"/cm:generalclassifiable//cm:categoriatest\"")[0] ;
var cats = doc.properties["cm:categories"];
if(cats==null)
{
cats=new Array();
}
model.salida+="el numero de categorias que tiene el documento son :"+cats.length+espacio;
Añadimos la categoría a las propiedades del documento
var newCats = new Array();
for (var i=0; i < cats.length; i++)
{
newCats[i] = cats[i];
}
newCats.push(catNodeRef);
Guardamos las categorías 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();
model.salida+="el documento tiene "+catsActuales.length+"categorias"+espacio;
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 del documento
doc.removeAspect("cm:generalclassifiable");
doc.save();
Eliminamos la categoría si exite
var categorias = classification.getAllCategoryNodes("cm:generalclassifiable");
model.salida+="el numero de categorias es :"+categorias.length+espacio;
for(var i=0;i<categorias.length;i++)
{
if(categorias[i].name=="categoriatest")
{
categorias[i].removeCategory();
}
}
model.salida+="La categoria ha sido eliminada correctamente"+espacio;