Existen algunas recomendaciones más o menos generales para la
implementación de modelos de contenidos en Alfresco, que se apuntan en
la propia documentación de Alfresco y en los tutoriales como:
implementación de modelos de contenidos en Alfresco, que se apuntan en
la propia documentación de Alfresco y en los tutoriales como:
- No cambiar el modelo por defecto de Alfresco, sino extenderlo si
es posible. - Considera implementar un modelo base organizativo con metadatos organizativos.
- Implementa lo que tu modelo necesita inicialmente, no lo
compliques innecesariamente. - Evita una profundidad innecesaria del modelo, evitando jerarquías
complejas de tipos documentales. - Toma ventaja de los aspectos frente a los tipos, por su
flexibilidad y reutilización. - Puede tener sentido definir tipos lógicos que no tienen
propiedades o asociaciones. - Recuerda que las carpetas o personas en Alfresco también son
tipos documentales. - No tengas miedo de tener más de un modelo de contenidos.
- Implementa una clase java correspondiente a cada modelo de contenido.
A la hora de implementarlos puedes:
- Desplegarlos en caliente en Data Dictionary/models
- Desplegarlos en el directorio extension
- Desplegarlos mediante un JAR
- Desplegarlos mediante un AMP
Normalmente suelo preferir durante el desarrollo desplegarlos en el
directorio de extensiones, para finalmente empaquetarlo en un AMP o
JAR, en el entorno de producción.
directorio de extensiones, para finalmente empaquetarlo en un AMP o
JAR, en el entorno de producción.
Para un modelo uso al menos seis archivos de configuración. En el
repositorio normalmente tendré tres archivos por modelo:
repositorio normalmente tendré tres archivos por modelo:
-
$ALF_HOME/tomcat/shared/alfresco/extension/zk-model-context.xml
-
$ALF_HOME/tomcat/shared/messages/zkModel.properties
-
$ALF_HOME/tomcat/shared/alfresco/extension/model/zkModel.xml
En el fichero de contexto de Spring usaré una notación para los ids
relacionados con mi modelo, en este caso zylk. Por ejemplo, zk sera el
prefix del modelo de contenidos, zk aparecerá en los ids de beans de
Spring, zk aparecerá en los ficheros correspondientes.
relacionados con mi modelo, en este caso zylk. Por ejemplo, zk sera el
prefix del modelo de contenidos, zk aparecerá en los ids de beans de
Spring, zk aparecerá en los ficheros correspondientes.
En Alfresco Share tendré así mismo otros tres ficheros para los
formularios y share-config-custom.xml:
formularios y share-config-custom.xml:
-
$ALF_HOME/tomcat/shared/alfresco/web-extension/zk-share-forms-context.xml
-
$ALF_HOME/tomcat/shared/alfresco/web-extension/messages/zk.properties
-
$ALF_HOME/tomcat/shared/alfresco/web-extension/forms/zk-config-custom.xml
Los archivos de contexto de Spring tanto en el repositorio como en
Share apuntarán a las rutas de los otros archivos. Luego es posible
que intervengan más ficheros, por ejemplo javascript, si
configuramos metadata templates.
Otras recomendaciones útiles pueden ser:
- Si despliegas los modelos en el directorio de extensiones crea un
directorio models por debajo de extension y de
forms por debajo de web-extension. - No dispongas toda la configuración de los formularios en el
archivo share-config-custom.xml, separa los
formularios por tipos. Utiliza el archivo unicamente para
share-config-custom.xml para las definiciones genéricas como alta de
aspectos, utilización de tipos en reglas de contenido o cambiar
tipo, y trata de no machacar onfiguraciones anteriores (no uses replace=true). - Es preferible que los modelos de contenidos no estén
desplegados en Data Dictionary en el entorno de
producción (al igual que webscripts o scripts js). - El método dinámico de despliegue de modelos es útil para comprobar
si hay errores de sintaxis en el modelo, o si el
modelo tiene algún error en la carga. - En un entorno tanto de desarrollo como de producción, es muy
interesante separar las capas del repositorio y de Alfresco
Share porque te va a permitir trabajar con formularios de
manera más ágil. -
No mezclar los modelos de despliegue dinámico y
estático, sobre todo si se trata de los mismos modelos.
Puede ser interesante un acceso web a los logs del repositorio para
cuando los modelos no carguen correctamente.
Enlaces:
- Un tutorial excelente para iniciarse en Alfresco de la mano de
Jeff Potts y entre ellos el relativo a Working with Content Types” →
http://ecmarchitect.com/alfresco-developer-series - Training de Alfresco via blog de zylk.net → http://www.zylk.net/actualidad/training-en-alfresco-ecm-via-blog-de-zylk
- Las consolas escondidas de Alfresco → http://blyx.com/2010/06/04/alfresco-hack-las-consolas-escondidas-de-alfresco/