CICS - Bloc d'interface

Tout programme d'application nécessiterait une interface pour interagir avec le CICS. EIB (Execute Interface Block) agit comme une interface pour permettre aux programmes d'application de communiquer avec le CICS. La BEI contient les informations requises lors de l'exécution d'un programme.

Verbes COBOL restreints

Lors du codage d'un programme CICS, nous ne pouvons pas utiliser les commandes qui renvoient le contrôle directement au MVS. Si nous codons ces verbes COBOL, cela ne donnera aucune erreur de compilation, mais nous pourrions obtenir des résultats imprévisibles. Voici les verbes COBOL qui ne doivent pas être utilisés dans un programme CICS -

  • Instructions d'E / S de fichier telles que Ouvrir, Lire, Écrire, Réécrire, Fermer, Supprimer et Démarrer. Toutes les E / S de fichiers dans CICS sont gérées par le module de contrôle de fichiers et ils ont leur propre ensemble d'instructions telles que READ, WRITE, REWRITE et DELETE dont nous parlerons dans les prochains modules.

  • La section des dossiers et la division de l'environnement ne sont pas requises.

  • Les instructions COBOL qui invoquent des fonctions du système d'exploitation telles que Accepter, Date / Heure ne peuvent pas être utilisées.

  • N'utilisez pas DISPLAY, MERGE, STOP RUN et GO BACK.

Exécuter le bloc d'interface

Le bloc d'interface d'exécution (EIB) est un bloc de contrôle qui est chargé automatiquement par le CICS pour chaque programme.

  • La BEI est unique à une tâche et elle existe pour la durée de la tâche. Il contient un ensemble d'informations relatives au système correspondant à la tâche.

  • Il contient des informations sur l'identificateur de transaction, l'heure, la date, etc., qui sont utilisées par le CICS lors de l'exécution d'un programme d'application.

  • Chaque programme qui s'exécute dans le cadre de la tâche a accès au même EIB.

  • Les données dans EIB lors de l'exécution peuvent être visualisées en exécutant le programme en mode CEDF.

Champs de la BEI

Le tableau suivant fournit une liste des champs qui sont présents dans la BEI -

Champ BEI Clause PIC La description
EIBAID X (1) Touche d'aide enfoncée
EIBCALEN S9 (4) COMP Il contient la longueur de DFHCOMMAREA
EIBDATE S9 (7) COMP-3 Il contient la date système actuelle
EIBRCODE X (6) Il contient le code retour de la dernière transaction
EIBTASKN S9 (7) COMP-3 Il contient le numéro de tâche
EIBTIME S9 (7) COMP-3 Il contient l'heure système actuelle
EIBTRMID X (4) Identificateur de terminal
EIBTRNID X (4) Identificateur de transaction

Classification des programmes du SCIC

Les programmes du SCIC sont classés dans les trois catégories suivantes dont nous discuterons une par une -

  • Programmes non conversationnels
  • Programmes conversationnels
  • Programmes pseudo-conversationnels - Nous discuterons dans le module suivant

Programmes non conversationnels

Lors de l'exécution de programmes non conversationnels, aucune intervention humaine n'est requise. Toutes les entrées nécessaires sont fournies au démarrage du programme.

  • Ils sont similaires aux programmes batch qui s'exécutent en mode batch. Donc, dans CICS, ils sont rarement développés.

  • On peut dire qu'ils sont utilisés uniquement pour afficher une séquence d'écrans à intervalles réguliers.

Exemple

L'exemple suivant montre un programme non conversationnel qui affichera simplement "HELLO WORLD" sur le terminal CICS en sortie -

IDENTIFICATION DIVISION.                                
PROGRAM-ID. HELLO.                                      
DATA DIVISION.                                          
WORKING-STORAGE SECTION.                                
01 WS-MESSAGE          PIC X(30).                       
PROCEDURE DIVISION.                                     
********************************************************
* SENDING DATA TO SCREEN                               * 
********************************************************
   MOVE 'HELLO WORLD' TO WS-MESSAGE                
   EXEC CICS SEND TEXT                             
      FROM (WS-MESSAGE)                          
   END-EXEC                                        
********************************************************
* TASK TERMINATES WITHOUT ANY INTERACTION FROM THE USER* 
********************************************************
   EXEC CICS RETURN                                
END-EXEC.

Programme conversationnel

L'envoi d'un message au terminal et la réception d'une réponse de l'utilisateur s'appelle un Conversational. Une application en ligne réalise une conversation entre l'utilisateur et le programme d'application par une paire de commandes SEND et RECEIVE. Les points clés d'un programme conversationnel sont les suivants -

  • Le système envoie un message à l'écran et attend la réponse de l'utilisateur.

  • Le temps mis par l'utilisateur pour répondre est appelé Think Time. Cette durée est considérablement élevée, ce qui est un inconvénient majeur des programmes de conversion.

  • L'utilisateur fournit l'entrée nécessaire et appuie sur une touche AID.

  • L'application traite l'entrée de l'utilisateur et envoie la sortie.

  • Le programme est chargé dans la mémoire principale au début et est conservé jusqu'à la fin de la tâche.

Exemple

L'exemple suivant montre un programme de conversion qui prend l'entrée de l'utilisateur puis affiche simplement la même entrée sur le terminal CICS comme sortie -

IDENTIFICATION DIVISION.                               
PROGRAM-ID. HELLO.                                     
DATA DIVISION.                                         
WORKING-STORAGE SECTION.                               
01 WS-MESSAGE          PIC X(30) VALUE SPACES.         
PROCEDURE DIVISION.                                    
   MOVE 'ENTER MESSAGE' TO WS-MESSAGE           
********************************************************
* SENDING DATA FROM PROGRAM TO SCREEN                  * 
********************************************************
   EXEC CICS SEND TEXT                            
      FROM (WS-MESSAGE)                         
   END-EXEC                                       
********************************************************
* GETTING INPUT FROM USER                              * 
********************************************************
   EXEC CICS RECEIVE                              
      INTO(WS-MESSAGE)                          
   END-EXEC                                       
   EXEC CICS SEND TEXT                            
      FROM (WS-MESSAGE)                         
   END-EXEC                                       
********************************************************
* COMMAND TO TERMINATE THE TRANSACTION                 * 
********************************************************
   EXEC CICS RETURN                               
END-EXEC.