cancel
Showing results for 
Search instead for 
Did you mean: 

PROPIEDAD "Usuario Responsable" para un contenido personalizado en Alfresco

creverte
Confirmed Champ
Confirmed Champ

Buenas tardes. Estoy intentando refinar un tipo personalizado basado en  carpeta, llamado "proyecto". Me ha surgido la necesidad de asignar un usuario responsable del proyecto como una propiedad más en el tipo. Para definirlo he usado el  Gestor de Modelos del Share de julio de 2017, pero no veo posibilidad de definir una propiedad de tipo "noderef", ni de definirlo como un desplegable o similar. ¿Es factible? ¿Será necesario editar el modelo y modificarlo manualmente?

Gracias por adelantado

1 ACCEPTED ANSWER

Diría que no.

Si ya tienes documentos creados en Alfresco que están asociados al modelo diseñado con el Gestor de Modelos, entonces hay un problema. 

En ese caso, Alfresco habrá creado un nodo en "/app:company_home/app:dictionary/app:models" de tipo "cm:dictionaryModel" que es invisible desde la navegación de carpetas de Share (puedes verlo con el Navegador de Nodos). Ese nodo contiene el XML de modelo y algunas propiedades adicionales. 

Si subes un nuevo modelo con el mismo nombre y espacio de nombres mediante un AMP, Alfresco tratará de levantar ambos en el arranque y fallará. 

La única alternativa que se me ocurre, aunque es algo marciana, es que trates de actualizar el campo "cm:content" que contiene el XML de modelo en el nodo "cm:dictionaryModel". Aunque, sinceramente, nunca lo he probado y tengo mis serias dudas de que sea algo "civilizado" y mantenible.

En caso contrario, deberías eliminar todos los documentos que estén asignados al tipo del Gestor de Modelos, desactivarlo, subir el AMP con los cambios y volver a crear todos los documentos asociándolos al "nuevo" tipo.

Hyland Developer Evangelist

View answer in original post

7 REPLIES 7

angelborroy
Community Manager Community Manager
Community Manager

En el gestor de modelos no se puede ni se podrá definir. Puedes exportarlo a XML, modificarlo y tratar de volver a subirlo. Aunque supongo que fallará.

Lo más práctico es que lo despliegues por otro mecanismo: Deploying a content model | Alfresco Documentation 

Hyland Developer Evangelist

Confirmado, Ángel: no permite volver a subirlo con el Gestor de Contenidos, me has ahorrado un montón de cabezazos  a la pared... Por otra parte, no he tenido problema alguno en tomar el modelo exportado, generarlo como un AMP usando Maven y Eclipse y ampliar con la asociación directamente en los XML.

Sea como sea, supongo que reventará por todas partes si trato de desplegarlo en el entorno original, estando activo el modelo creado con el Gestor de Contenidos de Share... ¿Alguna sugerencia para hacer esa extensión del modelo? Ya te digo, en principio sólo querría ampliar con la asociación, sin necesidad de demolerlo todo desde el principio...

Cualquier cambio sobre un modelo de contenidos que amplíe puede ser desplegado sin problemas. Esto es, si solo has añadido la propiedad puedes desplegarlo sin problemas.

Las operaciones prohibidas son modificar y eliminar. Cuando realizas eso sobre un modelo de contenidos lo haces incompatible con el existente.

Hyland Developer Evangelist

Entonces, entiendo que puedo volver a desplegar el modelo ya en uso que creé con el gestor de modelos de Share, y amplié usando Maven+Eclipse con una asociación con un elemento de tipo persona, vía amp en el mismo entorno, siguiendo el procedimiento de copiar el AMP en /opt/alfresco-community/amps, parar Alfresco, ejecutar /opt/alfresco-community/bin/apply_amps.sh y volver a levantar Alfresco. ¿Es correcto?

Diría que no.

Si ya tienes documentos creados en Alfresco que están asociados al modelo diseñado con el Gestor de Modelos, entonces hay un problema. 

En ese caso, Alfresco habrá creado un nodo en "/app:company_home/app:dictionary/app:models" de tipo "cm:dictionaryModel" que es invisible desde la navegación de carpetas de Share (puedes verlo con el Navegador de Nodos). Ese nodo contiene el XML de modelo y algunas propiedades adicionales. 

Si subes un nuevo modelo con el mismo nombre y espacio de nombres mediante un AMP, Alfresco tratará de levantar ambos en el arranque y fallará. 

La única alternativa que se me ocurre, aunque es algo marciana, es que trates de actualizar el campo "cm:content" que contiene el XML de modelo en el nodo "cm:dictionaryModel". Aunque, sinceramente, nunca lo he probado y tengo mis serias dudas de que sea algo "civilizado" y mantenible.

En caso contrario, deberías eliminar todos los documentos que estén asignados al tipo del Gestor de Modelos, desactivarlo, subir el AMP con los cambios y volver a crear todos los documentos asociándolos al "nuevo" tipo.

Hyland Developer Evangelist

OK, Ángel, muchas gracias. En principio usé el gestor de contenidos para acelerar el desarrollo, partiendo además del hecho de que no teníamos la necesidad de asociaciones (y de que estamos empezando, y con crear el modelo y poder empezar a trajinar en el entorno de desarrollo ya íbamos sobrados...) Visto lo visto, probablemente restauremos un entorno y montemos el modelo directamente desde AMP. Duda adicional... ¿Vía AMP es viable volver a desplegar el mismo modelo ya desplegado vía AMP antes aunque se haya ampliado? Entiendo que sí, pero preguntar no me va a matar y desde luego sí me va a ahorrar cabezazos...

Sí, de hecho es como yo trabajo habitualmente.

Algo que no hago es versionar los modelos, ya que eso implica que son campos diferentes y dificulta las búsquedas. Así que siempre creo el modelo más pequeño posible y después lo voy ampliando.

Hyland Developer Evangelist