lunes, mayo 23, 2011

Uso de Google Docs con Alfresco... "en la vida real"

Vamos a seguir con nuestros casos de uso en la vida real utilizando Alfresco. Para eso, nuestra ficticia aseguradora FEGOR necesita compartir documentos con los peritos, comerciales y asegurados. José Grillo, antes era perito de la compañía, actualmente lo han cambiado al departamento comercial, necesita de vez en cuando crear y modificar contratos y para ello usa Google Docs que le es muy cómodo ya que puede usarlo desde cualquier ordenador con navegador, además puede compartirlo con otras personas tanto sus jefes como asegurasdos (clientes) para que incluso terminen de rellenar datos que falten.

Como siempre, vamos a suponer que la aseguradora es pequeña y no tiene infraestructura propia para correo, web, etc., excepto el pequeño servidor de oficina con Alfresco instalado, un ADSL y la configuración para poder entrar desde fuera. Vamos a aprovechar las ventajas de Google para hacer esto de forma gratuita y no tener que contratar los servicios de terceros por lo que suponemos que hemos configurado Google Apps para nuestro correo y tenemos las siguientes direcciones:

Para la autenticación de Alfresco con Google Docs: alfresco@fegor.com
Usuario José Grillo que es ahora comercial: josegrillo@fegor.com
Usuario Toni Fuente es el director del departamento de contratos: tonifuente@fegor.com

José Grillo dejará una "copia de trabajo" de un contrato de seguro en Google Docs para que Toni Fuente pueda verificarla y dar el visto bueno o incluso modificar lo que haga falta desde su casa.

Para la configuración de la integración de Alfresco con Google Docs recomiendo los siguientes enlaces:

1. Toni de la Fuente tiene un magnífico vídeo que explica tanto la configuración como el funcionamiento de esta integración. (http://blyx.com/2011/05/23/screencast-sobre-integracion-de-alfresco-y-google-docs)


2. http://wiki.alfresco.com/w/images/7/78/Getting_Started_with_Using_Google_Docs_with_Alfresco.pdf

Hay que crear el fichero googledocs.properties en extension\subsystems\googledocs\default\default y poner los siguites valores:

Fichero: googledocs.properties
googledocs.googleeditable.enabled=true
googledocs.application.name=Alfresco ECM system
googledocs.url=https://docs.google.com/feeds/default/private/full
googledocs.downloadurl=https://docs.google.com/feeds/download
googledocs.username=alfresco@fegor.com
googledocs.password=password_de_la_cuenta
googledocs.spreadsheet.service.name=wise

Actualización (10/10/2011), Rodrigo Tardioli Moreira me avisa que debido a la política de seguridad de Google Docs, el valor de "googledocs.url" debe usar el protocolo HTTPS en lugar de HTTP, por tanto, la línea sería:

googledocs.url=https://docs.google.com/feeds/default/private/full

Para más información se puede ir a la siguiente dirección: http://googleappsdeveloper.blogspot.com/2011/09/requiring-ssl-for-documents-list.html

Para que visualice las opciones de creación de los documentos en Google Docs desde Alfresco Share hay que activarlo explícitamente en web-config-custom.xml  de la carpeta web-extension. (Para la versión 4.x no es necesario activarlo ya que viene por defecto descomentado)

[...]
<google-docs>
  <enabled>true</enabled>
  <creatable-types>
    <creatable type="doc">application/msword</creatable>
    <creatable type="xls">application/vnd.ms-excel</creatable>
    <creatable type="ppt">application/vnd.ms-powerpoint</creatable>
  </creatable-types>
</google-docs>

[...]

En el perfil del usuario José Grillo (Email=josegrillo@fegor.com y Usuario Google=josegrillo@fegor.com) y en el perfil de Toni Fuente (Email=tonifuente@fegor.com y Usuario Google=tonifuente@fegor.com)




Además, esto es opcional, si el usuario administrador va a crear todos los espacios donde los usuarios suban documentos y estos no van a ser administradores de dicho sitio, para que no haya problemas en la asignación de roles de escritura a los usuarios que suben los documentos (ya que el propietario o "owner" del documento en Google Docs será el que haya creado el sitio) recomiendo que (usuario admin) sea el mismo usuario de Google que el usado en el fichero de propiedades. En este caso, tanto el "Email" como el "Usuario Google" los he puesto como alfresco@fegor.com.

Vamos a crear un nuevo sitio colaborativo (privado) llamado "Contratos" y dentro de la Biblioteca de documentos crearemos carpetas para "Hogar", "Vehículos" y "Vida" que serán los tipos de contratos. Este sitio lo creará el usuario Toni Fuente ya que es el responsable de este departamento e invitará a José Grillo al que asignará el rol de Coordinador. José Grillo deberá responder desde su correo a esta solicitud de invitación, evidentemente.






Una vez realizado ambos usuarios deben tener acceso al sitio colaborativo (privado) y poder crear documentos.

Ahora ya puede entrar José Grillo y crear su primer contrato para ser enviado a Google Docs, para ello debe seleccionar la opción de "Crear contenido..." de "Google Docs documento" en la Biblioteca de documentos.





Una vez creado el documento (no el contenido) y rellenado todos los metadatos, puede subirlo (José Grillo) a Google Docs para poder editarlo desde cualquier lugar donde se tenga acceso. De hecho, lo que crea es una copia de trabajo del documento.



Desde este momento ya puede editarse mediante Google Docs utilizando el enlace que Alfresco Share crea para este directamente, "Este documento ha sido subido por usted a Google Docs para su edición". Además, José Grillo recibe un mensaje a su cuenta de google con el enlace del documento a editar.


Pulsando el enlace iremos directamente al documento y si no hay sesión inicializada en google, se solicitará. En este caso se solicita una autenticación desde Google Apps.


Al entrar, José Grillo puede modificar el documento de contrato con la ventaja de no tener que instalar un programa ofimático en su ordenador o mejor aún, puede editar y modificar el contrato desde cualquier lugar donde pueda acceder a una navegador desde un ordenador.


Pero, además, en este caso, José Grillo necesita dar permisos a su jefe Toni Fuente porque necesita que realice unos cambios. Para ello directamente en el botón "Share" de Google Docs puede incluirlo y asignarle el rol de modificar el documento.


Es evidente que además, si necesita que el "asegurado" pueda editar el documento o simplemente visualizarlo en modo lectura para imprimirlo, puede invitarlo igualmente. Solo tendrá que tener una cuenta en google.

Pero, ¿y si necestita que toda la aseguradora tenga acceso a dicho documento?, es decir, todos los que pertenezcan al dominio fegor.com deben poder modificar/ver el documento. Pues, desde el mismo Google Docs cuando estamos dentro de un dominio Google Apps podemos asignar permisos a nivel de la misma organización. Para ello pinchamos  en el enlace "Change" o "Compartir" de la primera línea de permisos que se visualiza, en este caso se puede observar en la imagen anterior. De esta forma podemos hacer que las cuentas creadas dentro de fegor.com tengan acceso vía un link o acceso directamente.


Una vez modificado, José Grillo puede "desproteger" el documento con lo que es borrado del acceso desde Google Docs y ya puede tener acceso desde el entorno Alfresco.




Solo comentaros que, igual que se ha creado desde cero el documento, para subir un documento a Alfresco y poder compartirlo en Google Docs necesitamos asignarle el aspecto "Editable en Google Docs" y ya podremos realizar todas las tareas que hemos visto.

Ahora toda la aseguradora FEGOR puede modificar, ver e imprimir contratos de seguros y además pueden enviar links compartidos a los asegurados, lo que le reporta un gran beneficio y flexibilidad a la hora de trabajar de forma deslocalizada y colaborativa...

... y espero que este artículo sirva de ayuda para extrapolarlo a otras situaciones similares :-)

34 comentarios:

Denys G. Santos dijo...

Muy bueno articulo. Neste articulo usted hecho una demonstración de la
utilización de googledocs con Alfresco en un sitio. ¿Es posible la
utilizacion de googledocs tambien en el repository?


Gracias

fegor dijo...

Efectivamente Denys, si vas al repositorio desde Alfresco Share, por ejemplo al espacio personal del usuario con el que te has identificado verás que también puedes crear documentos para compartirlos en Google Docs. Al fin y al cabo se basa en un aspecto y dicho aspecto puede asignarse a cualquier documento ;-)

Rebeca dijo...

Hola, tengo un problema que rogaría me contestases. Tengo una situación como la siguiente un site publico y moderado y quiero que las personas que tienen acceso al site puedan crear contenido con google docs. En la configuración he puesto la cuenta de administrador y en cada perfil está la personal. El usuario no tiene problemas para subir el contenido a google docs, pero sí para editar el contenido porque dice que no tiene permisos, por que puede ser eso debido? Es que veo que tendría que dar la cuenta de administración a los usuarios, que esos usuarios modifiquen la propiedad share del documento de google docs y entonces ya acceder, hago algo mal?
Muchas gracias por adelantado.
Rebeca

fegor dijo...

Rebeca, si sigues el post debería funcionarte. Ten en cuenta que los permisos los da el creador de site por lo que debe tener permisos para "cambiar" permisos en Google Docs. Además de esto, si el usuario puede subir (crear) un documento, también debería poder modificarlo.
Si me envías el log resultante de tus pruebas a mi dirección de correo puedo echarle un vistazo. Gracias por tu visita.

chuslobato dijo...

Gracias por el artículo, pero me he encontrado con un problema. Puedo crear los documentos , pero no me deja subirlos, me dice (Usted no tiene permiso para subir "mmm" a GoogleDocs) y lo raro es que en el log me aparece, textual: DEBUG [org.alfresco.repo.googledocs.GoogleDocsServiceImpl] Trying to initialise google docs service for user ${googledocs.username}
No aparece mi usuario de gmail, ni nada, como si no lo reconociese. ¿sabes a que puede ser debido? Gracias por tu ayuda

fegor dijo...

chuslobato, comprueba que tienes correctamente configurado googledocs.properties y en el lugar indicado en el post.

chuslobato dijo...

Hola de nuevo, googledoc.properties que está en:
c:\alfresco\tomcat\webapps\alfresco\WEB-INF\classes\alfresco\subsystems\googledocs\defautlt\ esta configurado con el usuario de correo del administrador de Alfresco que es el creador del espacio. Además también lo he configurado en el alfresco-global.properties

Cristina Martín dijo...

Qué grande Fernando y menudo currelo os habéis dado tu y toni. Muchas gracias! =)

chuslobato dijo...

PROBLEMA RESUELTO, resulta que en el fichero alfresco-global.properties en la linea de codigo del usuario de google había un caracter erroneo. GRACIAS POR TODO, ahora me meto con Web Quick Start, alguna sugerencia?

fegor dijo...

Jajaja, si, como te dije, algo tenía que ser en el properties. Seguramente el parser no lo leía correctamente.

Sobre WQS, si, quiero hacer un artículo sobre esto pero no he tenido mucho tiempo de escribir. Está muy bien, incluso para un "formador de formadores" en WCM como yo :D

Un saludo y enhorabuena.

Felipe dijo...

que tal, tengo un problema con el procedimiento, sigo los pasos tal como mencionas, pero no aparecen las opciones de crear documentos de google docs, estoy usando la versión 3.4 de alfresco, espero y eso no sea un inconveniente.

fegor dijo...

Hola Felipe, no hay problema con la versión 3.4 que yo sepa. Comprueba que está leyendo correctamente el fichero de propiedades para la configuración de google docs y que has configurado el usuario google en el perfil del usuario.

Felipe dijo...

que tal, de nuevo, aun me quedan algunas dudas, ¿que función tiene el ingresar un usuario google en el perfil de usuario?, habrá un inconveniente que este utilizando la versión de prueba de alfresco, ya que sigue sin aparecer en "crear contenido" la opcion de crear documentos de google docs.

Eleazar Lugo dijo...

Hola, eh seguido los pasos que mencionas y todo va bien. En la cuenta del usuario de alfresco
ya configuré su cuenta de google apps, con él creo un contenido de google docs, lo subo a google
docs pero el problema llega cuando abro el editor de google docs para modificar el contenido,
por que solo me permite visualizarlo mas no editarlo. El único que puede editarlo es el usuario
que ingresé en el fichero properties. Tampoco llega el correo a la cuenta del usuario que esta
haciendo la tarea en alfresco.¿Existe alguna configuración extra de lado de google? Saludos

marito696 dijo...

existen varios archivos alfresco-global.properties me podrian ayudar en q directorio se encontralo? tengo instaldo Afresco en windows
Saludos

marito696 dijo...

Buenas tarde.. gracias por el aporte. me Ayudan con algo.

Se crea el Documento pero no puedo subirlo el log dic:

18:57:49,992 User:mario.cabrera DEBUG [repo.googledocs.GoogleDocsServiceImpl] Trying to initialise google docs service for user mario.cabrera.r@gmail.com

La confi es la sig:
# Enables google editable functionality
googledocs.googleeditable.enabled=true

# Google docs application name
googledocs.application.name=Alfresco ECM system

# Google docs URL
googledocs.url=http://docs.google.com/feeds/default/private/full
googledocs.downloadurl=https://docs.google.com/feeds/download

# System google docs authentication credentials
googledocs.username=mario.cabrera.r@gmail.com
googledocs.password=xxxxxxxxxx

# Google docs spreadsheet service name
googledocs.spreadsheet.service.name=wise

espero me puedan dar una manito
Saludos

tardiolli dijo...

Hola, primero felicitaciones por la calidad de su trabajo! Cada vez que utiliza este tutorial para integrarse con Google Docs, que nunca había causado problemas. Sin embargo, no puedo subir un documento a Google Docs, este problema es reciente, estoy usando la versión 3.4.e de la comunidad y sale el siguiente error:


ERROR: duplicate key value violates unique constraint "idx_alf_conturl_cr"
DETAIL: Key (content_url_short, content_url_crc)=(1f4ff5a7.bin, 1758447429) already exists.
STATEMENT: insert into alf_content_url (id, content_url, content_url_short, content_url_crc, content_size, orphan_time) values ($1, $2, $3, $4, $5, $6)

probado en Mac y Linux, siempre el mismo error. Agradecemos la atención y lo siento por mal español!

fegor dijo...

Hola,

Felipe; el uso del usuario de google docs o una cuenta de gmail es para que este pueda tener los permisos necesarios para leer y modificar los documentos. Las versiones de prueba siempre están sujetas a algún error o problema que se arregla posteriormente pero no puedo decirte en concreto si es por eso.

Eleazar Lugo; ten en cuenta que el que sube el documento es el que más privilegios tiene y en este caso tienes que tener en cuenta quién es el dueño o propietario del "site" desde el que se sube el documento.

Marito696; solo hay o debe haber un fichero alfresco-global.properties y es en el directorio de ficheros de configuración o "extension", este depende del servidor de aplicaciones, pero en tomcat está en shared/classes/alfresco/extension

Respecto a tu segunda pregunta, comprueba tus datos de acceso.

Tardiolli; lo que me comentas parece un error interno de esa versión, si te fijas está intentando hacer uso de un valor de clave que ya está en el índice de la tabla y debe ser única.

tardiolli dijo...

Estimado Fegor me perdone insistencia. Sin embargo, esto requiere de mucha funcionalidad para una presentación. Siguiendo los pasos de su tutorial, que ya había logrado el éxito en varias ocasiones e incluso dejó los archivos "share-config-custom.xml" googledocs.properties y listo para usar.

He utilizado este tiempo para 3.4.d, marcó la línea a línea, todo funciona, excepto Google Checkout para la documentación.

La cuenta de usuario de Google Mail también lícitas, las contraseñas de marcado.
¿Crees que puede haber algún cambio que Google puede haber hecho, este problema sólo apareció un par de semanas.
Gracias por su atención

tardiolli dijo...

Fegor en los últimos días ocuparon su tiempo buscando una solución a la caja en google docs. El problema se debió a un cambio en la política de seguridad de la compañía Google ver: http://googleappsdeveloper.blogspot.com/2011/09/requiring-ssl-for-documents-list.html

en una palabra sólo tiene que añadir la (s) en la línea

"googledocs.url=http(s)://docs.google.com/feeds/default/private/full "

para volver al trabajo. Me estoy informando a usted que puede poner esta nota en su excelente tutorial y así beneficiar a otros colegas. Me tomo un tiempo más largo para felicitarlo por su blog que tiene una excelente calidad,

att, Tardiolli

fegor dijo...

Tardiolli, ya he actualizado el artículo con su aportación.

¡¡Muchas gracias!!

Guga dijo...

Excelente artículo, Fernando! Gracias a el ya tengo configurada la edición en GoogleDocs de los documentos que genero directamente en Alfresco.

Ahora, tengo unas preguntas:

1. Es posible editar documentos que no fueron creados nativamente por Google Docs? Es decir, si subo un .doc o un .xls a la Biblioteca de Documentos de Alfresco, es posible subirlo a GoogleDocs para modificarlo? Lo estoy intentando y no puedo, la verdad que me parece que sería algo extremadamente útil ya que la mayoría de los docs que tengo que subir han sido previamente creados en Office :(

2. Por algún motivo no puedo crear ni editar docs con otro usuario que no sea el admin que está configurado en los config. Hay algo que se deba modificar (ademas de la cuenta de Gmail en el perfil del usuario) para que esto sea posible?

Muchas gracias desde ya por la ayuda!

fegor dijo...

Hola Guga:

1. Si, claro, al subir el documento a Alfresco, asígnale el aspecto "Editable en GoogleDocs" y ya podrás.

2. Si, desde Google Docs tendrás que dar permisos de modificación a los usuarios que quieras que puedan modificar esos documentos.

Gracias por tus comentarios.

Mario Cabrera dijo...

FYI
He configurado esta opción en Alfresco 4 Community y el archivo en el cual debemos editar es:
share-documentlibrary-config.xml

Q se encuentra en el directorio:

C:\Alfresco\tomcat\webapps\share\WEB-INF\classes\alfresco

fegor dijo...

Gracias por tu aportación Mario. En la versión Enterprise sigue siendo igual que en la versión 3.4.x

Anónimo dijo...

¿hola usar también los formatos de openoffice? odt, ods...

fegor dijo...

Si claro, solo hay que asignarle el aspecto "Editable en Google Docs".

Gustavo Andres Atuesta Cadena dijo...

Muy buen día Fegor

Hace poco comencé a probar Alfresco community 4.0 y estoy tratando de realizar la integración con google docs. Seguí los pasos mencionados en esta entrada sin embargo estoy teniendo problemas con la creación de documentos. Cuando hago clic en crear contenido… google doc y asigno el nombre correspondiente, el documento creado se visualiza así:
http://i.imgur.com/eSRWR.jpg
y si trato de subir el documento a gdocs, me aparece el siguiente error
http://i.imgur.com/03qac.jpg
Revisando los logs, encontré lo siguiente:
“Unable to create google document with name gdocs (Copia de trabajo), because We're sorry, a server error occurred. Please try again.”
“Exception from executeScript - redirecting to status template error: 05250004 JavaException: org.alfresco.error.AlfrescoRuntimeException: 05250027 Unable to create google document”
A que se debera esto? Tenga en cuenta que puedo subir un documento de office a la biblioteca y subirlo a google docs para editarlo, este error solo aparece con los documentos creados directamente desde alfresco.

Agradezco su colaboración.

fegor dijo...

Esta claro que hay algún tipo de error al intentar crear el documento, habría que activar la parte de log en debug y volver a mirar donde exactamente esta fallando.

Anónimo dijo...

Hola
tengo un problema con alfresco, me esta consumiendo el 100% de CPU todo el tiempo, en los logs tengo esto:

DEBUG [com.arjuna.ats.arjuna.logging.arjLogger] Periodic recovery - first pass
DEBUG [com.arjuna.ats.arjuna.logging.arjLogger] StatusModule: first pass
DEBUG [com.arjuna.ats.jta.logging.loggerI18N] [com.arjuna.ats.internal.jta.recovery.info.firstpass] Local XARecoveryModule - first pass
DEBUG [com.arjuna.ats.arjuna.logging.arjLogger] AtomicActionRecoveryModule: Second pass
He leido que posria deberse a una reindexacion, pero yo no la tengo.
Alguna sugerencia??

Randy Benito Sandrea Jiménez dijo...

Hola Fer,

Vi tu blog y el de Toni y me parecen geniales, pero tengo una duda, el componente googledocs solo funciona para los sitios creados, o puedo usarlo en un folder personal fuera de los sitios.

Saludos

Fernando González dijo...

Randy, como ya he comentado por aquí, solamente asígnale el aspecto "Editable en GoogleDocs" y ya podrás compartirlo en Google Docs.

MAYLI dijo...

HOLA primero q nada soy nueva en esto de alfresco,,

Tu blog es exelente pero tengo un problema,,, a la hora de editar un documento en google docs,, me sale un error , q dice::::::::.

Se ha producido un error al editar el documento en google docs

,

a y tambien a la hora de crear documentos de tipo doc y power point no hay como,, sale errores,, a que se debe esto............



AGRADESCO MUCHA POR LA AYUDA

Fernando González dijo...

MAYLI, lo primero es activar la parte de log4j para googledocs ya que si no va a ser difícil de que descubras que está pasando.

Además, mira qué permisos y con qué usuarios lo has configurado todo.