Tous les articles par Mr COBOL

CICS – WRITE

La commande WRITE écrit un nouvel enregistrement dans un fichier. Les paramètres utilisés dans la commande WRITE sont les mêmes que ceux de la commande READ.

Syntaxe:

Vous trouverez ci-dessous la syntaxe de la commande WRITE :

EXEC CICS WRITE
   FILE(nomfichier)
   FROM(zone-donnee)
   RIDFLD(zone-donnee) [RBA|RRN]
   LENGTH(valeur-donnee)
   KEYLENGTH(valeur-donnee)
END-EXEC.

Voyons les paramètres utilisés dans la commande WRITE :

  • FICHIER(nomfichier)
    Spécifie le nom du fichier auquel accéder.
  • FROM(zone-donnee)
    Spécifie l’enregistrement qui doit être écrit dans l’ensemble de données auquel ce fichier fait référence.
  • LENGTH
    Spécifie la longueur, en tant que valeur binaire demi-mot (PIC S9(4) COMP), de la zone de données à partir de laquelle l’enregistrement est écrit.
  • RIDFLD(zone-donnee)
    Spécifie la clé de l’enregistrement à écrire. Si RBA ou RRN est spécifié, ce champ est interprété respectivement comme une adresse d’octet relative ou un numéro d’enregistrement relatif.
  • RBA
    Spécifie que le fichier est ESDS et que l’option RIDFLD doit être interprétée comme l’adresse d’octet relative.
  • RRN
    Spécifie que le fichier est RRDS et que l’option RIDFLD doit être interprétée comme le numéro d’enregistrement relatif.
  • KEYLENGTH(valeur-donnee)
    spécifie la longueur (demi-mot binaire) de la clé qui a été spécifiée dans l’option RIDFLD.

Exemple:

Voyons un exemple de programme CICS pour la commande WRITE.

IDENTIFICATION DIVISION.
PROGRAM-ID. IBMMF.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-REC-LEN    PIC S9(4) COMP.
01 WS-KEY-LEN    PIC S9(4) COMP.
01 WS-REC-KEY    PIC 9(3).
01 WS-REC-DATA   PIC X(80).
PROCEDURE DIVISION.
      MOVE +80           TO WS-REC-LEN.
      MOVE ‘502258’      TO WS-REC-KEY.
      MOVE 6             TO WS-KEY-LEN.
      MOVE '502258IBMMAINFRAMER TUTORIALS' TO WS-REC-DATA.
      EXEC CICS WRITE
        FILE('STDLST')
        FROM(WS-REC-DATA)
        LENGTH(WS-REC-LEN)
        RIDFLD(WS-REC-KEY)
        KEYLENGTH(WS-KEY-LEN)
      END-EXEC.

La description:

Ce programme écrit les données de WS-REC-DATA dans le fichier ‘STDLST’.

Nom de fichier-‘STDLST’ est le nom du fichier que nous voulons écrire. Il s’agit du nom de fichier symbolique CICS qui identifie l’entrée FCT (table de contrôle des fichiers) pour le fichier. Les noms de fichiers peuvent comporter jusqu’à 8 caractères et doivent être placés entre guillemets s’ils sont littéraux.

Après exécution, WS-REC-DATA sera écrit dans le fichier ‘STDLST’.


Conditions d’exception de la commande WRITE :

ExceptionLa description
DISABLEDUn fichier est désactivé
FILENOTFOUNDLe nom de fichier fourni dans l’option FILE n’est pas défini pour CICS.
NOTAUTHUne vérification de la sécurité des ressources a échoué sur FILE(filename).(c’est-à-dire que l’utilisateur n’a pas suffisamment d’autorisations pour accéder au fichier).
PAS D’ESPACEAucun espace n’est disponible pour un nouvel enregistrement.
LEGERRNon-concordance entre la longueur spécifiée dans la commande et la longueur réelle de l’enregistrement.
DUPKEYLa valeur dans RIDFLD existe déjà dans le fichier.

CICS – REWRITE

La commande REWRITE permet de mettre à jour un enregistrement déjà lu. Avant d’émettre une commande REWRITE, la commande READ doit avoir été émise avec l’option UPDATE. Le champ clé de l’enregistrement ne peut pas être modifié.

Syntaxe:

Vous trouverez ci-dessous la syntaxe de la commande REWRITE :

EXEC CICS REWRITE
   FILE(nomfichier)
   FROM(zone-donnee)
   LENGTH(valeur-donnee)
END-EXEC.

Voyons les paramètres utilisés dans la commande READ :

  • FILE(nomfichier)
    Spécifie le nom du fichier auquel accéder.
  • FROM(zone-donnee)
    Spécifie la zone de données à partir de laquelle les données doivent être écrites.
  • LENGTH
    spécifie la longueur, sous forme de valeur binaire de demi-mot, de la zone de données à partir de laquelle l’enregistrement est écrit.

Exemple:

Voyons un exemple de programme CICS pour la commande READ.

IDENTIFICATION DIVISION.
PROGRAM-ID. IBMMF.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-REC-LEN         PIC S9(4) COMP.
01 WS-KEY-LEN         PIC S9(4) COMP.
01 WS-REC-KEY         PIC 9(6).
01 WS-REC-DATA        PIC X(80).
PROCEDURE DIVISION.
        MOVE +80           TO WS-REC-LEN.
        MOVE ‘502258’      TO WS-REC-KEY.
        MOVE 6             TO WS-KEY-LEN.

        EXEC CICS READ
          FILE('STDLST')
          INTO(WS-REC-DATA)
          LENGTH(WS-REC-LEN)
          RIDFLD(WS-REC-KEY)
          KEYLENGTH(WS-KEY-LEN)
          UPDATE
        END-EXEC.

        MOVE '502258IBMMAINFRAMER TUTORIALS' TO WS-STD-REC.

        EXEC CICS REWRITE
          FILE('STDLST')
          FROM(WS-REC-DATA)
          LENGTH(WS-REC-LEN)
        END-EXEC.

La description:

Cet exemple montre comment écrire un enregistrement dans le fichier ‘STDLST’ où Student-id est la clé primaire. Un nouvel enregistrement avec le numéro d’étudiant 502258 sera écrit dans le fichier ‘STDLST’.


Conditions d’exception de la commande REWRITE :

ExceptionLa description
DISABLEDUn fichier est désactivé
NOTOPENLe fichier n’est pas ouvert.
NOTAUTHUne vérification de la sécurité des ressources a échoué sur FILE(filename).(c’est-à-dire que l’utilisateur n’a pas suffisamment d’autorisations pour accéder au fichier).
NOSPACEAucun espace n’est disponible pour un nouvel enregistrement.
LEGERRNon-concordance entre la longueur spécifiée dans la commande et la longueur réelle de l’enregistrement.
INVREQCommande de réécriture exécutée sans commande READ préalable avec l’option UPDATE.

CICS – DELETE

La commande DELETE est utilisée pour supprimer un enregistrement d’un fichier VSAM – KSDS et RRDS.

Syntaxe:

Vous trouverez ci-dessous la syntaxe de la commande DELETE.

EXEC CICS DELETE
   FILE('filename')
   RIDFLD(data-area) [RBA|RRN]
   KEYLENGTH(data-value)
   [GENERIC|NUMERIC(rec-number)]
END-EXEC.

Les enregistrements des fichiers VSAM KSDS et RRDS peuvent être supprimés, mais pas des fichiers VSAM ESDS.

L’option NUMREC renverra le nombre d’enregistrements supprimés lors d’une suppression GENERIC.

KEYLENGTH doit être spécifié pour une suppression GENERIC.


La commande DELETE peut être émise pour supprimer des enregistrements d’un ensemble de données de deux manières :

  1. Émis après une commande READ avec l’option UPDATE pour supprimer l’enregistrement lu.
    Syntaxe :
    EXEC CICS DELETE
    FILE('nomfichier')
    END-EXEC
  2. Émis avec l’option RIDFLD lorsqu’il n’y a pas d’option READ avec UPDATE préalable. Cela supprimera l’enregistrement dont la clé correspond au RIDFLD.
    Syntaxe :
    EXEC CICS DELETE
    FILE('nomfichier')
    RIDFLD(zone-donnee)
    KEYLENGTH(valeur-donnee)
    END-EXEC

Voyons les paramètres utilisés dans la commande DELETE.

  • FILE(nomfichier)
    Spécifie le nom du fichier auquel accéder.
  • RIDFLD(zone-donnee)
    Spécifie le champ d’identification de l’enregistrement. Il porte le nom de la zone de données contenant la clé de l’enregistrement que l’on souhaite supprimer.
  • KEYLENGTH(valeur-donnee)
    Spécifie la longueur (demi-mot binaire) de la clé qui a été spécifiée dans l’option RIDFLD


Exemple:

Voyons un exemple de programme CICS pour la commande DELETE.

IDENTIFICATION DIVISION.
PROGRAM-ID. IBMMF.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-REC-LEN         PIC S9(4) COMP.
01 WS-KEY-LEN         PIC S9(4) COMP.
01 WS-REC-KEY         PIC 9(6).
01 WS-REC-DATA        PIC X(80).
01 WS-DEL-REC         PIC S9(4).
PROCEDURE DIVISION.
        MOVE '502258'       TO WS-REC-KEY.
        MOVE 6              TO WS-KEY-LEN.

        EXEC CICS DELETE
           FILE('STDLST')
           RIDFLD(WS-REC-KEY)
           KEYLENGTH(WS-KEY-LEN)
           GENERIC
           NUMREC(WS-DEL-REC)
        END-EXEC.

La description:

Cet exemple pour supprimer plus d’un enregistrement. Cela peut être fait en utilisant l’option Générique dans la commande Supprimer, où tous les enregistrements qui satisfont aux critères génériques seront supprimés. NUMREC contiendra le nombre d’enregistrements supprimés. Le champ mentionné ici doit être un demi-mot binaire (S9(4) comp).


Supprimer les conditions d’exception de la commande :

ExceptionLa description
DISABLEDUn fichier est désactivé
NOTOPENLe fichier n’est pas ouvert.
NOTAUTHUne vérification de la sécurité des ressources a échoué sur FILE(nomfile).(c’est-à-dire que l’utilisateur n’a pas suffisamment d’autorisations pour accéder au fichier).
FILENOTFOUNDLe nom de fichier n’est pas disponible dans FCT.
INVREQCommande de suppression exécutée sans commande READ préalable avec l’option UPDATE.

CICS – VSAM : Opération et Commande BROWSE

VSAM – Opération BROWSE

L’opération BROWSE est utilisée pour extraire séquentiellement les enregistrements du fichier VSAM sous-jacent en fonction de critères de sélection.

L’accès séquentiel au fichier VSAM sous CICS est appelé navigation. Il a CINQ commandes qui lui sont associées.

Opération READ/BROWSE dans VSAM :

L’opération BROWSE se compose de trois étapes :

  1. Établissez la position à partir de laquelle commencer la récupération séquentielle.
  2. Récupérez les enregistrements de manière séquentielle et traitez-les selon les besoins.
  3. Terminez la navigation lorsqu’aucune autre extraction séquentielle n’est requise.

La position de départ pour le BROWSE peut être rétablie à tout moment pendant l’opération BROWSE.

Un enregistrement qui a été récupéré dans le cadre d’un parcours ne peut pas être mis à jour pendant le parcours. Pour cela, l’opération de navigation doit être terminée et l’enregistrement doit être relu avec l’option de mise à jour.


Commande BROWSE VSAM :

  • STARTBR – Établit la position de départ dans le fichier.
  • READNEXT – Récupérer les enregistrements dans l’ordre croissant de manière séquentielle tel que défini par STARTBR.
  • READPREV – Récupérer les enregistrements dans l’ordre décroissant (inverse) défini par STARTBR.
  • RESETBR – Réinitialise la navigation en repositionnant le pointeur.
  • ENDBR – Terminer la navigation

UPDATE  pendant le BROWSE :

Update et Browse sont des fonctions mutuellement exclusives. Donc, si vous souhaitez mettre à jour un enregistrement pendant l’opération de Browse, émettez d’abord ENDBR. Ensuite, donnez une lecture aléatoire en utilisant la clé en main avec l’option UPDATE. REWRITE  (RÉÉCRIVEZ) l’enregistrement. Lancez ensuite STARTBR avec la clé en main et continuez la navigation.

CICS – STARTBR

La commande STARTBR établit la position dans le fichier, mais ne récupère pas d’enregistrement.

Syntaxe:

Vous trouverez ci-dessous la syntaxe de la commande STARTBR.

EXEC CICS STARTBR
   FILE('nom-fichier')
   RIDFLD(zone-donnee) [GENERIC]
   KEYLENGTH(valeur-donnee)
   REQID(valeur-donnee)
   SYSID(nom-systeme)
   GTEQ/EQUAL
END-EXEC.

L’option UPDATE n’est pas autorisée et la commande de navigation dans les fichiers est strictement réservée aux opérations en lecture seule.

La signification des paramètres est identique à l’explication de l’opération READ. Lorsque vous souhaitez effectuer plusieurs navigations simultanément sur le même fichier, utilisez REQID. Le premier STARTBR peut être codé avec REQID(1) et le second STARTBR peut être codé avec REQID(2).

Une opération de navigation occupe une chaîne de VSAM. Si toutes les chaînes VSAM sont épuisées pour un fichier VSAM, les autres transactions devront attendre que l’une des chaînes se libère. Il n’est donc pas recommandé d’utiliser la navigation multiple. Au lieu de cela, une fois la navigation terminée, utilisez RESETBR pour définir la position à un autre endroit et commencer à naviguer. La syntaxe de RESETBR est la même que STARTBR.


Voyons les paramètres utilisés dans la commande STARTBR.

  • FILE(nom-fichier)
    Spécifie le nom du fichier auquel accéder.
  • RIDFLD(zone-donnee)
    Spécifie le champ d’identification de l’enregistrement.Il porte le nom de la zone de données contenant la clé de l’enregistrement que l’on veut lire.
  • KEYLENGTH(valeur-donnee)
    Spécifie la longueur (demi-mot binaire) de la clé qui a été spécifiée dans l’option RIDFLD, sauf lorsque RBA ou RRN est spécifié, auquel cas KEYLENGTH n’est pas valide.Cette option doit être spécifiée si GENERIC est spécifié, et elle peut être spécifiée chaque fois qu’une clé est spécifiée. Si la longueur spécifiée est différente de la longueur définie pour l’ensemble de données et que l’opération n’est pas générique, la condition INVREQ se produit.
  • EQUAL
    Spécifie que la recherche n’est satisfaite que par un enregistrement ayant la même clé (complète ou générique) que celle spécifiée dans l’option RIDFLD.Cette option est le champ par défaut pour une navigation ESDS directe.
  • REQID(valeur-donnee)
    Spécifie en tant que valeur binaire demi-mot un identificateur de requête unique pour un parcours, utilisé pour contrôler plusieurs opérations de parcours sur un fichier. Si cette option n’est pas spécifiée, une valeur par défaut de zéro est supposée.
  • SYSID(nom-systeme)
    Spécifie le nom du système vers lequel la demande est dirigée.
  • GENERIC
    Spécifie que la clé de recherche est une clé générique dont la longueur est spécifiée dans l’option KEYLENGTH. La recherche d’un enregistrement est satisfaite lorsqu’un enregistrement est trouvé qui a les mêmes caractères de début (clé générique) que ceux spécifiés.
  • GTEQ
    Spécifie que, si la recherche d’un enregistrement qui a la même clé (complète ou générique) que celle spécifiée dans l’option RIDFLD échoue, le premier enregistrement qui a une clé plus grande satisfait la recherche. Cette option est la valeur par défaut pour parcourir directement un KSDS ou un RRDS. Il n’est pas valable pour parcourir directement une ESDS, bien qu’il soit valable pour parcourir une ESDS à l’aide d’un chemin.

CICS – READNEXT

La commande READNEXT récupère les enregistrements séquentiellement dans l’ordre défini par la commande STARTBR. Le RIDFLD est automatiquement mis à jour par CICS pour le prochain READ ; les programmes d’application N’ONT PAS BESOIN de le mettre à jour. RIDFLD peut être défini sur une valeur supérieure au RIDFLD actuel extrait. Si un READNEXT est effectué de cette manière, il s’appelle “ignorer le traitement séquentiel”.

Syntaxe:

Vous trouverez ci-dessous la syntaxe de la commande READNEXT.

EXEC CICS READNEXT
          FILE(nom-fichier)
          RIDFLD(zone-donnee)
          INTO(zone-donnee)
          LENGTH(WS-LENGTH)
          KEYLENGTH(valeur-donnee)
          REQID(valeur-donnee)
          SYSID(nom-systeme)
END-EXEC.

READNEXT est utilisé pour lire les enregistrements dans le sens aller à partir de la position établie par STARTBR. READPREV est utilisé pour lire les enregistrements dans le sens inverse. READPREV suivi de READNEXT récupère à nouveau le même enregistrement.

Pendant la navigation, si vous souhaitez ignorer un ensemble d’enregistrements, déplacez la clé du prochain enregistrement que vous souhaitez lire vers RIDFLD, puis émettez READNEXT. C’est ce qu’on appelle sauter la lecture séquentielle. Ainsi, RIDFLD peut être utilisé à la fois comme champ d’entrée et comme champ de sortie.

Comme les fichiers VSAM sont de longueur variable dans la plupart des cas, WS-LENGTH doit être rempli avec la longueur d’enregistrement maximale avant d’émettre la commande READ. KEYLENGTH(0) placera le curseur au début du fichier.


Voyons les paramètres utilisés dans la commande READNEXT.

  • FILE(nom-fichier)
    Spécifie le nom du fichier auquel accéder.
  • RIDFLD(zone-donnee)
    Spécifie le champ d’identification de l’enregistrement.Il porte le nom de la zone de données contenant la clé de l’enregistrement que l’on veut lire.
  • INTO(zone-donnee)
    Spécifie la zone de données dans laquelle l’enregistrement extrait de l’ensemble de données doit être écrit.Lorsque INTO est spécifié, LENGTH doit être spécifié explicitement ou doit pouvoir être défini par défaut à partir de l’option INTO à l’aide de la référence d’attribut de longueur dans le langage assembleur
  • LENGTH(WS-LENGTH)
    Il spécifie le nombre maximum de caractères pouvant être lus dans la zone de données spécifiée. Il doit s’agir d’une valeur binaire demi-mot (PIC S9(4) COMP). Une fois la commande READ terminée, CICS remplace la valeur maximale que nous spécifions par la longueur réelle de l’enregistrement. Pour cette raison, nous devons spécifier LENGTH comme nom d’une zone de données plutôt qu’un littéral et devons réinitialiser cette zone de données si nous l’utilisons pour LENGTH plus d’une fois dans le programme. Un enregistrement plus long déclenchera une condition d’erreur.
  • KEYLENGTH(valeur-donnee)
    Spécifie la longueur (demi-mot binaire) de la clé qui a été spécifiée dans l’option RIDFLD, sauf lorsque RBA ou RRN est spécifié, auquel cas KEYLENGTH n’est pas valide.Cette option doit être spécifiée si GENERIC est spécifié, et elle peut être spécifiée chaque fois qu’une clé est spécifiée. Si la longueur spécifiée est différente de la longueur définie pour l’ensemble de données et que l’opération n’est pas générique, la condition INVREQ se produit.
  • REQID(valeur-donnee)
    Spécifie en tant que valeur binaire demi-mot un identificateur de requête unique pour un parcours, utilisé pour contrôler plusieurs opérations de parcours sur un fichier. Si cette option n’est pas spécifiée, une valeur par défaut de zéro est supposée.
  • SYSID(nom-systeme)
    Spécifie le nom du système vers lequel la demande est dirigée.

CICS – READPREV

La commande READPREV récupère les enregistrements dans l’ordre inverse défini par la commande STARTBR.

La position du fichier peut être modifiée en déplaçant la nouvelle valeur de clé vers le contenu de RIDFLD avant la commande READNEXT ou READPREV.

Syntaxe:

Vous trouverez ci-dessous la syntaxe de la commande READPREV.

EXEC CICS READPREV
          FILE(nom-fichier)
          RIDFLD(zone-donnee)
          INTO(zone-donnee)
          LENGTH(WS-LENGTH)
          KEYLENGTH(valeur-donnee)
          REQID(valeur-donnee)
          SYSID(nom-systeme)
END-EXEC.

READNEXT est utilisé pour lire les enregistrements dans le sens aller à partir de la position établie par STARTBR. READPREV est utilisé pour lire les enregistrements dans le sens inverse. READPREV suivi de READNEXT récupère à nouveau le même enregistrement.

Pendant la navigation, si vous souhaitez ignorer un ensemble d’enregistrements, déplacez la clé du prochain enregistrement que vous souhaitez lire vers RIDFLD, puis émettez READNEXT. C’est ce qu’on appelle sauter la lecture séquentielle. Ainsi, RIDFLD peut être utilisé à la fois comme champ d’entrée et comme champ de sortie.

Comme les fichiers VSAM sont de longueur variable dans la plupart des cas, WS-LENGTH doit être rempli avec la longueur d’enregistrement maximale avant d’émettre la commande READ. KEYLENGTH(0) placera le curseur au début du fichier.

Si vous spécifiez READPREV immédiatement après STARTBR, vous devez alors coder la clé d’un enregistrement qui existe sur l’ensemble de données. Sinon, la condition NOTFND se produit sur READPREV.


Voyons les paramètres utilisés dans la commande READPREV.

  • FILE(nom-fichier)
    Spécifie le nom du fichier auquel accéder.
  • RIDFLD(zone-donnee)
    Spécifie le champ d’identification de l’enregistrement. Il porte le nom de la zone de données contenant la clé de l’enregistrement que l’on veut lire.
  • INTO(zone-donnee)
    Spécifie la zone de données dans laquelle l’enregistrement extrait de l’ensemble de données doit être écrit. Lorsque INTO est spécifié, LENGTH doit être spécifié explicitement ou doit pouvoir être défini par défaut à partir de l’option INTO à l’aide de la référence d’attribut de longueur dans le langage assembleur
  • LENGTH(WS-LENGTH)
    Il spécifie le nombre maximum de caractères pouvant être lus dans la zone de données spécifiée. Il doit s’agir d’une valeur binaire demi-mot (PIC S9(4) COMP). Une fois la commande READ terminée, CICS remplace la valeur maximale que nous spécifions par la longueur réelle de l’enregistrement. Pour cette raison, nous devons spécifier LENGTH comme nom d’une zone de données plutôt qu’un littéral et devons réinitialiser cette zone de données si nous l’utilisons pour LENGTH plus d’une fois dans le programme. Un enregistrement plus long déclenchera une condition d’erreur.
  • KEYLENGTH(valeur-donnee)
    Spécifie la longueur (demi-mot binaire) de la clé qui a été spécifiée dans l’option RIDFLD, sauf lorsque RBA ou RRN est spécifié, auquel cas KEYLENGTH n’est pas valide. Cette option doit être spécifiée si GENERIC est spécifié, et elle peut être spécifiée chaque fois qu’une clé est spécifiée. Si la longueur spécifiée est différente de la longueur définie pour l’ensemble de données et que l’opération n’est pas générique, la condition INVREQ se produit.
  • REQID(valeur-donnee)
    Spécifie en tant que valeur binaire demi-mot un identificateur de requête unique pour un parcours, utilisé pour contrôler plusieurs opérations de parcours sur un fichier. Si cette option n’est pas spécifiée, une valeur par défaut de zéro est supposée.
  • SYSID(nom-systeme)
    Spécifie le nom du système vers lequel la demande est dirigée.

CICS – ENDBR

La commande ENDBR est utilisée pour terminer la fonction de navigation en cours.

Syntaxe:

Vous trouverez ci-dessous la syntaxe de la commande ENDBR.

EXEC CICS ENDBR
   FILE('nom-fichier')
   REQID(valeur-donnee)
   SYSID(nom-systeme)
END-EXEC.

Voyons les paramètres utilisés dans la commande ENDBR.

  • FICHIER(nom-fichier)
    Spécifie le nom du fichier auquel accéder.
  • REQID(valeur-donnee)
    Spécifie en tant que valeur binaire demi-mot un identificateur de requête unique pour un parcours, utilisé pour contrôler plusieurs opérations de parcours sur un fichier. Si cette option n’est pas spécifiée, une valeur par défaut de zéro est supposée.
  • SYSID(nom-systeme)
    Spécifie le nom du système vers lequel la demande est dirigée.

CICS – RESETBR

La commande RESETBR est utilisée pour réinitialiser notre point de départ au milieu d’une navigation. fondamentalement, Il établit un nouveau point de navigation.

Pour redémarrer la navigation à partir d’un emplacement de fichier différent. Ceci est similaire à un ENDBR suivi d’un STARTBR, mais est plus efficace car les ressources VSAM seront réaffectées plutôt que désaffectées et réaffectées.

Syntaxe:

Vous trouverez ci-dessous la syntaxe de la commande RESETBR.

EXEC CICS RESETBR
   FILE('nom-fichier')
   RIDFLD(zone-donnee)
   GTEQ
END-EXEC.

Voyons les paramètres utilisés dans la commande RESETBR.

  • FILE(nom-fichier)
    Spécifie le nom du fichier auquel accéder.
  • RIDFLD(zone-donnee)
    Spécifie le champ d’identification de l’enregistrement. Il porte le nom de la zone de données contenant la clé de l’enregistrement que l’on veut lire.

CICS – Présentation

IBM a lancé la première version de CICS en 1968.

Il s’agit d’un système de contrôle de communication de base de données/données où un programme d’application peut se concentrer sur le traitement de l’application sans se soucier du système d’exploitation, du matériel et autres. Initialement, CICS était au niveau macro et a ensuite été mis à niveau au niveau commande.

Qu’est-ce que le CICS ?

CICS (Customer Information Control System) est un système IBM de base de données/communication de données (DB/DC). CICS facilite l’envoi, la réception et le traitement des données grâce à l’interaction avec un terminal composé d’une unité d’affichage ou d’un tube cathodique (CRT) et d’un clavier.

CICS fonctionne sur des systèmes centraux et micro-ordinateurs IBM et compatibles IBM et fournit une interface entre les programmes d’application et le système d’exploitation de l’ordinateur. Il fonctionne comme un système d’exploitation en ligne. Les programmeurs d’applications CICS utilisent COBOL au niveau des commandes pour coder des instructions faciles à utiliser dans leurs programmes.

Ces commandes facilitent l’accès et la mise à jour des fichiers de base de données en ligne, la saisie de données et l’affichage de données et d’autres informations sur le terminal d’affichage. Les utilisateurs de CICS peuvent transmettre des données de leurs terminaux au système où les données sont traitées puis renvoyées à l’utilisateur.

L’image suivante montre les composants de CICS et leur interdépendance :

Fonctionnalités de CICS :

  • CICS est une tâche unique pour MVS bien qu’il se comporte comme un système d’exploitation au sein d’un système d’exploitation, dont le travail consiste à fournir un environnement pour l’exécution de travaux en ligne, y compris des interfaces vers des fichiers et des bases de données.
  • L’espace d’adressage CICS reçoit un statut privilégié dans le système MVS.
  • CICS possède une fonction de fonctionnement multirégion, c’est-à-dire que plusieurs espaces d’adressage
  • CICS peuvent communiquer entre eux.
  • CICS est facile à développer des applications en ligne et son codage est similaire aux langages de haut niveau.
  • CICS a une interface commune avec la base de données et les ensembles de données.
  • CICS a un meilleur temps de réponse.
  • CICS est facile à personnaliser.
  • CICS n’a pas besoin de coder les données pour les afficher à l’écran.
  • CICS facilite le développement de formulaires à l’aide de la fonction BMS.
  • CICS est l’indépendance de l’appareil.
  • CICS a l’indépendance des données.
  • CICS permet le partage de code entre les applications.

Qu’est-ce qu’une application CICS ?

Une application est un ensemble de programmes associés qui exécutent ensemble une opération commerciale, telle que le traitement d’une commande de produit ou la préparation d’une paie d’entreprise. Les applications CICS s’exécutent sous le contrôle de CICS, en utilisant les services et les interfaces CICS pour accéder aux programmes et aux fichiers.

CICS est un sous-système de traitement des transactions. Cela signifie qu’il vous fournit des services pour exécuter des applications en ligne, sur demande, en même temps que de nombreux autres utilisateurs soumettent des demandes pour exécuter les mêmes applications, en utilisant les mêmes fichiers et programmes. CICS gère le partage des ressources ; l’intégrité des données et la priorisation de l’exécution, avec une réponse rapide.

Qu’est-ce qu’une transaction ?

Un programme CICS est appelé via une transaction. Une transaction CICS est une collection de programmes logiquement liés dans une application. L’ensemble de l’application pourrait être logiquement divisé en plusieurs transactions.

  • Les identifiants de transaction de 1 à 4 caractères sont utilisés pour identifier les transactions que les utilisateurs souhaitent effectuer.
  • Un programmeur lie un programme à l’identifiant de transaction qui est utilisé pour appeler tous les programmes d’application pour cette transaction particulière.

Qu’est-ce que la tâche ?

Une tâche est une unité de travail spécifique à un utilisateur.Les utilisateurs invoquent une application en utilisant l’un des identifiants de transaction. CICS recherche l’identificateur de transaction pour savoir quel programme appeler en premier pour effectuer le travail demandé. Il crée une tâche pour effectuer le travail et transfère le contrôle au programme mentionné.Une transaction peut être complétée par plusieurs tâches.Une tâche peut recevoir et envoyer des données au terminal qui l’a lancée. Il peut lire et écrire des fichiers et peut également démarrer d’autres tâches.

Question d’entretien : Différence entre la tâche et la transaction

La tâche est une unité de travail et la transaction est une entité qui lance l’exécution de la tâche. L’identificateur de transaction identifie la transaction dans CICS.

La différence entre une transaction et une tâche est que plusieurs utilisateurs peuvent invoquer une transaction mais chaque utilisateur lance sa propre tâche.