🧠 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
aF
), ele será mantido -
Se
LENGTH
for menor que 1, o comando causa erroLENGERR (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 aplicarMOVE
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.