Tag Archives: Share

Como no sobrecargar form.get.head.ftl en Alfresco

En el blog de Michal Wróbel y su magnífico artículo “How to perform form field validation in Alfresco Share?” se explica la forma de usar los eventos para validaciones de campos en formulario de Alfresco Share. Lo hace sobreescribiendo la restricción obligatoria (mandatory constraint).

El problema viene cuando creamos un módulo para Alfresco Share con su fichero JAR correspondiente y lo instalamos en un Alfresco Share donde hay otro fichero form.get.head.ftl ya que el del JAR anulará al anterior con lo que no funcionarán las validaciones.

Para esto he decidido usar otra forma de tener cargado el fichero .js que necesitamos para las validaciones, por ejemplo form_validation_module.js dentro de nuestra instalación. La forma es usando la referencia a ficheros javascript de la configuración de los “forms” de forma que podamos tener y cargar los ficheros por cada módulo que tengamos sin tener que tocar el fichero original.

De esta forma, podremos tener el mismo fichero form_validation_module.js en la misma ubicación tomcat/webapps/share/components/form pero ahora lo referenciamos no en form.get.head.ftl sino dentro de nuestro fichero de configuración de los campos, por ejemplo module-form-config.xml de esta forma:


   
       
           
               
           

       
   


   
       
           
               
                   
               
               
                   
                       
                            <constraint type="mandatory"
                                validation-handler=”Alfresco.forms.validation.prueba”/>
                       
                   
               
           
       
   

Lo único que cambia del anterior método es que aquí no hace falta referenciar la parte ${page.url.context}/res y que hay que añadir “-min” al fichero si lo vamos a “compactar”.

De esta forma tendrémos más seguridad a la hora de desplegar distintos módulos para Alfresco Share donde haya otros ya instalados.

Problemas en la previsualización de documentos PDF en Alfresco

Primer problema:

En ocasiones los ficheros PDF no pueden ser visualizados por el Share de Alfresco. Esto puede ser debido a que si el PDF tiene activas las restricciones de impresión y/o copia, la librería SWFTools y en concreto la utilidad pdf2swf no es capaz de transformar el fichero.

Para estar seguros de que es este el problema, podemos llamar directamente a la utilidad con el fichero PDF y comprobar el resultado:

pdf2swf prueba.pdf -o prueba.swf

Si el mensaje que devuelve es “FATAL   PDF disallows copying” entonces estamos ante este problema.

La forma de solucionarlo es recompilar SWFTools y de esta forma evitamos el aviso y podremos ver los documentos.

Las siguientes instrucciones son para la compilación bajo Linux:

Bajamos el paquete de código fuente de las SWFTools (p.e. la versión 0.9.2 está probada en la versión 3.4.8 de Alfresco funcionando perfectamente), lo descomprimimos y entramos en el directorio creado.

En lib/pdf/pdf.cc comentamos las dos líneas siguientes:

if(!pi->config_print && pi->nocopy) {msg(” PDF disallows copying”);exit(0);}
if(pi->config_print && pi->noprint) {msg(” PDF disallows printing”);exit(0);}}

Configuramos de forma estática para que podamos llevarlo a otras distribuciones de Linux (yo la he probado en Ubuntu 11.10):

CC=/usr/bin/gcc-4.6 CXX=/usr/bin/g++-4.6 LDFLAGS=”-static” ./configure

Seguramente tengamos que instalar los paquetes para desarrollo como es el g++ y el gcc.

Luego:

make

Y por último:

make install 

O bien, simplemente sustituimos la utilidad pdf2swf que es la que se utiliza. Ya podremos ver los PDF bloqueados normalmente.

Segundo problema:

Otro problema que encontramos es que en la versión 3.4.x y 4.x los PDF se ven borrosos en la previsualización, esto es debido a los modificadores establecidos para realizar la conversión a SWF que pone Alfresco.

Para solucionarla tendremos que modificar el fichero webapps/alfresco/WEB-INF/classes/alfresco/subsystems/thirdparty/default/swf-transform.properties que generalmente tiene la siguiente línea:

swf.encoder.params=-s zoom=72 -s ppmsubpixels=1 -s poly2bitmap=1 -s bitmapfonts=1

Por esta otra (por ejemplo):

swf.encoder.params=-s zoom=100 -s ppmsubpixels=1 -s poly2bitmap=1 -s bitmapfonts=1

De esta forma se verán correctamente, eso si, el tiempo de conversión será mayor.

ACTUALIZACIÓN (12/07/2012): Aunque para compilar SWFTools se puede usar la información de los enlaces que doy al final, para Ubuntu 11 (y probado en la 12) tanto para amd64 como i386 se pueden seguir la siguiente secuencia de comandos de forma rápida:

sudo apt-get install build-essential checkinstall
sudo chown $USER /usr/local/src
sudo chmod u+rwx /usr/local/src
sudo apt-get install libgif-dev xpdf libfreetype6 libfreetype6-dev libjpeg62 libjpeg8 libjpeg8-dev
sudo wget http://www.swftools.org/swftools-0.9.1.tar.gz
cd lib/pdf
sudo wget http://gd.tuwien.ac.at/publishing/xpdf/xpdf-3.02.tar.gz
./configure
make


sudo checkinstall

Fuentes:
http://monkiki.wordpress.com/2010/04/19/compilar-pdf2swf-con-soporte-para-pdf-protegidos/
http://loftux.com/2012/01/08/replace-alfresco-standard-flash-viewer-with-pdf-js/
http://www.vservu.com/_blog/MegaZine3_-_tips,_tricks_and_hints/post/pdf2swf-switches/
http://www.swftools.org/
https://designbye.wordpress.com/2010/02/23/installing-swftools-and-pdf2swf-on-ubuntu-linux/
http://ubuntuforums.org/showthread.php?t=1821521

Uso del correo electrónico en Alfresco en la vida real – parte 5 (última)

En la parte 4 de este tema ya quedó todo configurado así que solo queda realizar la prueba de funcionamiento enviando los documentos desde Thunderbird desde josegrillo@fegor.com a partes@alfresco.fegor.com

5

 

Una vez enviado se puede ver el resultado en las carpetas:

6

Y los metadatos del fichero de email:

7

Con esto espero haber ayudado a todos los que necesitaban algún caso de uso en Alfresco y de cómo este puede ayudar mucho a las pequeñas y medianas empresas tanto en la versión Enterprise como Community. Lo ideal, creo, sería que Alfresco Sofware sacara una versión PYME para este segmento de empresas que necesitan un producto profesional y asequible.

Por último y sin contar el coste de la versión Enterprise, si se opta por la Community los gastos mensuales de esta infraestructura serían aproximadamente de:

1 Línea ADSL 3 a 10 Mbps = 50 eur./mes

1 IP fija para el ADSL = 10 eur./mes

1 Alquiler de dominio y ISP = 10 eur./mes

Cuentas de correo de 7Gb. en Google Apps = gratis

Sitios web en Google Apps = gratis

Dominio en Google Apps = gratis

Total = 70 euros al mes

Uso del correo electrónico en Alfresco en la vida real – parte 4

En esta cuarta parte vamos a crear las reglas necesarias para que al recibir el email de josegrillo@fegor.com los ficheros adjuntos se distribuyan como deben.

1

 

Y la regla para las fotos:

 

2

 

Quedando las dos reglas de la siguiente forma:

 

3

Ahora desde su correo josegrillo@fegor.com podrá enviar el mensaje a partes@alfresco.fegor.com para entregar los documentos… ¿si?, ¿pero cómo hacemos para que alfresco.fegor.com sea un subdominio? pues hay que crearlo en nuestras DNS, sí, en las que creamos las entradas para google, en este caso hay que crear un host con registro tipo A a la dirección del ordenador de la oficina y un registro MX apuntando al registro del tipo A. También creando un subdominio podría realizarse. Las columnas de la siguiente imagen corresponen al Host, Registro y Destino.

4

En la siguiente parte solo queda ver la realización de la prueba de funcionamiento…

Uso del correo electrónico en Alfresco en la vida real – parte 3

Continuamos con la tercera parte de este tema y vamos a crear un sitio llamado “Siniestros” donde se almacenarán los expedientes y fotografías de los partes de siniestros o accidentes. A este sitio hay que invitar al perito José Grillo con el rol de contribuyente para que pueda enviar los documentos. El sitio además será privado.

download3

Hay que crar también 3 carpetas, partes, expedientes y fotos para realizar las operaciones que queremos implementar. Cuando el perito envíe el expediente y fotos como adjuntos en el email, estos deberán distribuirse entre las carpetas creadas.

download4

Además a la carpeta “partes” hay que asignarle el aspecto “Atributos de Email” y asignarle el valor “partes” al atributo “alias”. Recuerdese que tuvimos que modificar share-config-custom.xml para hacer que se visualizase este campo.

download5

 

… asignación del valor en las propiedades de la carpeta “partes”:

download6

Uso del correo electrónico en Alfresco en la vida real – parte 2

Sobre la configuración de Alfresco, primero debemos crear el usuario Jose Grillo para que pueda autenticarse y enviar los emails. Este usuario además debe tener una cuenta de correo electrónico válida para recibir notificaciones, en este caso es josegrillo@fegor.com

No hay que olvidarse de añadirlo al grupo EMAIL_CONTRIBUTORS para tener permisos de enviar correos hacia Alfresco.

Ahora debemos configurar el correo electrónico saliente y entrante. Para la configuración del correo recomiendo la lectura de los siguientes enlaces en los que se explican perfectamente todas las posibilidades:

http://blyx.com/2010/02/08/integracion-de-alfresco-con-el-correo-electronico/

http://wiki.alfresco.com/wiki/Inbound_SMTP_Email_Server_Configuration
http://wiki.alfresco.com/wiki/Outbound_E-mail_Configuration

Vamos a configurar seguidamente el correo saliente de Alfresco para poder realizar notificaciones a los asegurados y peritos. La configuración de correo saliente para GMail a través de Google Apps en Alfresco se realiza en el fichero outboundSMTP.properties del subsistema email, en concreto en la ubicación …/extension/subsystems/email/OutboundSMTP/outbound

Fichero: outboundSMTP.properties

mail.host=smtp.googlemail.commail.port=465
mail.protocol=smtps
mail.username=alfresco@fegor.com
mail.password=alfresco
mail.encoding=UTF-8

mail.from.default=alfresco@fegor.com
mail.smtps.starttls.enable=true
mail.smtps.auth=true

Como se observa, se ha creado también una cuenta llamada alfresco@fegor.com para la autenticación SMTP.

La configuración del correo entrante, para que Alfresco haga de servidor SMTP se realiza en el fichero inboundSMTP.properties en …extension/subsystems/email/InboundSMTP/inbound

Fichero: inboundSMTP.properties

email.inbound.enabled=true email.inbound.unknownUser=anonymous email.server.enabled=true email.server.port=25 email.server.domain=alfresco.fegor.com email.server.connections.max=10 email.server.allowed.senders=.*@fegor.com email.server.blocked.senders=

Ahora debemos configurar en Share un fichero para que nos muestre el campo “alias” en la carpeta a la que asignaremos el aspecto “Atributos de Email”. Este fichero se llama share-config-custom.properties y se encuentra en la carpeta web-extension (…/share/classes/alfresco/web-extension). Esto es así porque por defecto, en Afresco Share, no está configurado para que este campo esté visible como pasaba con Alfresco Explorer.

Fichero: share-config-custom.properties


  
     <!–
         Used by the “Change Type” action

         Define valid subtypes using the following example:
           
              
           

         Remember to also add the relevant i18n string(s):
            cm_mysubtype=My SubType
      –>
     
        
           
        
     
    
      <!– forms
      –>
     
        
        
           
              
           
        

        
        
           
                             
           
           
        

        
        
                        
           
        
             
  

Realizadas las configuraciones se arranca Alfresco y continuamos con la configuración desde el propio Alfresco Share.

Uso del correo electrónico en Alfresco en la vida real – parte 1

Vamos a ver un caso de vida real en una PYME usando Alfresco y configurando el correo electrónico tanto de salida como de entrada para gestionar documentos.

El escenario es el siguiente: Imaginamos una pequeña aseguradora llamada FEGOR en la que se dispone de un pequeño servidor de Alfresco y un ADSL. Todos los demás servicios se realizan a través de Google Apps (http://www.google.com/apps/intl/es/group/index.html y pulsar Introducción). Es decir, al menos el correo electrónico. Así mismo, en Hospedaje y Dominios se tiene comprado el dominio fegor.com.

Los peritos podrán enviar correo electrónico con los ficheros necesarios, expediente y fotografías de los siniestros o accidentes que periten. Una vez recibido el correo, Alfresco moverá cada fichero a sus carpetas correspondientes.

Toda la configuración en Alfresco se realizará a través de Alfresco Share.

Configuración de Google Apps: La configuración es muy sencilla, solo hay que seguir los tutoriales y pasos para crear cuentas de correo, sites, etc. En nuestro caso, creamos una cuenta para “Jose Grillo” con el email josegrillo@fegor.com

Una de las particularidades de Google Apps es la de ofrecer la redirección de un dominio que ya hubiésemos comprado en algún ISP tanto para los “sites” o páginas webs, como para blogs (http://blogspot.com) como para el correo electrónico (gmail) lo que hace que podamos usar el dominio para crear cuentas de correo (hasta 50) más profesionales. Para ello hay que modificar los DNS del registrador o ISP (Internet Service Provider) donde está alojado el dominio siempre que no lo compremos directamente a Google. Los datos a poner en el sistema de DNS (cada ISP tiene su propio sistema e interface o panel de control para hacerlo) serán los siguientes:

Introducir los siguientes registros MX con las siguientes prioridades:

ASPMX.L.GOOGLE.COM. 10
ALT1.ASPMX.L.GOOGLE.COM.
20
ALT2.ASPMX.L.GOOGLE.COM. 20

ASPMX2.GOOGLEMAIL.COM. 30

ASPMX3.GOOGLEMAIL.COM. 30
ASPMX4.GOOGLEMAIL.COM. 30

ASPMX5.GOOGLEMAIL.COM. 30

Una vez hecho esto, el correo se puede manejar desde el dominio que tengamos alojado en el ISP de turno. En Hospedaje y Dominios (http://www.hospedajeydominios.com) es muy fácil ya que incluso incluye un enlace que rellena esta información en la gestión de DNS. En la imagen se ve la configuración tanto del correo electrónico como de los “alias” para redireccionar al sitio web, google docs, blog, etc.

Se configura seguidamente (si se quiere solamente, ya que GMail provee de interface web y si está bien configurada con acceso desde el dominio propio, p.e. mail.fegor.com) la cuenta en Thunderbird (http://www.mozillamessaging.com/es-ES/thunderbird/) que es muy fácil teniendo los datos. Podemos ver tutoriales desde el propio Google Apps o incluso en el asistente de “Herramientas->Configuración de las cuentas…->Opciones sobre la cuenta->Añadir cuenta de correo electrónico” que es prácticamente automático introduciendo 3 campos de información: nombre, correo electrónico y contraseña.