🧠 Explicação

O comando EXEC CICS ADDRESS é usado para obter o endereço (ponteiro) de diversas áreas de memória controladas pelo CICS, como a COMMAREA, TWA, CWA, EIB, entre outras. É especialmente útil quando você precisa manipular dados entre programas ou acessar informações do ambiente de execução da transação.

Esses endereços são retornados para variáveis do tipo ponteiro (no COBOL, geralmente do tipo USAGE IS POINTER), permitindo ao programa acessar diretamente o conteúdo dessas áreas.

🛠️ Usos mais comuns

  • Obter o endereço da COMMAREA em programas que recebem dados de outro

  • Acessar o EIB em subprogramas

  • Compartilhar informações entre transações via TWA, TCTUA ou CWA

  • Manipular ambientes de segurança com ACEE

🧾 Sintaxe básica

EXEC CICS ADDRESS
     opção(destino)
END-EXEC.

💻 Exemplo prático em COBOL

01  PTR-COMM      USAGE IS POINTER.
01  PTR-EIB       USAGE IS POINTER.

EXEC CICS ADDRESS COMMAREA(PTR-COMM) END-EXEC.
EXEC CICS ADDRESS EIB(PTR-EIB)       END-EXEC.

⚙️ Opções disponíveis

Opção Finalidade
ACEE Endereço do bloco de controle de segurança
COMMAREA Endereço da área de comunicação entre programas
CWA Endereço da área de trabalho comum
EIB Endereço do bloco de interface EXEC (usado em subprogramas)
TCTUA Endereço da área de usuário do terminal (válido para a mesma sessão)
TWA Endereço da área de trabalho da transação (válida na mesma tarefa)

📋 Detalhamento das áreas

ACEE(ptr-ref)

  • Acessa o bloco de segurança do usuário conectado

  • Útil para verificar permissões e dados do login

  • Se não existir, retorna ponteiro nulo X'FF000000'

COMMAREA(ptr-ref)

  • Recupera o endereço da área de comunicação entre programas

  • Deve ser usada sempre que o programa receber dados via COMMAREA

CWA(ptr-ref)

  • Acessa a área comum de trabalho do sistema (útil para tabelas compartilhadas)

  • Válida apenas dentro do mesmo sistema CICS

EIB(ptr-ref)

  • Recupera o endereço do bloco EIB (em subprogramas)

  • Necessário para comandos com RESP, RESP2 ou análise de contexto

TCTUA(ptr-ref)

  • Acessa a área de usuário do terminal

  • Permite compartilhamento de dados apenas se for o mesmo terminal

TWA(ptr-ref)

  • Área privada da transação

  • Permite compartilhar dados entre programas da mesma tarefa

  • Respeita a definição de TASKDATALOC (acima ou abaixo da linha de 16MB)

💡 Dicas

  • Sempre verifique se o ponteiro retornado não está nulo (X'FF000000') antes de utilizá-lo.

  • Em subprogramas, use ADDRESS EIB se for acessar campos como EIBRESP, pois o EIB não é passado automaticamente.

  • COMMAREA, TWA e TCTUA são alternativas para passagem de dados — use conforme o escopo:

    • COMMAREA: entre programas via LINK

    • TWA: mesma tarefa

    • TCTUA: mesmo terminal

 

✅ Conclusão

O comando EXEC CICS ADDRESS é indispensável quando se deseja acessar diretamente áreas de memória internas do CICS, como COMMAREA, EIB ou TWA. Ele torna possível compartilhar dados entre programas, acessar o contexto da transação e até mesmo interagir com ambientes de segurança. Dominar esse comando é fundamental para quem trabalha com CICS em nível profissional.