La consola Javascript de Alfresco Share

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/
 

Enlaces:

    http://wiki.alfresco.com/wiki/3.4_JavaScript_API
    http://code.google.com/p/share-extras/wiki/JavascriptConsole

00

More Blog Entries

0 Comments