[Carol] Consolidação: considerar lista de atributos definida na staging schema (PK/crosswalk + atributos) (BE+FE+Integration)
Beschreibung
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
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.