Qu’est-ce que le langage de contrôle (CL) ?

26 mars

Le langage de contrôle (CL) est un langage de programmation de haut niveau utilisé principalement sur les systèmes AS/400 et iSeries d'IBM.

qu'est-ce que le langage de contrôle

Qu'entendez-vous par langage de contrôle ?

Le langage de contrôle (CL) est un langage de programmation spécialisé développé par IBM pour ses systèmes AS/400 et iSeries, désormais connus sous le nom d'IBM i. Il est principalement conçu pour faciliter l' automatisation et la gestion des tâches système, offrant ainsi un moyen de contrôler et d'automatiser les opérations sur ces systèmes. CL est étroitement intégré au système d'exploitation IBM i , permettant aux utilisateurs d'écrire des programmes capables d'interagir avec les ressources système, de gérer l'exécution des tâches, de manipuler des fichiers et d'exécuter des commandes système.

Contrairement aux langages de programmation généralistes, CL est axé sur la gestion des systèmes et l'automatisation des processus plutôt que sur le développement d'applications complexes . Il permet aux utilisateurs de contrôler le flux des tâches, de définir les paramètres système et de gérer les opérations d'entrée/sortie sans nécessiter une connaissance approfondie du code machine de bas niveau ni du fonctionnement interne du système. CL est particulièrement utile aux administrateurs système qui doivent automatiser les tâches répétitives, telles que l'exécution de traitements par lots, la planification des tâches ou la gestion des systèmes de fichiers.

Types de langage de contrôle

Les langages de contrôle peuvent être classés en plusieurs types selon leur utilisation et leurs fonctionnalités. Vous trouverez ci-dessous les principaux types de langages de contrôle utilisés sur les systèmes IBM i.

Commandes CL

Les commandes CL sont des instructions individuelles écrites en langage de contrôle pour effectuer des tâches spécifiques sur le système. Ces commandes peuvent servir à diverses fins, comme la gestion de fichiers, le contrôle de l'exécution des tâches, l'interaction avec les ressources système ou l'exécution de tâches système telles que planification des tâchesLes commandes CL sont généralement exécutées séquentiellement pour automatiser des processus ou gérer des fonctions système. Par exemple, WRKACTJOB (travail avec des tâches actives) et ENDTCPSVR (fin) TCP server).

Programmes CL

Un programme CL est un ensemble de commandes CL regroupées pour exécuter une série d'opérations dans le cadre d'une tâche plus vaste. Les programmes CL permettent d'automatiser des procédures complexes et d'intégrer plusieurs commandes dans un seul fichier exécutable. Ces programmes sont stockés sous forme d'objets au sein du système IBM i et peuvent être exécutés en mode batch ou interactif. Ils peuvent également être appelés par d'autres programmes ou commandes, facilitant ainsi une automatisation réutilisable et efficace. Les programmes CL sont généralement utilisés pour automatiser la maintenance du système, la planification des tâches ou le traitement par lots.

Procédures CL

Les procédures CL sont des blocs de code réutilisables contenant un ensemble de commandes CL. Contrairement aux programmes CL, les procédures CL ne sont pas des exécutables autonomes, mais sont appelées dans d'autres programmes ou tâches CL. Elles permettent de modulariser le code et de réduire la redondance. Les procédures permettent aux administrateurs système et aux développeurs d'écrire du code plus efficace et plus facile à maintenir en décomposant les tâches complexes en unités plus petites et réutilisables.

Structures de contrôle CL

Les structures de contrôle CL sont des éléments du langage qui définissent la logique de gestion du flux d'exécution. Elles permettent de créer des chemins d'exécution conditionnels, des boucles et d'autres constructions décisionnelles. Parmi les structures de contrôle clés en CL, on trouve IF, DO, FOR, GOTO et ENDDO, qui permettent de contrôler le flux d'exécution en fonction de certaines conditions ou de tâches répétitives. Ces structures sont essentielles pour créer des programmes CL dynamiques et réactifs, capables de s'adapter à différentes conditions d'exécution.

Contrôle des tâches CL

Le contrôle des travaux CL implique l'utilisation de commandes CL pour gérer les travaux sur le système IBM i. Ce type de CL permet aux utilisateurs de contrôler le mode et le moment d'exécution des travaux, de surveiller leur statut, de gérer leurs priorités et de gérer les erreurs liées aux travaux. Le contrôle des travaux est un aspect essentiel de l'administration système, garantissant une utilisation efficace des ressources et une planification des tâches en fonction de la disponibilité et des priorités du système. Des commandes telles que CHGJOB (modification de travail) et SBMJOB (soumission de travail) sont couramment utilisées pour le contrôle des travaux.

Exemples de langage de contrôle

exemples de langage de contrôle

Voici quelques exemples de commandes et de programmes de langage de contrôle qui montrent comment les tâches peuvent être automatisées ou les ressources système peuvent être gérées sur les systèmes IBM i :

1. Affichage des emplois actifs

Cette commande CL affiche une liste de tous les travaux actifs sur le système.

WRKACTJOB

La commande WRKACTJOB permet de gérer les tâches actives. Elle présente la liste de toutes les tâches en cours d'exécution, ainsi que leur statut et d'autres informations pertinentes. Elle est utile aux administrateurs système pour surveiller l'activité et les performances des tâches.

2. Fin TCP Server

Cette commande termine un protocole TCP/IP spécifique server.

ENDTCPSVR SERVER(*ALL)

La commande ENDTCPSVR arrête un ou plusieurs TCP serversL’ SERVERLe paramètre (*ALL) spécifie que tous les TCP servers doit être arrêté. Cette méthode est généralement utilisée lors de la maintenance du réseau ou du système.

3. Soumettre le travail

Cette commande soumet un travail au système pour exécution.

SBMJOB CMD(CALL PGM(MYPGM)) JOB(MYJOB) JOBQ(MYJOBQ)

La commande SBMJOB soumet une tâche par lots. Dans cet exemple, elle soumet une tâche qui appelle le programme MYPGM. La tâche est placée dans la file d'attente MYJOBQ et sera exécutée dans le flux de tâches.

4. Modification des attributs du travail

Cette commande modifie la priorité du travail en cours.

CHGJOB JOB(*CURRENT) INQMSGRPY(*NONE)

La commande CHGJOB permet de modifier les attributs de la tâche. Dans cet exemple, l'option de réponse aux messages de la tâche est définie sur *NONE, ce qui signifie que la tâche n'attendra pas la saisie de l'utilisateur pour les réponses aux messages, souvent utilisées dans les tâches par lots.

5. Exécution conditionnelle

Ce programme CL démontre une structure logique conditionnelle simple.

IF COND(&MYVAR *EQ 'YES')

  SNDMSG MSG('Condition is TRUE') TOUSR(*ALL)

ELSE

  SNDMSG MSG('Condition is FALSE') TOUSR(*ALL)

ENDIF

Ce programme CL vérifie si la variable &MYVAR est égale à « YES ». Si c'est le cas, il envoie un message indiquant que la condition est vraie ; sinon, il envoie un message indiquant que la condition est fausse.

À quoi sert le langage de contrôle ?

Le langage de contrôle est principalement utilisé pour automatiser et gérer les tâches système sur les systèmes IBM i (anciennement AS/400 et iSeries). Il est conçu pour aider les administrateurs système et les développeurs à contrôler l'exécution des tâches, à gérer les ressources système et à automatiser un large éventail de processus. Parmi les principales utilisations du langage de contrôle, on peut citer :

  • Gestion des travaux. CL permet de contrôler et de gérer les travaux sur le système IBM i. Cela inclut la soumission, la surveillance de leur statut, la modification de leurs attributs et le contrôle de leurs files d'attente. Il permet aux administrateurs d'automatiser des tâches telles que la planification, la gestion des erreurs et l'arrêt des travaux.
  • Automatisation du système. CL est fréquemment utilisé pour automatiser les tâches répétitives de gestion système. Ces tâches peuvent inclure l'exécution backups, la gestion des ressources système (comme l'espace disque et la mémoire), le démarrage ou l'arrêt des services système et l'exécution de tâches par lots. Cette automatisation réduit les interventions manuelles et garantit la cohérence des opérations.
  • Gestion des fichiers et des données. CL permet aux utilisateurs de manipuler des fichiers et bases de données au sein de l'environnement IBM i. Il permet de créer, supprimer, copier ou déplacer des fichiers, ainsi que de gérer les enregistrements de bases de données. CL permet une gestion simplifiée. gestion des données et simplifie les interactions avec les systèmes de fichiers d'IBM i.
  • Sécurité et contrôle d'accèsLes commandes CL sont souvent utilisées pour gérer l'accès des utilisateurs, attribuer des profils de sécurité et contrôler les paramètres de sécurité du système. Elles permettent de créer et de gérer des profils utilisateurs, de contrôler l'accès à certaines ressources et d'appliquer des politiques de sécurité.
  • Configuration et installation du systèmeCL permet de configurer les paramètres système, de définir les paramètres système et de configurer des environnements pour des applications spécifiques. Il permet d'automatiser la configuration de divers composants système, garantissant ainsi une installation correcte et efficace.
  • Gestion des erreurs et dépannage. CL permet également de surveiller l'état et les performances du système. En cas d'erreur ou de conditions spécifiques, les programmes CL peuvent générer des alertes, consigner les erreurs ou même prendre automatiquement des mesures correctives, aidant ainsi les administrateurs à identifier et à résoudre rapidement les problèmes.
  • Contrôle et exécution du programme. CL permet la création et l'exécution de programmes et scripts qui peuvent contrôler d'autres programmes. Les programmes CL peuvent appeler d'autres programmes, transmettre des paramètres et gérer le flux d'exécution en fonction de conditions ou d'entrées spécifiques.

Comment implémenter le langage de contrôle ?

L'implémentation d'un langage de contrôle sur un système IBM i implique l'écriture et l'exécution de programmes ou de commandes CL pour automatiser et gérer diverses tâches système. Voici les étapes générales de mise en œuvre du langage CL :

1. Accédez au système IBM i. Pour implémenter CL, vous devez d'abord accéder au système IBM i. Vous pouvez vous connecter au système à l'aide d'un émulateur de terminal ou d'IBM Navigator for i, qui fournit une interface graphique pour interagir avec le système.

2. Écrivez un programme ou une commande CL. Les programmes CL sont généralement écrits à l'aide de l'environnement de développement intégré (IDE) d'IBM i ou directement depuis une interface de ligne de commande . Vous pouvez écrire des commandes CL individuelles qui effectuent des tâches spécifiques ou créer des programmes CL composés de plusieurs commandes CL, structurés avec une logique conditionnelle, des boucles et d'autres mécanismes de contrôle de flux.

Voici un exemple de programme CL simple :

PGM

DCL VAR(&MYVAR) TYPE(*CHAR) LEN(10)

CHGVAR VAR(&MYVAR) VALUE('HelloWorld')

SNDPGMMSG MSG(&MYVAR)

ENDPGM

Ce programme CL déclare une variable &MYVAR, lui attribue la valeur « HelloWorld », puis envoie cette valeur sous forme de message de programme à l'utilisateur.

3. Enregistrez le programme CL. Une fois le code CL écrit, vous devez l'enregistrer en tant qu'objet sur le système IBM i. Cela se fait généralement avec la commande CRTCLPGM (Créer un programme CL). Voici un exemple de création d'un programme CL :

CRTCLPGM PGM(MYLIB/MYPROGRAM) SRCFILE(MYLIB/QCLSRC) SRCMBR(MYPROGRAM)

Cette commande crée un programme CL à partir du code source d'un fichier source. MYLIB est la bibliothèque dans laquelle le programme sera créé et QCLSRC est le fichier source contenant le code CL.

4. Compilez le programme CL (si nécessaire). Une fois enregistrés, les programmes CL sont automatiquement compilés en un format exécutable par la commande CRTCLPGM. Toutefois, si vous modifiez un programme existant, vous devrez le recompiler à l'aide de la commande UPDPROD (Mettre à jour le programme) ou de la commande CRTCLPGM.

5. Exécutez le programme CL. Après l'avoir enregistré et compilé , vous pouvez exécuter votre programme CL à l'aide de la commande CALL. Voici comment appeler un programme CL :

CALL PGM(MYLIB/MYPROGRAM)

Cette commande appelle et exécute le programme MYPROGRAM CL à partir de la bibliothèque spécifiée (MYLIB).

6. Utiliser CL dans les traitements par lots ou les scripts. Les programmes CL peuvent également être utilisés dans les traitements par lots pour automatiser les processus répétitifs. Vous pouvez planifier ces traitements à l'aide de commandes de planification telles que SBMJOB (Soumettre un traitement). Cette commande soumet un traitement qui exécutera le programme CL MYPROGRAM. Le traitement est placé dans la file d'attente MYJOBQ pour exécution.

7. Débogage et dépannage. En cas de problème, IBM i propose plusieurs outils pour déboguer et dépanner les programmes CL. La commande STRDBG (Démarrer le débogage) permet de déboguer votre programme CL de manière interactive. Par ailleurs, la commande MONMSG, directement dans CL, permet de gérer les erreurs et de générer des messages d'erreur pertinents pour faciliter le diagnostic.

8. Déployer et automatiser. Une fois vos programmes CL testés et opérationnels, vous pouvez les déployer sur l'ensemble du système. CL est couramment utilisé pour automatiser des tâches telles que backups, planification des tâches et gestion des fichiers. Grâce à CL, vous pouvez garantir l'exécution automatique des tâches répétitives, sans intervention manuelle.

9. Maintenance et mise à jour des programmes CL. Les programmes CL nécessitent souvent une maintenance ou des mises à jour périodiques pour s'adapter aux nouvelles exigences du système ou aux changements des processus métier. Vous pouvez modifier les programmes existants en éditant le code source et en les recompilant. Vous pouvez également ajouter de nouvelles commandes ou une nouvelle logique pour améliorer leurs fonctionnalités.

Pourquoi le langage de contrôle est-il important ?

importance du langage de contrôle

Le langage de contrôle est important car il offre un moyen simple et efficace d'automatiser et de gérer les tâches système sur les systèmes IBM i, telles que le contrôle des travaux, la manipulation des fichiers et la maintenance du système. En permettant aux administrateurs système d'écrire et d'exécuter des scripts, le langage de contrôle élimine le besoin d'intervention manuelle dans les tâches routinières, améliorant ainsi la cohérence et la fiabilité des opérations système. Il offre également flexcapacité à contrôler le flux des tâches, à gérer les ressources système et à gérer les erreurs, le tout dans un langage simple mais puissant pour la programmation au niveau système.

L'intégration de CL avec le système d'exploitation IBM i garantit une interaction transparente avec d'autres applications et composants système, ce qui en fait un outil essentiel pour optimiser les performances et la stabilité du système.

Existe-t-il des défis dans la mise en œuvre du langage de contrôle ?

L'implémentation d'un langage de contrôle sur les systèmes IBM i peut s'avérer complexe, notamment lors de son intégration aux workflows existants ou de la gestion de tâches complexes. Voici quelques difficultés courantes liées à l'implémentation d'un langage de contrôle :

  • Courbe d'apprentissage. Bien que CL soit relativement simple comparé à d'autres langages de programmation, l'apprentissage peut être long pour les nouveaux utilisateurs ou les administrateurs système qui ne connaissent pas sa syntaxe ou sa structure de commandes. Comprendre les subtilités de CL, notamment pour les tâches système complexes, peut prendre du temps pour ceux qui ne maîtrisent pas encore les environnements IBM i.
  • Outils de débogage limités. Les programmes CL manquent souvent des outils de débogage avancés disponibles dans d'autres langages de programmation. Bien qu'un débogage de base soit possible avec la commande STRDBG, celle-ci n'est pas aussi robuste ni aussi conviviale que les environnements de débogage d'autres langages. Cela peut rendre la résolution des erreurs dans les programmes CL plus longue et plus difficile.
  • La gestion des erreurs. Les capacités de gestion des erreurs de CL sont quelque peu limitées par rapport aux langages de programmation modernes. Si la gestion des erreurs de base peut être effectuée à l'aide de la commande MONMSG, les fonctionnalités plus sophistiquées, telles que la gestion des exceptions ou la journalisation, ne sont pas intégrées par défaut au langage. Cela peut complexifier la gestion des erreurs dans les programmes CL complexes.
  • Évolutivité et complexitéPour les systèmes plus grands ou plus complexes, la maintenance et la mise à l'échelle des programmes CL deviennent complexes. CL est conçu pour les tâches système et non pour le développement d'applications complexes, ce qui peut entraîner des difficultés lors de l'intégration de scripts CL dans des workflows applicatifs plus importants. À mesure que les systèmes gagnent en complexité, le nombre de programmes CL et leurs interdépendances peuvent devenir plus difficiles à gérer.
  • Manque de fonctionnalités avancées. CL n'est pas un langage de programmation à usage général et ne possède pas certaines des fonctionnalités avancées que l'on trouve dans les langages modernes, telles que programmation orientée objet, le multithreading et des bibliothèques complètes. Cela peut le rendre moins adapté au développement d'applications complexes et limiter son flexibilité dans certains scénarios.
  • Dépendance au système IBM i. CL est étroitement lié au système d'exploitation IBM i et n'est pas transférable sur d'autres plateformes. Si une organisation décide de migrer hors du système IBM i, les programmes CL devront peut-être être réécrits ou adaptés au nouvel environnement, ce qui engendrera des coûts et des besoins en ressources supplémentaires pour la migration.
  • Versioning et compatibilité. Au fil du temps, les systèmes IBM i reçoivent des mises à jour et de nouvelles versions du système d'exploitation. Ces mises à jour peuvent parfois entraîner des problèmes de compatibilité avec les anciens programmes CL, obligeant les développeurs à revoir et modifier le code existant pour garantir sa compatibilité avec la dernière version du système.

Anastasie
Spasojevic
Anastazija est une rédactrice de contenu expérimentée avec des connaissances et une passion pour cloud l'informatique, les technologies de l'information et la sécurité en ligne. À phoenixNAP, elle se concentre sur la réponse à des questions brûlantes concernant la garantie de la robustesse et de la sécurité des données pour tous les acteurs du paysage numérique.