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

Qu'entendez-vous par langage de contrôle ?
Le langage de contrôle 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 la l'automatisation et la gestion des tâches au niveau système, offrant un moyen de contrôler et d'automatiser les opérations sur ces systèmes. CL est étroitement intégré à l'IBM i. le système d'exploitation, 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 du système d'exploitation.
Contrairement aux langages de programmation à usage général, CL se concentre sur la gestion du système et l'automatisation des processus plutôt que sur des langages complexes. application développement. Il permet aux utilisateurs de contrôler le flux des tâches, de définir les paramètres système et de gérer entrée sortie opérations sans nécessiter une compréhension approfondie du code machine de bas niveau ou des mécanismes internes du système. CL est particulièrement utile pour administrateurs système qui ont besoin d'automatiser des tâches répétitives, telles que l'exécution de tâches par lots, la planification de tâches ou la gestion 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 effectuer 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 exécutable. Ces programmes sont stockés sous forme d'objets sur le système IBM i et peuvent être exécutés par lots ou en mode interactif. Ils peuvent également être appelés par d'autres programmes ou commandes, ce qui facilite 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 tâches.
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 CL qui fournissent la logique de gestion du flux d'exécution. Ces structures permettent aux utilisateurs de créer des chemins d'exécution conditionnels, des boucles et d'autres structures décisionnelles. Les structures de contrôle clés du langage CL incluent IF, DO, FOR, GOTO et ENDDO, qui aident à contrôler le flux d'exécution en fonction de certaines conditions ou de tâches répétées. Ces structures sont essentielles à la création de programmes CL dynamiques et réactifs, capables de s'adapter à différents environnements. d'exécution conditions.
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

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 y connecter via un émulateur de terminal ou 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 à partir d'un interface en ligne de commande. Vous pouvez soit écrire des commandes CL individuelles qui exécutent des tâches spécifiques, soit créer des programmes CL composés de plusieurs commandes CL, structurées avec une logique conditionnelle, boucles, et d'autres mécanismes de contrôle des 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 sous forme d'objet sur le système IBM i. Cette opération s'effectue 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. Cependant, si vous modifiez un programme existant, vous devrez le recompiler à l'aide de la commande UPDPROD (Mise à jour du programme) ou de la commande CRTCLPGM.
5. Exécutez le programme CL. Après avoir sauvegardé et compilationVous pouvez exécuter votre programme CL avec 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. Utilisez CL dans des tâches par lots ou des scripts. Les programmes CL peuvent également être utilisés dans des tâches par lots pour automatiser les processus de routine. Vous pouvez planifier ces tâches à l'aide de commandes de planification comme SBMJOB (Submit Job). Cette commande soumet une tâche qui exécutera le programme CL MYPROGRAM. La tâche est placée dans la file d'attente MYJOBQ pour exécution.
7. Déboguer et dépanner. Si vous rencontrez des problèmes, IBM i propose plusieurs outils pour déboguer et résoudre les problèmes des programmes CL. La commande STRDBG (Start Debugging) vous permet de déboguer votre programme CL de manière interactive. D'autre part, vous pouvez utiliser la commande MONMSG dans CL pour gérer les erreurs et générer des messages d'erreur appropriés 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. Maintenir et mettre à jour les programmes CL. Les programmes CL nécessitent souvent une maintenance ou des mises à jour périodiques pour s'adapter aux nouvelles exigences système ou aux changements de processus métier. Vous pouvez modifier les programmes existants en modifiant le code source et les recompiler. Vous pouvez également ajouter de nouvelles commandes ou logiques pour améliorer les fonctionnalités.
Pourquoi le langage de contrôle est-il important ?

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.