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.