🧠 Explicação
O comando EXEC CICS ASKTIME é utilizado para obter a data e hora atual do sistema CICS. Ele atualiza os campos padrão EIBDATE (data) e EIBTIME (hora) no bloco EIB da tarefa e, opcionalmente, pode armazenar a hora absoluta (em milissegundos desde 01/01/1900) em uma variável própria via opção ABSTIME.
Esse comando é threadsafe, ou seja, pode ser usado com segurança em ambientes multithread.
🛠️ Usos mais comuns
-
Obter a data e hora atual da execução (corrigida pelo fuso horário)
-
Armazenar timestamp de processamento em logs
-
Trabalhar com intervalos de tempo (em milissegundos) para cálculos
-
Utilizar em conjunto com
FORMATTIMEpara exibição formatada
🧾 Sintaxe
EXEC CICS ASKTIME
[ABSTIME(variavel-abstime)]
END-EXEC.
💻 Exemplo prático em COBOL
01 UTIME PIC S9(15) COMP-3.
EXEC CICS ASKTIME ABSTIME(UTIME) END-EXEC.
Após o comando, a variável UTIME conterá a hora absoluta em milissegundos desde 1 de janeiro de 1900.
Você também poderá acessar:
EIBDATE → Data atual no formato CYYDDD
EIBTIME → Hora atual no formato HHMMSS
📋 Formato dos dados retornados
| Campo | Tipo COBOL | Significado |
|---|---|---|
EIBDATE |
CYYDDD | Data atual (Ex: 123001 → 01/jan/2023) |
EIBTIME |
HHMMSS | Hora atual (Ex: 153045 → 15:30:45) |
ABSTIME |
PIC S9(15) COMP-3 |
Tempo absoluto desde 01/01/1900 em milissegundos |
🔄 Complemento: FORMATTIME
Use EXEC CICS FORMATTIME para converter o valor retornado por ABSTIME em data/hora legível:
EXEC CICS FORMATTIME ABSTIME(UTIME)
MMDDYYYY(DT-FORMATADA)
TIME(TIME-FORMATADO)
END-EXEC.
💡 Dicas
-
Se quiser apenas a hora e data atual, o
ASKTIMEjá atualizaEIBDATEeEIBTIME, mesmo sem a cláusulaABSTIME. -
Combine
ASKTIME+FORMATTIMEpara converter o timestamp num formato legível. -
Use
ABSTIMEpara comparar o tempo entre duas execuções (diferença entre timestamps). -
A variável
ABSTIMEdeve ser definida com precisão adequada:PIC S9(15) COMP-3.
✅ Conclusão
O comando EXEC CICS ASKTIME é essencial para capturar a hora exata da execução de uma transação no CICS, com precisão de milissegundos. Ele permite controle de tempo, geração de logs e cálculo de intervalos com segurança e precisão. É um recurso simples, mas poderoso, especialmente quando combinado com o comando FORMATTIME.