🧠 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 FORMATTIME para 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 ASKTIME já atualiza EIBDATE e EIBTIME, mesmo sem a cláusula ABSTIME.

  • Combine ASKTIME + FORMATTIME para converter o timestamp num formato legível.

  • Use ABSTIME para comparar o tempo entre duas execuções (diferença entre timestamps).

  • A variável ABSTIME deve 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.