La
consola de Javascript de Alfresco Share conforma una herramienta
precisa y eficaz, no sólo para desarrolladores de aplicaciones y
servicios via API Javascript y webscripts de Alfresco Share, sino para
otro tipo de tareas de mantenimiento de sistema, proporcionando una
potente shell con acceso a la información de nuestra instancia de
Alfresco via Javascript API.
La ultima versión de la consola de
Javascript disponible en el paquete Share Extras permite además el
acceso a los métodos de los principales objetos mediante la
combinación de Ctrl+Space. Esta empaquetada en un simple jar que se
añade al directorio tomcat/shared/lib de la instancia de alfresco.

A continuación muestro algunos ejemplos sencillos que pueden
ser interesantes en el contexto de una migración entre instancias de
Alfresco y que implementan busquedas en el repositorio.
El primer ejemplo permite exportar las categorias de una instancia a
un CSV (para hacer una carga posterior en otra instancia de Alfresco
via javascript API tambien):
var nodes = search.luceneSearch("PATH:"cm:generalclassifiable//*"");
for each(n in nodes) {
print(n.nodeRef + ";" + n.displayPath + '/' +n.name);
}
También es posible facilmente exportar los usuarios a un CSV, que es
interesante en el contexto de una migración de una instancia de
Alfresco a otra, utilizando el
componente de importación de usuarios CSV de Share:
var nodes = search.luceneSearch("TYPE:"cm:person"");
for each(n in nodes) {
print(n.name+';'+n.properties["userName"]+';'+n.properties["email"]);
}
Para esto también hay otros procedimientos:
http://code.google.com/p/share-import-export/
https://forums.alfresco.com/en/viewtopic.php?f=9&t=18732
Otra tarea similar atiende a los grupos de usuarios:
var nodes = search.xpathSearch("/sys:system/sys:authorities/*");
for each(n in nodes) {
var aux = n.children;
var users = ""
for each(m in aux) {
users = users + m.properties["userName"] + ","
}
users = users.substr(0,users.length-1);
print(n.properties["authorityName"]+";"+users+";"+n.nodeRef)
}
Para extraer las referencias de los nodos de los documentos del
repositorio se pueden invocar funciones recursivas como:
recurse(space, function(node) {
if (node.type != "{http://www.alfresco.org/model/content/1.0}folder"){
print(node.nodeRef+";"+node.displayPath + "/" + node.name);
}
});
que se pueden utilizar para reports de permisos como se hace en:
http://www.techbits.de/2011/11/06/using-the-javascript-console-permission-reporting/
o para precargar una estructura de objetos documentales:
http://www.techbits.de/2011/10/18/using-the-javascript-console-creating-and-populating-datalists/






