🧠 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
comPROGRAM
eRETURNPROG
. -
Utilize
ASSIGN ABCODE(...)
eABPROGRAM(...)
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.