CICS - Opérations de contrôle

Le programme de contrôle de programme CICS (PCP) gère le flux des programmes d'application. Tous les programmes d'application doivent avoir une entrée dans le tableau des programmes de traitement. Voici les commandes qui sont utilisées pour les services de contrôle de programme -

  • XCTL
  • Link
  • Load
  • Release
  • Return

Niveaux logiques du programme

Les programmes d'application qui s'exécutent sous CICS ont différents niveaux logiques. Le premier programme qui reçoit directement la commande se trouve au niveau logique le plus élevé, c'est-à-dire au niveau 1. Le programme lié est au niveau logique suivant du programme de liaison. Les programmes XCTL fonctionnent au même niveau. Ce sera clair quand nous passerons par Link et XCTL, plus loin dans ce module. L'image suivante montre les niveaux logiques -

XCTL

L'explication fondamentale de XCTL est la suivante -

  • La commande XCTL permet de passer le contrôle d'un programme à un autre au même niveau.

  • Il n'attend pas le retour du contrôle.

  • Elle est similaire à l'instruction GO TO.

  • Un programme XCTL peut être un pseudo-conversationnel.

Exemple

L'exemple suivant montre comment utiliser la commande XCTL pour passer le contrôle à un autre programme -

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.

Cette commande transfère le contrôle à passer au programme 'PROG2' avec 100 octets de données. COMMAREA est un paramètre facultatif et est le nom de la zone contenant les données à transmettre ou la zone à laquelle les résultats doivent être renvoyés.

Lien

La commande Link est utilisée pour transférer le contrôle vers un autre programme de niveau inférieur. Il attend le contrôle de retour. Un programme lié ne peut pas être pseudo-conversationnel.

Exemple

L'exemple suivant montre comment utiliser la commande Link pour passer le contrôle à un autre programme -

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.

Charge

La commande Load est utilisée pour charger un programme ou une table. Voici la syntaxe de la commande Load -

EXEC CICS LOAD
   PROGRAM ('name')
END-EXEC.

Libération

La commande Release est utilisée pour libérer un programme ou une table. Voici la syntaxe de la commande Release -

EXEC CICS RELEASE
   PROGRAM ('name')
END-EXEC.

Revenir

La commande de retour est utilisée pour ramener le contrôle au niveau logique supérieur suivant. Voici la syntaxe de la commande Return -

EXEC CICS RETURN
   PROGRAM ('name')
   COMMAREA (data-value)
   LENGTH (data-value)
END-EXEC.

Opérations de contrôle d'intervalle

Les opérations de contrôle d'intervalle sont des deux types suivants -

DEMANDER

ASKTIME est utilisé pour demander l'heure et la date actuelles ou l'horodatage. Nous déplaçons ensuite cette valeur vers la variable de stockage de travail à l'intérieur du programme. Voici la syntaxe de la commande ASKTIME -

EXEC CICS ASKTIME
   [ABSTIME(WS-TIMESTAMP)]
END-EXEC.

FORMATTIME

FORMATTIME met en forme l'horodatage au format requis en fonction des options, qui peuvent être AAAJJ, AAMMJJ ou AAJJM ​​pour la date. DATESEP indique le séparateur pour la DATE, tout comme la variable TIMESEP pour TIME. Voici la syntaxe de la commande 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.