Cómo leer los mensajes del módulo
Los mensajes de FlexigoTech Migration Base son de dos tipos. Unos protegen una regla de unicidad: algo que el módulo solo admite una vez por proyecto, por set de mapeo, por categoría o por registro. Otros aparecen cuando intentas cambiar de estado y te explican qué impide hacerlo.
En la tabla verás algunos textos con llaves, como {current_status} o {len(blocking_recs)}. Así están escritos en el código del módulo; en tu pantalla, en ese hueco, aparece el estado o la cantidad de tu caso.
Si antes quieres entender qué recorre cada registro, lo explicamos en cómo funciona Migration Base por dentro.

Los mensajes de Migration Base, uno por uno
| Mensaje | Cuándo sale | Qué hacer |
|---|---|---|
Each source record can only be archived once per project | Al archivar un registro de origen que ya está archivado en ese mismo proyecto | Busca el archivo que ya existe para ese registro en el proyecto y trabaja sobre él |
Each source record can only be staged once per project | Al pasar a staging un registro de origen que ya está en staging en ese proyecto | Localiza la entrada de staging existente en lugar de crear otra |
Each validation rule can only run once per record | Cuando una misma regla de validación se ejecutaría otra vez sobre el mismo registro | Revisa el resultado que ya hay para esa regla y ese registro |
Each checklist item can only appear once per project | Al añadir a un proyecto un ítem de checklist que ya figura en él | Usa el ítem que ya está en el checklist del proyecto |
Each account can only appear once per reconciliation type per project | Al repetir una cuenta con el mismo tipo de conciliación en el mismo proyecto | Edita la línea que ya existe para esa cuenta y ese tipo |
Each source dimension value can only map once per set | Al mapear por segunda vez el mismo valor de dimensión de origen dentro de un set | Corrige el mapeo que ya tiene ese valor en el set |
Each source value can only map once per category per set | Al mapear dos veces un valor de origen en la misma categoría del mismo set | Corrige el mapeo existente de ese valor en esa categoría |
Each mapping set version must be unique | Al guardar un mapping set con una versión que ya existe | Asigna una versión distinta |
Illegal status transition: {current_status} → {new_status}. Allowed transitions: {allowed} | Al pedir un estado que no está permitido desde el actual | Lee Allowed transitions y elige uno de esos estados |
Cannot advance to Reconciled: {len(blocking_recs)} blocking reconciliation line(s) remain unresolved. Please resolve or sign off these items first. | Al intentar avanzar a Reconciled con líneas de conciliación bloqueantes sin resolver | Resuelve o firma esas líneas y vuelve a intentarlo |
Cannot go live: {len(blocking_items)} checklist items not completed | Al intentar pasar a producción con ítems del checklist sin completar | Completa los ítems pendientes y repite el paso |
Los avisos que frenan un cambio de estado
Estos tres no señalan un dato mal escrito: te dicen que el paso que intentas dar todavía no se puede dar.
Illegal status transition
El mensaje completo trae el estado actual, el que has pedido y la lista Allowed transitions. Esa lista es la respuesta: desde el estado en el que estás, el módulo solo acepta los que aparecen ahí. Si el estado al que quieres llegar no figura, el módulo no te deja hacer ese salto desde donde estás.
Cannot advance to Reconciled
El número del mensaje es la cantidad de líneas de conciliación bloqueantes que siguen sin resolver. El propio texto indica qué hacer: resolverlas o firmarlas (sign off) antes de volver a intentarlo. En la lista de Reconciliation tienes, por cada línea, el proyecto, el tipo de conciliación, el código de cuenta, los importes de origen y destino, la varianza y las casillas de tolerancia, bloqueo y firma.

Cannot go live
Aquí el número es la cantidad de ítems del checklist que no están completados. Abre los ítems del checklist del proyecto, complétalos y repite el paso. La lista de Checklist Items muestra el proyecto, el ítem, las casillas Done y Blocking, quién lo hizo y la fecha.

Los mensajes que impiden duplicar
Los mensajes de unicidad del módulo comparten forma: Each … can only … once per …. La parte final del texto te dice el ámbito de la regla: proyecto, set, categoría o registro. Leerla bien te ahorra buscar donde no toca. Por ejemplo, el mensaje de cuentas habla de una vez por tipo de conciliación y por proyecto, así que el choque está en la combinación de cuenta y tipo dentro de ese proyecto.
En los sets de mapeo
Tres mensajes tocan los mapping sets. Each source dimension value can only map once per set y Each source value can only map once per category per set salen cuando repites un valor de origen dentro del mismo set (en el segundo caso, dentro de la misma categoría). Each mapping set version must be unique sale cuando la versión del set ya existe. En los dos primeros, abre el set, busca el valor y corrige la línea que ya lo mapea; en el tercero, cambia la versión.
En staging, archivo y validación
Each source record can only be archived once per project y Each source record can only be staged once per project aparecen cuando un registro de origen ya tiene su archivo o su entrada de staging en ese proyecto. Each validation rule can only run once per record aparece cuando una regla ya se ha ejecutado sobre ese registro. En los tres casos, lo que buscas ya está creado: localízalo antes de repetir.
En checklist y conciliación
Each checklist item can only appear once per project impide tener el mismo ítem dos veces en un proyecto. Each account can only appear once per reconciliation type per project impide repetir una cuenta con el mismo tipo de conciliación en el mismo proyecto. La salida es editar el registro existente en lugar de añadir otro.
Dónde buscar el registro que ya existe
En la app Migration, el menú superior tiene Migration Projects, Mapping Sets y Reconciliation, y las listas traen botón New y buscador. Ahí localizas el set, la línea de conciliación o el proyecto que provoca el choque.

Otras listas del módulo, como Connection Profiles, siguen el mismo patrón de botón New, buscador y columnas, en este caso Profile Name, Connection Type, Validated y Validation Message.

Si estás en plena puesta en marcha y quieres saber qué rellenar en cada registro, tienes la guía de puesta en marcha de Migration Base.
Cómo te ayuda FlexigoTech
FlexigoTech Migration Base está gratis en Odoo Apps para Odoo 17, 18, 19 y 20 (sin IVA). Si el mensaje persiste o la migración necesita algo que el módulo no cubre, en FlexigoTech implantamos Odoo 17, 18, 19 y 20 y desarrollamos conectores e integraciones a medida.
Sigue leyendo
Comprobado en el código del módulo (versión 20.0) y en las fuentes enlazadas
Fuentes
- Código del módulo: flexigo_migration_base 20.0 (075d1af0): models/migration_archive.py
- Código del módulo: flexigo_migration_base 20.0 (075d1af0): models/migration_checklist.py
- Código del módulo: flexigo_migration_base 20.0 (075d1af0): models/migration_dimension_map.py
- Código del módulo: flexigo_migration_base 20.0 (075d1af0): models/migration_mapping.py
- Código del módulo: flexigo_migration_base 20.0 (075d1af0): models/migration_project.py
- Código del módulo: flexigo_migration_base 20.0 (075d1af0): models/migration_reconciliation.py
- Código del módulo: flexigo_migration_base 20.0 (075d1af0): models/migration_staging_record.py
- Código del módulo: flexigo_migration_base 20.0 (075d1af0): models/migration_validation.py
- apps.odoo.com/apps/modules/20.0/flexigo_migration_base
- apps.odoo.com/apps/modules/17.0/flexigo_migration_base
- apps.odoo.com/apps/modules/18.0/flexigo_migration_base
- apps.odoo.com/apps/modules/19.0/flexigo_migration_base
- flexigotech.com/en/services.html
