Conn2Flow
Navegação das docs

SDD

req-065: Suporte a Colunas Customizadas de ID na Compilação/Descompilação de Recursos

Tabelas customizadas de projeto podem declarar colunas diferentes de id para atuar como identificador lógico do recurso (ex: page_id em publisher_pages, configurado como "id"…

Tabelas customizadas de projeto podem declarar colunas diferentes de id para atuar como identificador lógico do recurso (ex: page_id em publisher_pages, configurado como "id": "page_id" no project_tables_config.json). Atualmente, o compilador e descompilador de recursos assumem a chave literal 'id' no array do registro em diversos locais de processamento e cache, resultando em:

  1. Descompilação falhando ao escrever os arquivos físicos (arquivos=0), pois o $id resolvido fica vazio (a chave 'id' não existe no registro vindo do banco).

  2. Omissão de arquivos sem o log RDR_DEBUG_FILE_EMPTY (já que a validação de ID falha antes do bloco de logs).

  3. Compilação pulando registros no cache/leitura de metadados.

Mudanças Necessárias

O engenheiro de execução deve ajustar o compilador e descompilador de recursos para ler dinamicamente o nome da coluna identificadora a partir de $cfg['id'] (com fallback para 'id'):

1. Descompilador (recuperacao-dados-recursos.php)

  • Resolução de ID: Na função rdr_descompilar_registro(), extrair o $id lendo a coluna configurada em $cfg['id'] (com fallback para 'id').

  • Logs de Erro: Em rdr_processar(), ajustar o log de aviso RDR_REGISTRO_SEM_LANG para também buscar o ID lógico de forma dinâmica.

2. Compilador (atualizacao-dados-recursos.php)

  • Leitura de ID nos Loops: No laço principal de compilação dinâmica (foreach (lerMetadadosDinamicos(...) as $rec)), extrair o ID usando a coluna configurada em $cfg['id'].

  • Geração de Registro: Na função processarRegistroDinamico(), obter $id usando a chave configurada em $cfg['id'].

  • Indexador de Cache: Na construção do cache de registros existentes ($existDinamicoCache), obter a chave de ID usando a configuração da tabela atual.

3. Testes Unitários (RecuperacaoDadosRecursosTest.php)

  • Criar um caso de teste unitário simulando uma tabela com coluna de ID customizada (ex: page_id e PK id_publisher_pages).

  • Validar que o compilador e o descompilador executam com sucesso o round-trip, gerando os arquivos físicos na pasta correta baseada no ID customizado e populando o arquivo de dados sem perda de atributos.

O Futuro é Híbrido: Humano + IA.

O Conn2Flow é a ferramenta. Se você precisa do Arquiteto para desenhar a estratégia da sua empresa usando essa tecnologia...

Contrate Consultoria Especializada