[Carol] Consolidação: considerar lista de atributos definida na staging schema (PK/crosswalk + atributos) (BE+FE+Integration)

Opis

01 - STAKEHOLDER (quem valida e esclarece):

Robson Thanael Poffo

02 - PROBLEMA (cenário e/ou dor):

Hoje o procedimento de consolidação da Carol usa apenas a regra padrão. Essa regra está gerando erros de consolidação em algums cenários pelo fato do Protheus sincronizar registros deletados (soft-delete) juntamente com registros não deletados. Enquanto a PK é diferente, a PK de negócio (protheus_PK na Carol) é o mesmo. Como os dados chegam na carga inicial a consolidação não sabem qual registro é o mais recente.

Por conta disso, precisamos permitir que a consolidação olhe para uma lista de atributos definida na staging table da Carol, dando mais controle sobre quais atributos participam da chave de consolidação.

03 - OBJETIVO (solução proposta):

Alterar o procedimento de consolidação da Carol para considerar uma lista de atributos definida na staging table:

  • Se houver lista de atributos na staging table: a consolidação deve considerar a PK (crosswalk) da tabela somada aos atributos definidos na staging table.

  • Se não houver lista: usar a regra padrão atual da Carol.

04 - QUEM PODE USAR (perfis de usuários):

Processo automático da plataforma (consolidação); Tenant Admin / Carol Admin que configura staging tables.

05 - ASSETS (links e arquivos relevantes):

Documento detalhado da regra (Google Doc): https://docs.google.com/document/d/12iInRtyz0p_D-Y6EV0vDZiDxEMFA1oh3lkMi8WS6q70/edit?tab=t.0

https://www.figma.com/design/FiL1iRG6RPjuNCgVzgGqvaZ3/%F0%9F%9F%A3-Carol-3.0?node-id=41235-195600&t=XgwIPmu1AmxDBVkS-4

06 - CRITÉRIOS DE ACEITE:

  • Quando a staging table possui uma lista de atributos definida, a consolidação considera a PK (crosswalk) da tabela + os atributos da lista.

    • Lista de atributos deve ser digitada pelo usuário.

      • BE deve retornar lista de atributos, apenas atributos que existam na staging table e que o tipo do dado seja ORDABLE (diferente de NESTED).

    • Usuário vai informar ASC/DESC

    • Deve ter opção de validar a lista de atributos, obrigatório para salvar.

  • Quando a staging table não possui lista de atributos, a consolidação usa a regra padrão atual da Carol (sem alteração de comportamento).

  • Comportamento validado nos dois cenários (com e sem lista de atributos).

  • Processo de consolidação pode ter cenários de falha pelo fato da staging table ter sido modificada posteriormente removendo uma das colunas especificadas na regra de merge:

    • Neste caso, consolidação falha, e não consolida.

    • Staging Table deve ter um indicador que a consolidação falhou.

  • A aplicação das regras no SQL devem seguir essa sequencia:

    • cast(trim(field) as float64)

    • A ideia é que se tem TRIM esta deve ser a primeira ação.

    • Se houver cast, essa é a ultima operação.

  • Validar que a configuração da staging table (atributos da ordenação da consolidação) sejam propagados via Carol App.