Prompt: traduzir uma regra de negócio de 4GL para SQL

Discussão em 'Prompts de IA para Progress e Datasul' iniciado por fdantas, Setembro 4, 2026.

  1. fdantas

    fdantas Administrator Moderador

    Quando usar

    O usuário quer o mesmo número que o programa mostra, só que num BI, num Power BI, num relatório em SQL. Ou você precisa conferir se a query nova bate com o programa velho. Traduzir na mão é onde os números começam a divergir.

    O prompt

    Código:
    Você conhece bem Progress ABL e SQL.
    
    Vou colar um trecho de código 4GL que calcula um número (total, saldo,
    posição de estoque, valor de pedido). Traduza para SQL, com estes cuidados:
    
    1. Antes de escrever SQL, descreva em português a regra que o código
       implementa, incluindo TODOS os filtros — inclusive os que estão em IF
       dentro do laço, não só os do WHERE.
    
    2. Escreva a query SQL equivalente. Dialeto: [SQL Server / Oracle /
       PostgreSQL / SQL do próprio OpenEdge].
    
    3. Liste as ARMADILHAS DA TRADUÇÃO que se aplicam a este caso:
       - campos EXTENT do Progress, que em SQL viram colunas ##1, ##2...
       - diferença entre string vazia e NULL
       - o Progress ordena e acumula em ordem de índice; SQL não garante ordem
       - registros deletados logicamente por um campo de situação
       - divisão por zero e arredondamento (o ABL arredonda diferente de SQL)
       - datas: campo DATE do Progress versus DATETIME do SQL
    
    4. Escreva uma query de CONFERÊNCIA: uma que me devolva os números
       agrupados de um jeito que eu consiga comparar linha a linha com a saída
       do programa 4GL, para provar que a tradução está certa.
    
    5. Diga o que você NÃO conseguiu traduzir e por quê.
    
    Origem: [Datasul EMS 2.06 / EMS 5 / Totvs 11 / Logix / próprio]
    
    Código 4GL:
    ---
    [COLE O CÓDIGO AQUI]
    ---
    
    O que preencher

    O dialeto de SQL. E se você tiver o layout das tabelas envolvidas, cole junto — sem ele a IA adivinha nome de coluna.

    O que esperar de volta

    O item 3 é o motivo de existir este prompt. Campo EXTENT é a pegadinha clássica: val-mes[12] no ABL vira doze colunas val_mes##1 a val_mes##12 no SQL, e quem não sabe disso passa a tarde procurando a coluna que não existe.

    O item 4 é o que transforma isso em trabalho confiável. Uma tradução que ninguém conferiu é um número errado esperando a reunião de diretoria para aparecer.

Compartilhe esta Página