🧠 Explicação
O comando EXEC CICS BIF DEEDIT realiza a limpeza de um campo alfanumérico removendo caracteres não numéricos (como letras, pontos e símbolos) e mantendo apenas os dígitos. O valor resultante é alinhado à direita e preenchido à esquerda com zeros.
Se houver um sinal de menos (-) ou um retorno de carro (CR) ao final do campo, é aplicada uma zona negativa no último byte.
É utilizado principalmente para transformar campos de entrada (como valores monetários digitados no terminal) em números limpos e prontos para processamento.

🛠️ Usos mais comuns

  • Limpar campos de entrada numérica recebidos do terminal

  • Eliminar caracteres especiais antes de mover dados para variáveis numéricas

  • Preparar valores monetários digitados para cálculos no programa

  • Evitar erro de conversão ao aplicar MOVE para campos COMP-3

🧾 Sintaxe

EXEC CICS BIF DEEDIT
     FIELD(nome-do-campo)
     LENGTH(tamanho)
END-EXEC.

💻 Exemplo prático em COBOL

01  CONTG  PIC X(09) VALUE '$25.68'.
    ...
EXEC CICS BIF DEEDIT
     FIELD(CONTG)
     LENGTH(9)
END-EXEC.

📌 Resultado após o comando: CONTG conterá 000002568

📋 Formato dos dados manipulados

Campo Tipo COBOL Significado
FIELD PIC X(n) Campo de entrada a ser deeditado
LENGTH Número inteiro Quantidade de bytes a considerar

⚠️ Regras

  • Campos de 1 byte são retornados inalterados

  • O comando sobrescreve o campo original com o valor "limpo"

  • A zona negativa (X'D') só é aplicada se o campo terminar com - ou CR

  • Se o último byte já tiver uma zona válida (A a F), ele será mantido

  • Se LENGTH for menor que 1, o comando causa erro LENGERR (22)

  • A ação padrão do erro é abend da tarefa

💡 Dicas

  • Ideal para validar ou preparar campos numéricos antes de converter para COMP-3

  • Use DEEDIT antes de aplicar MOVE para evitar problemas de conversão

  • Funciona bem em formulários de entrada com valores como 'R$14,50' ou '12-34A'

  • Pode ser combinado com NUMVAL para converter o valor em número real

 

Conclusão
O comando EXEC CICS BIF DEEDIT é um recurso eficiente para "limpar" valores digitados e transformá-los em formatos numéricos puros, prontos para cálculos e conversões. É muito útil em aplicações CICS que recebem dados do terminal em campos alfanuméricos mistos. Além de garantir segurança na manipulação de dados, reduz a necessidade de validações manuais de entrada.