Como ler as mensagens do módulo
As mensagens do FlexigoTech Migration Base são de dois tipos. Umas protegem uma regra de unicidade: algo que o módulo só admite uma vez por projeto, por set de mapeamento, por categoria ou por registo. Outras aparecem quando tenta mudar de estado e explicam o que o impede.
Na tabela verá alguns textos com chavetas, como {current_status} ou {len(blocking_recs)}. É assim que estão escritos no código do módulo; no seu ecrã, nesse espaço, aparece o estado ou a quantidade do seu caso.
Se antes quiser perceber o percurso de cada registo, explicamo-lo em como funciona o Migration Base por dentro.

As mensagens do Migration Base, uma a uma
| Mensagem | Quando aparece | O que fazer |
|---|---|---|
Each source record can only be archived once per project | Ao arquivar um registo de origem que já está arquivado nesse mesmo projeto | Procure o arquivo que já existe para esse registo no projeto e trabalhe sobre ele |
Each source record can only be staged once per project | Ao passar para staging um registo de origem que já está em staging nesse projeto | Localize a entrada de staging existente em vez de criar outra |
Each validation rule can only run once per record | Quando a mesma regra de validação seria executada de novo sobre o mesmo registo | Reveja o resultado que já existe para essa regra e esse registo |
Each checklist item can only appear once per project | Ao adicionar a um projeto um item de checklist que já consta nele | Use o item que já está na checklist do projeto |
Each account can only appear once per reconciliation type per project | Ao repetir uma conta com o mesmo tipo de reconciliação no mesmo projeto | Edite a linha que já existe para essa conta e esse tipo |
Each source dimension value can only map once per set | Ao mapear pela segunda vez o mesmo valor de dimensão de origem dentro de um set | Corrija o mapeamento que já tem esse valor no set |
Each source value can only map once per category per set | Ao mapear duas vezes um valor de origem na mesma categoria do mesmo set | Corrija o mapeamento existente desse valor nessa categoria |
Each mapping set version must be unique | Ao guardar um mapping set com uma versão que já existe | Atribua uma versão diferente |
Illegal status transition: {current_status} → {new_status}. Allowed transitions: {allowed} | Ao pedir um estado que não é permitido a partir do atual | Leia Allowed transitions e escolha um desses estados |
Cannot advance to Reconciled: {len(blocking_recs)} blocking reconciliation line(s) remain unresolved. Please resolve or sign off these items first. | Ao tentar avançar para Reconciled com linhas de reconciliação bloqueantes por resolver | Resolva ou aprove essas linhas e tente de novo |
Cannot go live: {len(blocking_items)} checklist items not completed | Ao tentar passar para produção com itens da checklist por concluir | Conclua os itens pendentes e repita o passo |
Os avisos que travam uma mudança de estado
Estes três não indicam um dado mal escrito: dizem-lhe que o passo que tenta dar ainda não pode ser dado.
Illegal status transition
A mensagem completa traz o estado atual, o que pediu e a lista Allowed transitions. Essa lista é a resposta: a partir do estado em que está, o módulo só aceita os que lá aparecem. Se o estado a que quer chegar não consta, o módulo não deixa fazer esse salto a partir de onde está.
Cannot advance to Reconciled
O número da mensagem é a quantidade de linhas de reconciliação bloqueantes que continuam por resolver. O próprio texto indica o que fazer: resolvê-las ou aprová-las (sign off) antes de tentar de novo. Na lista de Reconciliation tem, para cada linha, o projeto, o tipo de reconciliação, o código de conta, os montantes de origem e destino, a variância e as caixas de tolerância, bloqueio e aprovação.

Cannot go live
Aqui o número é a quantidade de itens da checklist que não estão concluídos. Abra os itens da checklist do projeto, conclua-os e repita o passo. A lista de Checklist Items mostra o projeto, o item, as caixas Done e Blocking, quem o fez e a data.

As mensagens que impedem duplicados
As mensagens de unicidade do módulo partilham a mesma forma: Each … can only … once per …. A parte final do texto indica o âmbito da regra: projeto, set, categoria ou registo. Lê-la bem poupa-lhe procurar no sítio errado. Por exemplo, a mensagem de contas fala de uma vez por tipo de reconciliação e por projeto, por isso o conflito está na combinação de conta e tipo dentro desse projeto.
Nos sets de mapeamento
Três mensagens dizem respeito aos mapping sets. Each source dimension value can only map once per set e Each source value can only map once per category per set surgem quando repete um valor de origem dentro do mesmo set (no segundo caso, dentro da mesma categoria). Each mapping set version must be unique surge quando a versão do set já existe. Nos dois primeiros, abra o set, procure o valor e corrija a linha que já o mapeia; no terceiro, mude a versão.
Em staging, arquivo e validação
Each source record can only be archived once per project e Each source record can only be staged once per project aparecem quando um registo de origem já tem o seu arquivo ou a sua entrada de staging nesse projeto. Each validation rule can only run once per record aparece quando uma regra já foi executada sobre esse registo. Nos três casos, o que procura já está criado: localize-o antes de repetir.
Na checklist e na reconciliação
Each checklist item can only appear once per project impede ter o mesmo item duas vezes num projeto. Each account can only appear once per reconciliation type per project impede repetir uma conta com o mesmo tipo de reconciliação no mesmo projeto. A solução é editar o registo existente em vez de adicionar outro.
Onde procurar o registo que já existe
Na app Migration, o menu superior tem Migration Projects, Mapping Sets e Reconciliation, e as listas trazem o botão New e a barra de pesquisa. É aí que localiza o set, a linha de reconciliação ou o projeto que provoca o conflito.

Outras listas do módulo, como Connection Profiles, seguem o mesmo padrão de botão New, barra de pesquisa e colunas, neste caso Profile Name, Connection Type, Validated e Validation Message.

Se está em plena implementação e quer saber o que preencher em cada registo, tem o guia de implementação do Migration Base.
Como a FlexigoTech o pode ajudar
O FlexigoTech Migration Base é gratuito na Odoo Apps para Odoo 17, 18, 19 e 20 (sem IVA). Se a mensagem persistir ou a migração precisar de algo que o módulo não cobre, na FlexigoTech implementamos Odoo 17, 18, 19 e 20 e desenvolvemos conectores e integrações à medida.
Continue a ler
Verificado no código do módulo (versão 20.0) e nas fontes indicadas
Fontes
- Código do módulo: flexigo_migration_base 20.0 (075d1af0): models/migration_archive.py
- Código do módulo: flexigo_migration_base 20.0 (075d1af0): models/migration_checklist.py
- Código do módulo: flexigo_migration_base 20.0 (075d1af0): models/migration_dimension_map.py
- Código do módulo: flexigo_migration_base 20.0 (075d1af0): models/migration_mapping.py
- Código do módulo: flexigo_migration_base 20.0 (075d1af0): models/migration_project.py
- Código do módulo: flexigo_migration_base 20.0 (075d1af0): models/migration_reconciliation.py
- Código do módulo: flexigo_migration_base 20.0 (075d1af0): models/migration_staging_record.py
- Código do 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
