Buenas tardes,
os quería exponer un escenario en el que tenemos varios atascos y nos gustaría que nos dieseis alguna pista para intentar desatascarnos.
El escenario es el siguiente:
- Dos instalaciones de Community 201605 para dos empresas que podemos llamar A y B.
- A y B corren sus respectivos Community en dos servers diferentes puesto que son empresas diferentes.
- A y B tienen modelos contables personalizados con tipos y propiedades que son similares.
- En A el espacio de nombres para el modelo es http://www.A.es/modelos/contabilidad/1.0, su tipo es TipoX
- En B el espacio de nombres para el modelo es http://www.B.es/modelos/contabilidad/1.0, su tipo es TipoX
- Un día la empresa B compra la empresa A y decide prescindir de la Community de A, sus motivos tienen .
- Debemos exportar contenido y sus metadatos personalizados asociados desde A hasta B.
- Para realizar el trabajo y dado que "solo" es necesario importar-exportar unas pocas carpetas con ficheros PDF sus metadatos custom, pensamos en crear un trabajo de replicación y de paso evitamos tener que instalar los modulos para importar y exportar via ACP dado que en producción no podemos reiniciar siempre que queremos/necesitamos.
Configurado el trabajo, al ejecutar la transferencia recibimos el error "Error al ejecutar la transferencia - Class {http://www.A.es/modelos/contabilidad/1.0}TipoX has not been defined in the data dictionary".
1er atasco, por lo que descartamos este método ya que no queremos "ensuciar" la Community de B creando espacios de nombres y tipos solo para esta importación, por lo que al final, decidimos usar los mecanismos ACP.
Tras instalar los módulos correspondientes, reinciar y revisar los logs, todo parece ir ok, así que realizamos la exportación desde el asistente de A sin problemas y obtenemos el fichero .acp.
Ya en el importador de B, realizamos la importación sin problemas. Vemos un directorio con los pdf (renombrados por lo que hemos leido para que no se "machaquen" los existentes si existiesen) y un fichero xml con la relacion de metadatos, etc. pero...
2do atasco:
Los documentos importados no disponen de los metadatos.
¿Sabéis que estamos obviando?
Gracias por adelantado.
Solved! Go to Solution.
Coincido con Angel en el que el mismo modelo de contenido tiene que estar desplegado en el Alfresco de destino... Pero claro en el modelo en B ha cambiado su prefix con respecto al contenido importado de A que tiene el prefix de A. Tenéis que abrir el ACP (es un zip), buscar las referencias importadas con A y cambiarlas a B. Y entonces es posible que podáis hacer la importación en B con metadatos.
Saludos.
--C.
No entiendo muy bien lo que estáis haciendo...
El Diccionario de Datos debe existir en el Alfresco destino. No puedes esperar que Alfresco sepa mapear él solo de A a B. Son modelos de datos distintos, no son iguales.
Yo haría un programa CMIS que leyese el fichero de origen, tradujese las propiedades A del origen a las propiedades B y lo subiese al Alfresco destino.
Hola Angel,
intentamos migrar carpetas con pdf y metadatos custom de A a B sin que se pierdan los metadatos, pero a veces, me pierdo en mis propias explicaciones.
Independientemente de realizar un programa CMIS para estas labores, tenemos curiosidad en saber que estamos haciendo mal con el método ACP o que estamos obviando.
Muchas gracias por la pista, empezaremos a andar por esa senda.
Cuando se exportan espacios/carpetas en ACP se incluyen los metadatos (de Alfresco y personalizados).
Por otra parte, en realidad, no es necesario instalar ningún addon para realizar exportaciones/importaciones, ¿cuáles estáis utilizando?
Puedes asegurarte de que los metadatos han sido exportados abriendo el ACP (es un ZIP) y examinando el XML de índice.
En cualquier caso el modelo de contenido de origen debe estar desplegado en el Alfresco de destino.
Coincido con Angel en el que el mismo modelo de contenido tiene que estar desplegado en el Alfresco de destino... Pero claro en el modelo en B ha cambiado su prefix con respecto al contenido importado de A que tiene el prefix de A. Tenéis que abrir el ACP (es un zip), buscar las referencias importadas con A y cambiarlas a B. Y entonces es posible que podáis hacer la importación en B con metadatos.
Saludos.
--C.
Hola Ángel, esa es la cuestión de fondo. De ahí los atascos.
No podemos deplegar el modelo de origen en destino porque los tipos y propiedades en origen y destino son identicos excepto en el nombre de espacio:
- En A el espacio de nombres para el modelo es http://www.A.es/modelos/contabilidad/1.0, su tipo es TipoX
- En B el espacio de nombres para el modelo es http://www.B.es/modelos/contabilidad/1.0, su tipo es TipoX
Es decir, no se puede crear el tipo X en destino porque ya existe en su espacio de nombres de B, por eso di la primera explicacion larga de la pregunta.
¿Se te ocurre alguna otra pista o idea?
Gracias de nuevo.
Si el espacio de nombres es diferente, podéis desplegarlo sin problemas.
En cualquier caso, como queréis mapear A a B, lo de CMIS es lo más adecuado.
César efectivamente, se cambia el espacio de nombres en el xml et voila!
Con un simple find&replace problema resuelto.
Las cosas simples a veces no las vemos...
Mil gracias por tu ayuda.
Ángel,
aunque los espacios de nombres sean diferentes, como los nombres de los tipos y sus propiedades son iguales en ambas instalaciones el despliegue no era posible y la importación daba mil problemas que habría que resolver.
Al final lo hemos resuelto como indicaba César.
Mil gracias por tu ayuda e interés.
Me alegro de que lo hayáis solucionado, la propuesta de era muy práctica.
No obstante, y no es por obstinación, sino porque la gente comprenda realmente cómo funcionan los modelos de contenido en Alfresco, me gustaría aclarar lo siguiente.
Modelo A
<?xml version="1.0" encoding="UTF-8"?>
<model xmlns="http://www.alfresco.org/model/dictionary/1.0" name="a:ModeloA">
<imports>
<import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
<import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
</imports>
<namespaces>
<namespace uri="http://www.A.es/modelos/contabilidad/1.0" prefix="a"/>
</namespaces>
<types>
<type name="a:TipoX">
<parent>cm:content</parent>
<properties>
<property name="a:PropiedadY">
<type>d:text</type>
</property>
</properties>
</type>
</types>
</model>
Modelo B
<?xml version="1.0" encoding="UTF-8"?>
<model xmlns="http://www.alfresco.org/model/dictionary/1.0" name="b:ModeloB">
<imports>
<import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
<import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
</imports>
<namespaces>
<namespace uri="http://www.B.es/modelos/contabilidad/1.0" prefix="b"/>
</namespaces>
<types>
<type name="b:TipoX">
<parent>cm:content</parent>
<properties>
<property name="b:PropiedadY">
<type>d:text</type>
</property>
</properties>
</type>
</types>
</model>
Puedes desplegar ambos (Modelo A y Modelo B) en la misma instalación de Alfresco sin problemas. Quizá vuestro caso sea diferente, pero si los espacios de nombres son diferentes, los nombres de tipos, aspectos, propiedades y relaciones pueden ser iguales.
Discussions about Alfresco Content Services and Alfresco Process Services in Spanish
Related:
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.