Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Alfresco
Guillermo Rodríguez
I. Introducción
I. Introducción
Índice
¿Qué es un gestor documental?
Características de Alfresco
Licencia
I. Introducción
¿Qué es un gestor documental?
Un Gestor Documental (Document Management System)
es un programa que permite gestionar grandes
cantidades de documentos electrónicos.
Un poco de historia...
Fundado en 2005 por John Newton, cofundador de
Documentum y John Powell, ex COO de Business
Objects.
Sus principales inversores son Accel Partners, Mayfield
Fund y SAP.
El staff técnico original estaba compuesto por ingenieros
provenientes de Documentum y Oracle.
I. Introducción
Características de Alfresco I
Desde el punto de vista del usuario:
Interfaz web
Unidad compartida
Control de versiones
Búsquedas
Integración con portales existentes
Integración con Office
Reglas de contenidos
Etiquetado
Flujos de trabajo
I. Introducción
Características de Alfresco II
Desde el punto de vista del desarrollador/admin:
Basado en estándares abiertos
Programado en Java
Scripts ligeros (JavaScript y Freemarker)
Arquitectura REST
Motor de indexación Lucene
Motor de flujos de trabajo jBPM
Sin instalación en el cliente
Interfaces CIFS, WebDAV, FTP, IMAP
Seguridad (usuarios, grupos, roles, integración
LDAP/AD)
Motor de transformación de datos (OpenOffice y
SWFTools)
I. Introducción
Licencia
Versiones
Existen dos versiones de Alfresco:
Community
Soportada por la comunidad
Enterprise
Suscripción
Certificado
Asistencia técnica
Alfresco Network
II. Alfresco Web Content
Management
II. Alfresco Web Content Management
Pantalla inicial
II. Alfresco Web Content Management
Pantalla inicio sesión
II. Alfresco Web Content Management
My Alfresco
II. Alfresco Web Content Management
Company Home
II. Alfresco Web Content Management
My Home
II. Alfresco Web Content Management
Guest Home
II. Alfresco Web Content Management
Configuración pantalla inicial I
II. Alfresco Web Content Management
Configuración pantalla inicial II
II. Alfresco Web Content Management
Configuración pantalla inicial III
II. Alfresco Web Content Management
Consola de administración
II. Alfresco Web Content Management
Administración de usuarios
II. Alfresco Web Content Management
Creación de usuarios I
II. Alfresco Web Content Management
Creación de usuarios II
II. Alfresco Web Content Management
Creación de usuarios III
II. Alfresco Web Content Management
Prueba login nuevo usuario
II. Alfresco Web Content Management
Creación de espacios I
II. Alfresco Web Content Management
Creación de espacios II
II. Alfresco Web Content Management
Creación de contenidos I
II. Alfresco Web Content Management
Creación de contenidos II
II. Alfresco Web Content Management
Creación de contenidos III
II. Alfresco Web Content Management
Creación de contenidos IV
II. Alfresco Web Content Management
Propiedades de los contenidos I
II. Alfresco Web Content Management
Propiedades de los contenidos II
II. Alfresco Web Content Management
Flujos de trabajo I
II. Alfresco Web Content Management
Flujos de trabajo II
II. Alfresco Web Content Management
Flujos de trabajo III
II. Alfresco Web Content Management
Flujos de trabajo IV
II. Alfresco Web Content Management
Flujos de trabajo VI
II. Alfresco Web Content Management
Flujos de trabajo VII
II. Alfresco Web Content Management
Invitar usuarios a un espacio I
II. Alfresco Web Content Management
Invitar usuarios a un espacio II
II. Alfresco Web Content Management
Administrar usuarios de un espacio
II. Alfresco Web Content Management
Crear reglas en un espacio I
II. Alfresco Web Content Management
Crear reglas en un espacio II
II. Alfresco Web Content Management
Crear reglas en un espacio III
II. Alfresco Web Content Management
Crear reglas en un espacio IV
II. Alfresco Web Content Management
Administrar reglas de un espacio
II. Alfresco Web Content Management
Búsqueda Avanzada
III. Alfresco Share
III. Alfresco Share
Introducción
Pantalla inicial
Consola de administración
Crear sitio nuevo
Configuración del sitio
Funcionalidades (wiki, blog, bibiloteca de
documentos, calendario, enlaces, foro)
III. Alfresco Share
Inicio de sesión
III. Alfresco Share
Pantalla inicial
III. Alfresco Share
Consola de administración
III. Alfresco Share
Configurar pantalla inicial
III. Alfresco Share
Crear sitio nuevo I
III. Alfresco Share
Crear sitio nuevo II
III. Alfresco Share
Pantalla inicial de un sitio
III. Alfresco Share
Configuración de un sitio
III. Alfresco Share
Invitar a un usuario a un sitio
III. Alfresco Share
Wiki
III. Alfresco Share
Blog
III. Alfresco Share
Biblioteca de documentos
III. Alfresco Share
Calendario
III. Alfresco Share
Enlaces
III. Alfresco Share
Foro
III. Alfresco Share
Listados de datos
III. Alfresco Share
Usuarios del sitio
IV. Instalación y
Configuración
IV. Instalación y Configuración
Introducción
Obtener Alfresco
Antes de empezar
Ejecutar el instalador
Configuración
Instalar SWFTools
Buscar programas (SWFTools, OpenOffice)
Archivo alfresco-global.properties
Notificaciones por correo electrónico
Traducir interfaz
Varios...
IV. Instalación y Configuración
Obtener Alfresco
Página de descarga:
http://wiki.alfresco.com/wiki/Download_and_Insta
ll_Alfresco
Ejecutar:
$ ./Alfresco-Community-3.3g-Linux-x86-Install
IV. Instalación y Configuración
Instalación I
IV. Instalación y Configuración
Instalación II
IV. Instalación y Configuración
Instalación III
IV. Instalación y Configuración
Instalación IV
IV. Instalación y Configuración
Instalación V
IV. Instalación y Configuración
Instalación VI
IV. Instalación y Configuración
Instalación VII
IV. Instalación y Configuración
Instalación VIII
IV. Instalación y Configuración
Instalación IX
IV. Instalación y Configuración
Instalación X
IV. Instalación y Configuración
Instalación XI
IV. Instalación y Configuración
Instalación XII
IV. Instalación y Configuración
Instalación XIII
IV. Instalación y Configuración
Instalación XIV
IV. Instalación y Configuración
Instalación XV
IV. Instalación y Configuración
Instalar SWFTools
Obtener SWFTools:
http://www.swftools.org/download.html
(descargar versión 0.9 o superior)
Instalar
$ tar xzf swftools-0.9.1.tar.gz
$ cd swftools-0.9.1/
$ ./configure
$ make
$ sudo make install
IV. Instalación y Configuración
Buscar programas
Buscar comandos de SWFTools:
$ whereis pdf2swf
pdf2swf: /usr/local/bin/pdf2swf
(Hay que poner la ruta completa)
$ whereis convert
Convert:
/usr/bin/convert/usr/share/man/man1/convert.1.gz
(Hay que poner la carpeta root, donde se encuentra la
carpeta bin)
Buscar comando OpenOffice
$ whereis soffice
soffice: /usr/bin/soffice
(Hay que poner la ruta completa y tener cuidad con la ruta a
ooo.user, ya que hay un bug en el instalador para Debian)
IV. Instalación y Configuración
Archivo alfresco-global.properties I
El archivo alfresco-global.properties es el
principal archivo de configuración de Alfresco.
ooo.user=/home/willy/trabajo/charlas/alfresco_eghost_2010/alfresco33c/alf_data
/oouser
jodconverter.officeHome=/home/willy/trabajo/charlas/alfresco_eghost_2010/alfre
sco33c
jodconverter.portNumbers=8101
#ooo.enabled=false
#jodconverter.enabled=true
img.root=/usr
swf.exe=/usr/local/bin/pdf2swf
IV. Instalación y Configuración
Notificaciones por correo electrónico
Configuración de envío de notificaciones:
$ vim tomcat/shared/classes/alfresco-global.properties
#
# Sample Gmail settings
# ------------------------------------
mail.host=smtp.gmail.com
mail.port=465
mail.protocol=smtps
mail.username=micorreo@gmail.com
mail.password=miconstraseña
# New Properties
mail.smtps.starttls.enable=true
mail.smtps.auth=true
IV. Instalación y Configuración
Traducir el interfaz
Descargar archivo de traducciones:
http://forge.alfresco.com/projects/alfrescoeses/
Descomprimir:
alfresco_3.2_ES-beta1/messages en
tomcat/shared/classes/alfresco/messages
alfresco_3.2_ES-beta1/web-extension en
tomcat/shared/classes/alfresco/web-extension
IV. Instalación y Configuración
Varios
Archivo de log:
$ vim alfresco.log
PermGenSizeError
$ vim tomcat/bin/startup.sh
Añadir al principio la linea:
JAVA_OPTS = "${JAVA_OPTS} -XX:PermSize=512m
-XX:MaxPermSize=512m"
V. Desarrollo sobre
Alfresco
V. Desarrollo sobre Alfresco
Introducción
Instalación Alfresco SDK
Integración con Eclipse
Definición de un modelo de datos
Visualización del modelo de datos
Acciones
Flujos de trabajo
V. Desarrollo sobre Alfresco
Instalación Alfresco SDK
Prerequisitos:
JDK 1.6.x
Eclipse IDE 3.2+
MySql 1.5.0.67
Descargar:
http://sourceforge.net/projects/alfresco/files/SDK/
$ vim tomcat/shared/classes/alfresco/extension/web-client-
config-custom.xml
V. Desarrollo sobre Alfresco
Visualización del modelo de datos I
<alfresco-config>
<!-- Para que se muestre el tipo al crear un contenido nuevo -->
<config evaluator="string-compare" condition="Content Wizards">
<content-types>
<type name="custom:ejemplo" display-label="Expediente"/>
</content-types>
</config>
<!-- Para que se muestren los campos al editar los metadatos del
contenido -->
<config evaluator="node-type" condition="custom:ejemplo">
<property-sheet>
<show-property name="custom:codigo"/>
<show-property name="custom:relacionados"/>
</property-sheet>
</config>
(...)
V. Desarrollo sobre Alfresco
Visualización del modelo de datos II
(…)
<!-- Para que al hacer la búsqueda simple se busque por esos datos -->
<config>
<client>
<simple-search-additional-attributes>
<qname>{custom.model}codigo</qname>
<qname>{custom.model}relacionados</qname>
</simple-search-additional-attributes>
</client>
</config>
(...)
V. Desarrollo sobre Alfresco
Visualización del modelo de datos II
(...)
<!-- Para que los datos aparezcan en la búsqueda avanzada, tanto el
tipo como los campos -->
<config evaluator="string-compare" condition="Advanced Search">
<advanced-search>
<content-types>
<type name="custom:ejemplo" />
</content-types>
<custom-properties>
<meta-data type="custom:ejemplo" property="custom:codigo" />
<meta-data type="custom:ejemplo" property="custom:relacionados" />
</custom-properties>
</advanced-search>
</config>
</alfresco-config>
V. Desarrollo sobre Alfresco
Acciones I
Para crear una acción se toma como referencia el
proyecto SDK CustomAction.
El proyecto contiene:
archivo xml que define qué clase implementa la
acción (logger-action-context.xml)
la propia clase (LoggerActionExecuter.java)
se puden añadir archivos de propiedades con las
cadenas de texto (logger-action-
messages.properties)
V. Desarrollo sobre Alfresco
Acciones II
hello-world-action-context.xml:
<beans>
<!-- Logger Action Bean -->
<bean id="hello-world-action"
class="org.alfresco.sample.HelloWorldActionExecuter" parent="action-
executer"/>
<!-- Load the Logger Action Messages -->
<bean id="hello-world-action-messages"
class="org.alfresco.i18n.ResourceBundleBootstrapComponent">
<property name="resourceBundles">
<list>
<value>org.alfresco.sample.hello-world-action-messages</value>
</list>
</property>
</bean>
</beans>
V. Desarrollo sobre Alfresco
Acciones III
HelloWorldActionExecuter.java:
public class HelloWorldActionExecuter extends ActionExecuterAbstractBase
{
/** The name of the action */
public static final String NAME = "hello-world-action";
@Override
protected void executeImpl(Action action, NodeRef actionedUponNodeRef)
{
System.out.println("Hello World!!!");
}
@Override
protected void addParameterDefinitions(List<ParameterDefinition> paramList)
{
}
}
V. Desarrollo sobre Alfresco
Acciones IV
hello-world-action-messages.properties:
# Action title and description
hello-world-action.title=Hello World Action
hello-world-action.description=This action says hello to the world.
Despligue de la acción:
(...)
V. Desarrollo sobre Alfresco
Definición de un flujo de trabajo IV
(...)
<!-- La siguiente tarea es Estado1 -->
<task-node name="Estado1">
<!-- Esta tarea se asiganará al usuario definido previamente para ello -->
<task name="wfl:tarea1Task" swimlane="assignee">
<event type="task-create">
<!-- Al crear la tarea se le asignan prioridad y fecha para la que debería estar -->
<script>
if (bpm_workflowDueDate != void) taskInstance.dueDate = bpm_workflowDueDate;
if (bpm_workflowPriority != void) taskInstance.priority = bpm_workflowPriority;
</script>
</event>
</task>
<!-- De este estado se va a Estado2 -->
<transition to="Estado2" name="">
<action name="action" class="com.sample.action.MessageActionHandler">
<message>Going to the second state!</message>
</action>
</transition>
</task-node>
(...)
V. Desarrollo sobre Alfresco
Definición de un flujo de trabajo VI
(...)
<!-- Estado2 -->
<task-node name="Estado2">
<!-- Desde aquí se va a al estado final -->
<transition to="fin" name="">
<action name="action" class="com.sample.action.MessageActionHandler">
<message>Going to the last state!</message>
</action>
</transition>
</task-node>
$ vim tomcat/shared/classes/alfresco/extension/mi-modelo-
context.xml
Añadimos:
<list>
<value>alfresco/extension/workflowModel.xml</value>
</list>
V. Desarrollo sobre Alfresco
Modelo de datos II
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN'
'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
<!-- Registration of new models -->
<bean id="extension.dictionaryBootstrap"
parent="dictionaryModelBootstrap" depends-on="dictionaryBootstrap">
<property name="models">
<list>
<value>alfresco/extension/customModel.xml</value>
<value>alfresco/extension/workflowModel.xml</value>
</list>
</property>
</bean>
</beans>
V. Desarrollo sobre Alfresco
Modelo de datos III
$ vim tomcat/shared/classes/alfresco/extension/workflowModel.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- Custom Model -->
<model name="wfl:customModel"
xmlns="http://www.alfresco.org/model/dictionary/1.0">
<!-- Optional meta-data about the model -->
<description>Workflow Model</description>
<author>Guillermo</author>
<version>1.0</version>
<imports>
<!-- Import Alfresco Dictionary Definitions -->
<import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
<!-- Import Alfresco Content Domain Model Definitions -->
<import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
<!-- Import Alfresco jBPM Definitions -->
<import uri="http://www.alfresco.org/model/bpm/1.0" prefix="bpm"/>
</imports>
(...)
V. Desarrollo sobre Alfresco
Modelo de datos IV
(...)
<namespaces>
<namespace uri="wfl.model" prefix="wfl"/>
</namespaces>
(...)
V. Desarrollo sobre Alfresco
Viusalización del modelo de datos II
(...)
<config evaluator="node-type" condition="wfl:tarea1Task" replace="true">
<property-sheet>
<separator name="sep1" display-label-id="general" component-
generator="HeaderSeparatorGenerator" />
<show-property name="bpm:taskId" />
<show-property name="bpm:workflowDescription" component-
generator="TextAreaGenerator" />
<show-property name="bpm:status" />
<show-property name="bpm:dueDate" />
<show-property name="bpm:priority" />
</property-sheet>
</config>
</alfresco-config>
Anexo
Enlaces
Alfresco
http://www.alfresco.com
Gestor Documental en Wikipedia:
http://es.wikipedia.org/wiki/Software_de_gestión_documental