Archivo de la categoría: guía

[Tutorial] Aprendiendo javascript para Alfresco (III)

Buenas de nuevo.

En este capítulo vamos a lanzar nuestro primer JavaScript ^^
Además aprenderemos lo siguiente:

  1. Hacer y ejecutar el Script.
  2. Explicación breve del código.
  3. Depurando el código: Consola de debug.

1. Hacer y Ejecutar un Script

Lo primero que vamos a hacer es ejecutar este sencillo JavaScript:

function muestraRutas(node)
{
   for each(n in node.children)
   {
         if ( n.isDocument )
               salida+="Ruta de los archivos: "+n.displayPath+"/"+n.name+"\n\r";

         for ( var i = 0; i < n.children.length; i++ ) {
            if ( n.children[i].isContainer == true )
               muestraRutas( n.children[i] );
         }
   }
}

// Objetos modificables

var nodo_raiz = "" ;
var salida = "";

var logFile = script.parent.childByNamePath( "muestraRutas.txt" );
// Precondiciones
if ( logFile == null )
  logFile = script.parent.createFile( "muestraRutas.txt" );

if ( nodo_raiz == "" )
{
   var space = companyhome;
}
else{
   var space = companyhome.childByNamePath( nodo_raiz );
}

if (space != null) {
   muestraRutas( space );
}
else{
   salida += "Error al localizar el espacio raiz: " + nodo_raiz + "\n\r";
   if (logger.isLoggingEnabled())
   {
      logger.log("Error al localizar el espacio raiz: " + nodo_raiz );
   }
}

//guardamos el archivo txt con el registro
logFile.content = salida;
logFile.save();
logFile.content;

Para ello, abriremos un bloc de notas para pegar este código, y lo llamaremos MuestraRutas.js y lo subiremos en nuestro alfresco dentro de Company Home/Data Dictionary/Scripts (Empresa/Diccionario de Datos/Scripts).

Una vez esté subido debemos tener algo similar a esto:

Una vez esté hecho este paso, debemos pinchar en More Action/View Details/Run Action (Más Acciones/ Ver Detalles/Ejecutar una Acción) Con esto ejecutaremos el script que acabamos de subir a nuestro alfresco.
Sigue leyendo

[Tutorial] Aprendiendo javascript para Alfresco (II)

CAPITULO II

Después de una breve introducción y de asimilar los conceptos básicos de Alfresco, vamos a pasar con un poco de materia que ya va siendo hora =)

Sabiendo que cada nodo tiene una serie de propiedades asociados, la pregunta que se nos plantea a continuación sería ¿cómo accedemos a esas propiedades y cuáles les corresponden a un determinado tipo de nodo?

Por partes: Para acceder vía javascript a alguna propiedad de un nodo, existen dos posibilidades:

  1. nodo.properties.name
  2. nodo.properties[«cm:name»]

Ambas son válidas, aunque la recomendada es la segunda forma. El ‘cm’, viene de «Content Model» y ahí es donde están definidos las propiedades que tiene asociado un nodo en Alfresco.

Si os fijáis en el archivo contentModel.xml dentro de
tomcat/webapps/alfresco/WEB-INF/classes/alfresco/model/ están definidas todas las propiedades y tipos de nodos que soporta Alfresco por defecto.

Por ejemplo, para el tipo person (es decir, un usuario) le corresponde lo siguiente:

<type name="cm:person">
         <title>Person</title>
         <parent>cm:authority</parent>
         <properties>
            <!-- The tokenisation set here is ignored - it is fixed for this type -->
            <!-- This is so you can not break person lookup -->
            <property name="cm:userName">
               <type>d:text</type>
               <mandatory>true</mandatory>
               <constraints>
                  <constraint ref="cm:userNameConstraint" />
               </constraints>
            </property>
            <property name="cm:homeFolder">
               <type>d:noderef</type>
               <mandatory>true</mandatory>
            </property>
             <property name="cm:firstName">
               <type>d:text</type>
               <mandatory>true</mandatory>
            </property>
            ...
      </type>

De propiedades tiene cm:userNameConstraint, cm:homeFolder, cm:firstName

Entonces… ¿Cuántos tipos de nodos existen y qué propiedades tienen?

En ese archivo están todas las propiedades a las que se pueden acceder por nodo y dependiendo del tipo que sea (folder, person…) les corresponerán unas u otras. Es cuestión de ver qué tipo de nodo vas a tocar y ver como se llama la propiedad que quieras acceder.

Realmente es necesario conocer este tipo de detalles porque una vez comencemos a elaborar un script al menos ahora sabréis de donde «salen las cosas».

Como consejo propio tened siempre a mano la wiki de Alfresco y los foros porque toda la documentación en castellano que hay están ahí.

En el siguiente capitulo haremos nuestro primer script y además aprenderemos como ejecutarlo y os enseñaré un par de «truquis» que he ido aprendiendo con el tiempo ;)

Hasta el Capitulo 3 ^o^!

<- Ir al capitulo 1 o Ir al capitulo 3 ->

[Tutorial] Aprendiendo javascript para Alfresco (I)

Muy buenas a todos ^^

Hace algún tiempo que llevo dándole vueltas a hacer un tutorial para aquellos que no sepan muy bien como empezar a programar para Alfresco. La idea surgió porque creo que no hay nada similar – menos en Castellano ¬¬ – y puesto que todos empezamos en algún momento de nuestra vida… Pues eso =)
El objetivo de este tutorial es que vayáis aprendiendo con ejemplos sencillos como va todo el tema, y si va bien, al finalizarlo podréis hacer vuestros propios Scripts con soltura.

Pero empecemos con una pequeña introducción para aclarar algunos conceptos de cara al código:

– ¿Qué es Alfresco?
Alfresco es un gestor documental que, entre otras numerosas cosas, sirve para guardar documentos. Digamos que es como un disco duro virtual en donde puedes guardar todo tipo de archivos como pdfs, documentos de texto, etc…

– ¿Qué es un nodo y por qué todo el mundo habla de él?
Todo lo que hay en alfresco son nodos: Las personas, los documentos, las carpetas o espacios… Por ejemplo el usuario Admin de cara a código no es más que un nodo con sus propiedades (nombre, apellidos, email …).

– ¿Qué propiedades tiene un nodo?
Hay varios tipos de nodos: Person, Folder, Space… Y cada uno de ellos tienen unas propiedades «fijas» y otras que son variables, propias de cada tipo. Por ejemplo:

  • Fija: El usuario «Paco Pérez» es un nodo de tipo Persona. De cara a código si yo tengo ese nodo, por ejemplo que se llame en código nodeVar, para obtener el nombre de ese nodo sería nodeVar.properties.name lo que te mostraría «Paco Pérez».
  • Variable: Un nodo de tipo Persona tiene una propiedad que se llama Email, pero un nodo de tipo Carpeta no.

Más adelante profundizaremos en este tema.

– ¿Entonces…?
Pues que claramente si vas hacer un script en la mayoría de los casos es probable que trates en él nodos y sus propiedades. Pensad que hasta el script más sencillo, como por ejemplo uno que cambie el nombre a un documento, ahí ya estás accediendo a la propiedad «name» del nodo a modificar (node.properties.name).

—-
Y… Con esto y un bizcocho hasta el siguiente capitulo :)

Vale. Sé que al principio cuesta un poco pero idos quedando con la idea de lo que estoy comentando que a base de usarlo y hacer scripts pequeños poco a poco y sin daros cuenta iréis aprendiendo y cogiendo soltura.

Un saludo ¡^o^!

Ir al capitulo 2 ->