🧠 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
INVOKINGPROGcomPROGRAMeRETURNPROG. -
Utilize
ASSIGN ABCODE(...)eABPROGRAM(...)para depuração de abends. -
Em programas BTS, opções como
ACTIVITY,PROCESS,ACTIVITYIDretornam 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.