CICS - Operações de Controle
O CICS Program Control Program (PCP) gerencia o fluxo de programas aplicativos. Todos os programas aplicativos devem ter uma entrada na Tabela de Programas de Processamento. A seguir estão os comandos que são usados para serviços de controle de programa -
- XCTL
- Link
- Load
- Release
- Return
Níveis Lógicos do Programa
Os programas aplicativos executados no CICS têm vários níveis lógicos. O primeiro programa que recebe o controle diretamente está no nível lógico mais alto, ou seja, Nível 1. O programa vinculado está no próximo nível lógico do programa de vinculação. Os programas XCTL são executados no mesmo nível. Ficará claro quando passaremos por Link e XCTL, mais adiante neste módulo. A imagem a seguir mostra os níveis lógicos -
XCTL
A explicação fundamental do XCTL é a seguinte -
O comando XCTL é usado para passar o controle de um programa para outro no mesmo nível.
Não espera o controle de volta.
É semelhante à instrução GO TO.
Um programa XCTL pode ser pseudo-conversacional.
Exemplo
O exemplo a seguir mostra como usar o comando XCTL para passar o controle para outro programa -
IDENTIFICATION DIVISION.
PROGRAM-ID. PROG1.
WORKING-STORAGE SECTION.
01 WS-COMMAREA PIC X(100).
PROCEDURE DIVISION.
EXEC CICS XCTL
PROGRAM ('PROG2')
COMMAREA (WS-COMMAREA)
LENGTH (100)
END-EXEC.
Este comando transfere o controle a ser passado para o programa 'PROG2' com 100 bytes de dados. COMMAREA é um parâmetro opcional e é o nome da área que contém os dados a serem passados ou a área para a qual os resultados devem ser retornados.
Ligação
O comando Link é usado para transferir o controle para outro programa de nível inferior. Ele espera o controle de volta. Um programa vinculado não pode ser pseudo-conversacional.
Exemplo
O exemplo a seguir mostra como usar o comando Link para passar o controle para outro programa -
IDENTIFICATION DIVISION.
PROGRAM-ID. PROG1.
WORKING-STORAGE SECTION.
01 WS-COMMAREA PIC X(100).
PROCEDURE DIVISION.
EXEC CICS LINK
PROGRAM ('PROG2')
COMMAREA (WS-COMMAREA)
LENGTH (100)
END-EXEC.
Carga
O comando Load é usado para carregar um programa ou uma tabela. A seguir está a sintaxe do comando Load -
EXEC CICS LOAD
PROGRAM ('name')
END-EXEC.
Lançamento
O comando Release é usado para liberar um programa ou uma tabela. A seguir está a sintaxe do comando Release -
EXEC CICS RELEASE
PROGRAM ('name')
END-EXEC.
Retorna
O comando de retorno é usado para retornar o controle para o próximo nível lógico superior. A seguir está a sintaxe do comando Return -
EXEC CICS RETURN
PROGRAM ('name')
COMMAREA (data-value)
LENGTH (data-value)
END-EXEC.
Operações de controle de intervalo
As operações de controle de intervalo são dos seguintes dois tipos -
ASKTIME
ASKTIME é usado para solicitar hora e data ou carimbo de data / hora atuais. Em seguida, movemos esse valor para a variável de armazenamento de trabalho dentro do programa. A seguir está a sintaxe do comando ASKTIME -
EXEC CICS ASKTIME
[ABSTIME(WS-TIMESTAMP)]
END-EXEC.
FORMATTIME
FORMATTIME formata o carimbo de data / hora no formato necessário com base nas opções, que podem ser YYDDD, YYMMDD ou YYDDMM para a data. DATESEP indica o separador para DATE, assim como a variável TIMESEP para TIME. A seguir está a sintaxe do comando FORMATTIME -
EXEC CICS FORMATTIME
ABSTIME(WS-TIMESTAMP)
[YYDDD(WS-DATE)]
[YYMMDD(WS-DATE)]
[YYDDMM(WS-DATE)]
[DATESEP(WS-DATE-SEP)]
[TIME(WS-TIME)]
[TIMESEP(WS-TIME-SEP)]
END-EXEC.