🧠 Explicação

O comando EXEC CICS ASSIGN é utilizado para recuperar informações internas da tarefa em execução no CICS. Ele permite acessar dados como: ID do usuário, transação, programa chamador, ambiente do terminal, contexto da aplicação e muito mais.

É um comando extremamente útil para obter dados de controle e contexto de execução, especialmente quando se deseja saber quem está executando, de onde está vindo e em que ambiente a transação está operando.

🛠️ Usos mais comuns

  • Obter o USERID (ID do usuário logado no terminal)

  • Descobrir o nome do programa chamador (INVOKINGPROG)

  • Recuperar o nome da transação atual (TRANID)

  • Saber o nome do terminal (NETNAME)

  • Identificar o programa que será retornado ao fim da execução (RETURNPROG)

  • Verificar códigos de encerramento anormal (ABCODE)

  • Obter informações de versão e contexto de aplicação

  • Diagnosticar abends com informações como ASRAKEY, ASRAREGS, ASRAPSW, etc.

🧾 Sintaxe

EXEC CICS ASSIGN
     [opcao1(variavel-1)]
     [opcao2(variavel-2)]
     ...
END-EXEC.

Você pode usar até 16 opções em um único comando ASSIGN.

💻 Exemplo prático em COBOL

 

01  WS-USERID      PIC X(08).
01  WS-TERM        PIC X(08).
01  WS-PROG-ANT    PIC X(08).

EXEC CICS ASSIGN
     USERID(WS-USERID)
     NETNAME(WS-TERM)
     INVOKINGPROG(WS-PROG-ANT)
END-EXEC.

📋 Algumas opções úteis

Opção Tipo COBOL Descrição
USERID PIC X(08) ID do usuário que iniciou a transação
INVOKINGPROG PIC X(08) Programa que chamou o programa atual
PROGRAM PIC X(08) Programa atual em execução
TRANID PIC X(04) ID da transação atual
RETURNPROG PIC X(08) Programa que receberá o controle ao final da execução
NETNAME PIC X(08) Nome do terminal que iniciou a transação
ABCODE PIC X(04) Código de ABEND, se ocorreu
APPLID PIC X(08) ID da aplicação do sistema CICS
SYSID PIC X(04) ID do sistema CICS local

💡 Dicas

  • Use ASSIGN USERID(...) para fins de segurança e rastreamento de logs.

  • Para rastrear chamadas entre programas, combine INVOKINGPROG com PROGRAM e RETURNPROG.

  • Utilize ASSIGN ABCODE(...) e ABPROGRAM(...) para depuração de abends.

  • Em programas BTS, opções como ACTIVITY, PROCESS, ACTIVITYID retornam o contexto do fluxo.

⚠️ Cuidado com INVREQ
Algumas opções de ASSIGN requerem que o programa esteja ligado a um terminal. Se esse não for o caso, o CICS pode retornar a condição INVREQ. Isso vale para opções como NETNAME, SCRNHT, TERMPRIORITY, entre outras.

 

✅ Conclusão

O comando EXEC CICS ASSIGN é um dos mais versáteis e informativos do CICS. Ele permite que o programa conheça seu próprio contexto de execução, facilitando o rastreamento de execuções, controle de segurança, auditoria e tratamento de erros. Dominar o uso de ASSIGN é fundamental para aplicações CICS robustas e bem estruturadas.