Chacun des cinq modules utilise les mêmes structures de données pour obtenir le format de l'espace utilisateur. Le membre copie SEUCOPY (figure 1) définit les structures de données et est copié dans chaque programme. Le premier bloc de l'espace utilisateur (A) contient des informations d'entrée, telles que le nom et
SEUCOPY et SEU001

le type du membre source, la touche de fonction activée et la position du curseur. Le deuxième bloc (B) est utilisé pour les informations de sortie, telles que le code retour et le nombre d’enregistrements de lignes sources. Le troisième bloc contient les lignes sources mises à la disposition du programme d’exit. La structure de données située en C contient le format d’une ligne de code source telle qu’elle est présentée au programme d’exit de l’utilisateur. Le pointeur de base du programme est incrémenté pour pointer sur les lignes subséquentes de ce troisième bloc. Les modules du programme partagent tous les mêmes pointeurs vers les structures de données. Par conséquent, ils partagent les structures de données elles-mêmes. Pour de plus amples informations sur les champs de l’espace utilisateur, consultez l’appendice E du manuel Source Entry Utility (SC09-2605).
Le module principal, SEU001 (figure 2), reçoit en paramètres les pointeurs vers les trois blocs de l’espace utilisateur, et sauvegarde ces valeurs dans des variables partagées (en B). La sous-routine Valid assure ensuite qu’il ne s’est produit aucune erreur. Dans le cas contraire, le programme retourne un message d’erreur et s’arrête. Pour simplifier les choses, j’ai utilisé des messages déjà définis dans le fichier de messages SEU (A).
L’utilisateur de SEU peut démarrer le programme d’exit en entrant une commande parmi plusieurs ou en appuyant sur la touche F7 ou F8. Aussi, si l’utilisateur entreprend plusieurs actions, il faut s’assurer que celles-ci sont compatibles. Pour ce faire, la sous-routine Valid de SEU001 commence par comparer le numéro relatif de l’enregistrement sur lequel le curseur est positionné au numéro relatif de l’enregistrement source en cours de validation lorsque l’utilisateur a appuyé sur la touche F7 ou F8 (D). Si les deux concordent (c’est-à -dire si le programme était en train d’évaluer la ligne sur laquelle se trouvait le curseur lorsque l’utilisateur a appuyé sur la touche F7 ou F8), la sous-routine poursuit sa validation. Si l’utilisateur a appuyé sur la touche F7 ou F8 sur une ligne contenant une autre commande définie par l’utilisateur ou sur une ligne contenue dans un bloc de lignes sur lequel une commande a été appliquée, un message d’erreur est renvoyé et le programme s’arrête (E). En F, la routine vérifie si le bloc indiqué par l’utilisateur débute et se termine avec des commandes différentes ou contient une autre commande ou bloc. Dans ce cas, un message d’erreur est retourné et le programme s’arrête.
En G, la sous-routine Valid vérifie si la procédure CheckCmd de SEU002 a renvoyé un message d’erreur. Si c’est le cas, SEU001 retourne un message d’erreur à SEU et s’arrête. La procédure CmdType de SEU002 renvoie le type de commande ‘block’, pour effectuer certaines actions sur un bloc de lignes ; ou ‘line’, pour une ligne isolée. Si la procédure CmdType détermine que l’instruction est une commande s’appliquant à un bloc, la sous-routine Valid de SEU001 vérifie que le bloc se termine avec la même commande et ne contient pas d’autres commandes. Pour atteindre cet objectif, Valid enregistre la commande de bloc dans le champ bloc lorsque la sous-routine rencontre la commande pour la première fois (H). Si la commande suivante est la même, le bloc est constitué (c’est-à -dire le champ bloc est réinitialisé à *blank) ; dans le cas contraire, un message d’erreur est envoyé et le programme s’arrête (F).
SEU ne met pas à jour les données à moins que le code retour de l’espace utilisateur soit égal à 0. Aussi, la sous-routine place le code en position off (I) et lit la ligne suivante en incrémentant le pointeur (J). En K, le programme vérifie si le bloc est incomplet. Avant d’invoquer la procédure Action, SEU001 réinitialise la structure de données à la première ligne (C).
Téléchargez cette ressource

État des lieux de la réponse à incident de cybersécurité
Les experts de Palo Alto Networks, Unit 42 et Forrester Research livrent dans ce webinaire exclusif leurs éclairages et stratégies en matière de réponses aux incidents. Bénéficiez d'un panorama complet du paysage actuel de la réponse aux incidents et de sa relation avec la continuité de l'activité, des défis auxquels font face les entreprises et des tendances majeures qui modèlent ce domaine. Un état des lieux précieux pour les décideurs et professionnels IT.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- DSI en assurance : gardien du temple ou moteur de la transformation ?
- Ransomware : persistance des cyberattaques à l’échelle mondiale
- Cybersécurité : l’IA générative rebat les cartes du cybercrime
- Le World Cyber Ranking, 1er classement mondial de la cybersécurité des entreprises
- Comment le Quarter Plan permet d’aligner IT et Métiers pour délivrer
