Control Language (CL) ist eine hochrangige Programmiersprache wird hauptsรคchlich auf den AS/400- und iSeries-Systemen von IBM verwendet.

Was meinen Sie mit Kontrollsprache?
Control Language ist eine spezielle Programmiersprache, die von IBM fรผr die AS/400- und iSeries-Systeme entwickelt wurde und heute als IBM i bekannt ist. Sie dient in erster Linie der Unterstรผtzung der Automatisierung und Verwaltung von Aufgaben auf Systemebene, wodurch die Steuerung und Automatisierung von Vorgรคngen auf diesen Systemen ermรถglicht wird. CL ist eng mit dem IBM i integriert Betriebssystem, sodass Benutzer Programme schreiben kรถnnen, die mit Systemressourcen interagieren, die Jobausfรผhrung verwalten, Dateien bearbeiten und Betriebssystembefehle ausfรผhren kรถnnen.
Im Gegensatz zu allgemeinen Programmiersprachen konzentriert sich CL eher auf Systemmanagement und Prozessautomatisierung als auf komplexe Anwendung Entwicklung. Es ermรถglicht Benutzern, den Arbeitsablauf zu steuern, Systemparameter zu definieren und zu verwalten Input-Output Operationen, ohne dass ein tiefes Verstรคndnis des Maschinencodes auf niedrigerer Ebene oder der Systeminterna erforderlich ist. CL ist besonders nรผtzlich fรผr Systemadministratoren die wiederkehrende Aufgaben automatisieren mรผssen, wie z. B. das Ausfรผhren von Batch-Jobs, das Planen von Aufgaben oder das Verwalten Dateisysteme.
Arten von Kontrollsprachen
Steuerungssprachen lassen sich je nach Verwendungszweck und Funktionalitรคt grob in verschiedene Typen unterteilen. Nachfolgend sind die wichtigsten Steuerungssprachentypen aufgefรผhrt, die in IBM i-Systemen verwendet werden.
CL-Befehle
CL-Befehle sind einzelne Anweisungen in der Steuersprache, die bestimmte Aufgaben im System ausfรผhren. Diese Befehle kรถnnen fรผr verschiedene Zwecke verwendet werden, z. B. zur Dateiverwaltung, zur Steuerung der Jobausfรผhrung, zur Interaktion mit Systemressourcen oder zur Ausfรผhrung von Aufgaben auf Systemebene wie Arbeit planenCL-Befehle werden typischerweise sequenziell ausgefรผhrt, um Prozesse zu automatisieren oder Systemfunktionen zu verwalten. Beispiele hierfรผr sind WRKACTJOB (Arbeiten mit aktiven Jobs) und ENDTCPSVR (Beenden TCP server).
CL-Programme
Ein CL-Programm ist eine Sammlung von CL-Befehlen, die gruppiert sind, um eine Reihe von Operationen im Rahmen einer grรถรeren Aufgabe auszufรผhren. CL-Programme ermรถglichen die Automatisierung komplexer Vorgรคnge und die Integration mehrerer Befehle in eine einzige ausfรผhrbare Datei. Diese Programme werden als Objekte im IBM i-System gespeichert und kรถnnen im Batch- oder interaktiven Modus ausgefรผhrt werden. Sie kรถnnen auch von anderen Programmen oder Befehlen aufgerufen werden, was eine wiederverwendbare und effiziente Automatisierung ermรถglicht. CL-Programme werden typischerweise zur Automatisierung von Systemwartung, Jobplanung oder Stapelverarbeitung Aufgaben.
CL-Verfahren
CL-Prozeduren sind wiederverwendbare Codeblรถcke, die eine Reihe von CL-Befehlen enthalten. Im Gegensatz zu CL-Programmen sind CL-Prozeduren keine eigenstรคndigen ausfรผhrbaren Dateien, sondern werden innerhalb anderer CL-Programme oder -Jobs aufgerufen. Sie ermรถglichen die Modularisierung von Code und reduzieren Redundanz. Prozeduren ermรถglichen es Systemadministratoren und Entwicklern, effizienteren und wartungsfreundlicheren Code zu schreiben, indem sie komplexe Aufgaben in kleinere, wiederverwendbare Einheiten zerlegen.
CL-Kontrollstrukturen
CL-Kontrollstrukturen sind Elemente der CL-Sprache, die die Logik fรผr die Steuerung des Ausfรผhrungsflusses bereitstellen. Diese Strukturen ermรถglichen es Benutzern, bedingte Ausfรผhrungspfade, Schleifen und andere Entscheidungskonstrukte zu erstellen. Zu den wichtigsten Kontrollstrukturen in CL gehรถren IF, DO, FOR, GOTO und ENDDO, die die Steuerung des Ausfรผhrungsflusses basierend auf bestimmten Bedingungen oder wiederholten Aufgaben unterstรผtzen. Diese Strukturen sind unerlรคsslich fรผr die Erstellung dynamischer, reaktionsfรคhiger CL-Programme, die sich an unterschiedliche Laufzeit Gesundheitsproblemen.
CL-Job-Kontrolle
Die CL-Jobsteuerung umfasst die Verwendung von CL-Befehlen zur Verwaltung von Jobs auf dem IBM i-System. Mit diesem CL-Typ kรถnnen Benutzer steuern, wie und wann Jobs ausgefรผhrt werden, den Jobstatus รผberwachen, Jobprioritรคten verwalten und jobbezogene Fehler beheben. Die Jobsteuerung ist ein wichtiger Aspekt der Systemadministration und stellt sicher, dass Ressourcen effizient genutzt und Aufgaben entsprechend der Systemverfรผgbarkeit und -prioritรคten geplant werden. Befehle wie CHGJOB (Job รคndern) und SBMJOB (Job รผbermitteln) werden hรคufig in der Jobsteuerung verwendet.
Beispiele fรผr Steuersprachen

Hier sind einige Beispiele fรผr Steuersprachenbefehle und -programme, die zeigen, wie Aufgaben automatisiert oder Systemressourcen auf IBM i-Systemen verwaltet werden kรถnnen:
1. Anzeige aktiver Jobs
Dieser CL-Befehl zeigt eine Liste aller aktiven Jobs auf dem System an.
WRKACTJOB
Der Befehl WRKACTJOB dient zur Arbeit mit aktiven Jobs. Er zeigt eine Liste aller aktuell laufenden Jobs mit Status und weiteren relevanten Details an. Dies ist fรผr Systemadministratoren hilfreich, um die Jobaktivitรคt und -leistung zu รผberwachen.
2. TCP beenden Server
Dieser Befehl beendet eine bestimmte TCP/IP server.
ENDTCPSVR SERVER(*ALL)
Der Befehl ENDTCPSVR stoppt einen oder mehrere TCP serversdem โVermischten Geschmackโ. Seine SERVER(*ALL) Parameter gibt an, dass alle TCP servers gestoppt werden soll. Dies wird typischerweise bei Wartungsarbeiten am Netzwerk oder System verwendet.
3. Auftrag absenden
Dieser Befehl รผbermittelt einen Job zur Ausfรผhrung an das System.
SBMJOB CMD(CALL PGM(MYPGM)) JOB(MYJOB) JOBQ(MYJOBQ)
Der Befehl SBMJOB รผbergibt einen Stapeljob. In diesem Beispiel wird ein Job รผbergeben, der das Programm MYPGM aufruft. Der Job wird in die Jobwarteschlange MYJOBQ gestellt und als Teil des Jobstroms ausgefรผhrt.
4. รndern von Jobattributen
Dieser Befehl รคndert die Prioritรคt des aktuellen Jobs.
CHGJOB JOB(*CURRENT) INQMSGRPY(*NONE)
Mit dem Befehl CHGJOB kรถnnen Sie die Attribute des Jobs รคndern. In diesem Beispiel wird die Antwortoption des Jobs auf *NONE geรคndert. Dies bedeutet, dass der Job nicht auf Benutzereingaben fรผr Nachrichtenantworten wartet, was hรคufig bei Batch-Jobs verwendet wird.
5. Bedingte Ausfรผhrung
Dieses CL-Programm demonstriert eine einfache bedingte Logikstruktur.
IF COND(&MYVAR *EQ 'YES')
SNDMSG MSG('Condition is TRUE') TOUSR(*ALL)
ELSE
SNDMSG MSG('Condition is FALSE') TOUSR(*ALL)
ENDIF
Dieses CL-Programm prรผft, ob die Variable &MYVAR den Wert โYESโ hat. Ist dies der Fall, sendet es eine Meldung, die angibt, dass die Bedingung erfรผllt ist; andernfalls sendet es eine Meldung, die angibt, dass die Bedingung falsch ist.
Wofรผr wird die Steuersprache verwendet?
Die Control Language (CL) wird hauptsรคchlich zur Automatisierung und Verwaltung von Systemaufgaben auf IBM i-Systemen (frรผher bekannt als AS/400 und iSeries) eingesetzt. Sie unterstรผtzt Systemadministratoren und Entwickler bei der Steuerung der Auftragsausfรผhrung, der Verwaltung von Systemressourcen und der Automatisierung einer Vielzahl von Prozessen. Zu den wichtigsten Einsatzmรถglichkeiten von CL gehรถren:
- AuftragsverwaltungCL dient zur Steuerung und Verwaltung von Jobs auf dem IBM i-System. Dies umfasst das Senden von Jobs, die รberwachung des Jobstatus, das รndern von Jobattributen und die Steuerung von Jobwarteschlangen. Administratoren kรถnnen damit Aufgaben wie Jobplanung, Fehlerbehandlung und Jobbeendigung automatisieren.
- Systemautomatisierung. CL wird hรคufig verwendet, um wiederkehrende Systemverwaltungsaufgaben zu automatisieren. Diese Aufgaben kรถnnen Folgendes umfassen: backups, Verwalten von Systemressourcen (wie Festplattenspeicher und Arbeitsspeicher), Starten oder Stoppen von Systemdiensten und Ausfรผhren von Batch-Jobs. Diese Automatisierung reduziert manuelle Eingriffe und gewรคhrleistet konsistente Ablรคufe.
- Datei- und Datenverwaltung. CL ermรถglicht es Benutzern, Dateien zu bearbeiten und Datenbanken innerhalb der IBM i-Umgebung. Es kann zum Erstellen, Lรถschen, Kopieren oder Verschieben von Dateien sowie zur Verwaltung von Datenbankeintrรคgen verwendet werden. CL ermรถglicht eine optimierte Datenmanagement und vereinfacht die Interaktion mit den Dateisystemen von IBM i.
- Sicherheit und ZugangskontrolleCL-Befehle werden hรคufig verwendet, um den Benutzerzugriff zu verwalten, Sicherheitsprofile zuzuweisen und Systemsicherheitseinstellungen zu steuern. Sie kรถnnen damit Benutzerprofile erstellen und verwalten, den Zugriff auf bestimmte Ressourcen steuern und Sicherheitsrichtlinien durchsetzen.
- Systemkonfiguration und -einrichtungMit CL kรถnnen Sie Systemeinstellungen konfigurieren, Systemparameter definieren und Umgebungen fรผr bestimmte Anwendungen einrichten. Es ermรถglicht die Automatisierung der Konfiguration verschiedener Systemkomponenten und stellt so eine korrekte und effiziente Systemeinrichtung sicher.
- Fehlerbehandlung und FehlerbehebungCL wird auch zur รberwachung des Systemzustands und der Systemleistung eingesetzt. Bei Fehlern oder bestimmten Bedingungen kรถnnen CL-Programme Warnungen generieren, Fehler protokollieren oder sogar automatisch Korrekturmaรnahmen ergreifen. So kรถnnen Administratoren Probleme schnell erkennen und beheben.
- Programmsteuerung und -ausfรผhrung. CL ermรถglicht die Erstellung und Ausfรผhrung von Programmen und Skripte die andere Programme steuern kรถnnen. CL-Programme kรถnnen andere Programme aufrufen, Parameter รผbergeben und den Ausfรผhrungsfluss basierend auf bestimmten Bedingungen oder Eingaben verwalten.
Wie implementiere ich eine Steuersprache?
Die Implementierung einer Steuersprache auf einem IBM i-System umfasst das Schreiben und Ausfรผhren von CL-Programmen oder -Befehlen zur Automatisierung und Verwaltung verschiedener Systemaufgaben. Nachfolgend sind die allgemeinen Schritte zur Implementierung von CL aufgefรผhrt:
1. Greifen Sie auf das IBM i-System zu. Um CL zu implementieren, benรถtigen Sie zunรคchst Zugriff auf das IBM i-System. Die Verbindung zum System erfolgt รผber einen Terminalemulator oder den IBM Navigator fรผr i, der eine grafische Benutzeroberflรคche fรผr die Interaktion mit dem System bietet.
2. Schreiben Sie ein CL-Programm oder einen CL-Befehl. CL-Programme werden typischerweise mit der integrierten Entwicklungsumgebung (IDE) von IBM i oder direkt von einem BefehlszeilenschnittstelleSie kรถnnen entweder einzelne CL-Befehle schreiben, die bestimmte Aufgaben ausfรผhren, oder CL-Programme erstellen, die aus mehreren CL-Befehlen bestehen, die mit bedingter Logik strukturiert sind. Schleifenund andere Kontrollflussmechanismen.
Hier ist ein Beispiel fรผr ein einfaches CL-Programm:
PGM
DCL VAR(&MYVAR) TYPE(*CHAR) LEN(10)
CHGVAR VAR(&MYVAR) VALUE('HelloWorld')
SNDPGMMSG MSG(&MYVAR)
ENDPGM
Dieses CL-Programm deklariert eine Variable &MYVAR, weist ihr den Wert โHelloWorldโ zu und sendet diesen Wert dann als Programmnachricht an den Benutzer.
3. Speichern Sie das CL-Programm. Nachdem Sie den CL-Code geschrieben haben, mรผssen Sie ihn als Objekt auf dem IBM i-System speichern. Dies geschieht รผblicherweise mit dem Befehl CRTCLPGM (Create CL Program). Hier ist ein Beispiel fรผr die Erstellung eines CL-Programms:
CRTCLPGM PGM(MYLIB/MYPROGRAM) SRCFILE(MYLIB/QCLSRC) SRCMBR(MYPROGRAM)
Dieser Befehl erstellt ein CL-Programm aus dem Quellcode einer Quelldatei. MYLIB ist die Bibliothek, in der das Programm erstellt wird, und QCLSRC ist die Quelldatei, die den CL-Code enthรคlt.
4. Kompilieren Sie das CL-Programm (falls erforderlich). Nach dem Speichern werden CL-Programme mit dem Befehl CRTCLPGM automatisch in ein ausfรผhrbares Format kompiliert. Wenn Sie jedoch ein vorhandenes Programm bearbeiten oder รคndern, mรผssen Sie es mit dem Befehl UPDPROD (Programm aktualisieren) oder CRTCLPGM neu kompilieren.
5. Fรผhren Sie das CL-Programm aus. Nach dem Speichern und Zusammenstellungkรถnnen Sie Ihr CL-Programm mit dem Befehl CALL ausfรผhren. So rufen Sie ein CL-Programm auf:
CALL PGM(MYLIB/MYPROGRAM)
Dieser Befehl ruft das CL-Programm MYPROGRAM aus der angegebenen Bibliothek (MYLIB) auf und fรผhrt es aus.
6. Verwenden Sie CL in Batch-Jobs oder Skripten. CL-Programme kรถnnen auch in Batch-Jobs zur Automatisierung von Routineprozessen eingesetzt werden. Sie kรถnnen diese Jobs mit Job-Scheduling-Befehlen wie SBMJOB (Submit Job) planen. Dieser Befehl sendet einen Job, der das CL-Programm MYPROGRAM ausfรผhrt. Der Job wird zur Ausfรผhrung in die Warteschlange MYJOBQ gestellt.
7. Debuggen und Fehler beheben. Sollten Probleme auftreten, bietet IBM i verschiedene Tools zum Debuggen und Beheben von Problemen in CL-Programmen. Mit dem Befehl STRDBG (Start Debugging) kรถnnen Sie Ihr CL-Programm interaktiv debuggen. Mit dem Befehl MONMSG kรถnnen Sie innerhalb von CL Fehler behandeln und entsprechende Fehlermeldungen generieren, um die Diagnose zu vereinfachen.
8. Bereitstellen und automatisieren. Nachdem Ihre CL-Programme getestet wurden und funktionieren, kรถnnen Sie sie systemweit einsetzen. CL wird hรคufig zur Automatisierung von Aufgaben wie backups, Jobplanung und Dateiverwaltung. Durch die Nutzung von CL kรถnnen Sie sicherstellen, dass sich wiederholende Aufgaben automatisch und ohne manuelle Eingriffe ausgefรผhrt werden.
9. Pflegen und aktualisieren Sie CL-Programme. CL-Programme erfordern hรคufig regelmรครige Wartung oder Updates, um neue Systemanforderungen oder รnderungen in Geschรคftsprozessen zu berรผcksichtigen. Sie kรถnnen vorhandene Programme รคndern, indem Sie die Quellcode und neu kompilieren. Sie kรถnnen auch neue Befehle oder Logik hinzufรผgen, um die Funktionalitรคt zu verbessern.
Warum ist Kontrollsprache wichtig?

Die Control Language ist wichtig, da sie eine optimierte und effiziente Mรถglichkeit bietet, Systemaufgaben auf IBM i-Systemen zu automatisieren und zu verwalten, wie z. B. Jobsteuerung, Dateibearbeitung und Systemwartung. Indem Systemadministratoren Skripte schreiben und ausfรผhren kรถnnen, macht CL manuelle Eingriffe in Routineaufgaben รผberflรผssig und verbessert so die Konsistenz und Zuverlรคssigkeit im gesamten Systembetrieb. Es bietet auรerdem flexMรถglichkeit, den Arbeitsfluss zu steuern, Systemressourcen zu verwalten und Fehler zu behandeln โ und das alles in einer Sprache, die einfach und dennoch leistungsstark fรผr die Programmierung auf Systemebene ist.
Die Integration von CL in das IBM i-Betriebssystem gewรคhrleistet eine nahtlose Interaktion mit anderen Anwendungen und Systemkomponenten und macht es zu einem unverzichtbaren Tool zur Optimierung der Leistung und Stabilitรคt des Systems.
Gibt es Herausforderungen bei der Implementierung einer Steuersprache?
Die Implementierung einer Control Language auf IBM i-Systemen kann mit gewissen Herausforderungen verbunden sein, insbesondere bei der Integration in bestehende Workflows oder der Verwaltung komplexer Aufgaben. Im Folgenden sind einige hรคufige Herausforderungen bei der Implementierung von Control Language aufgefรผhrt:
- Lernkurve. Obwohl CL im Vergleich zu anderen Programmiersprachen relativ einfach ist, kann es fรผr neue Benutzer oder Systemadministratoren, die mit der Syntax oder Befehlsstruktur nicht vertraut sind, dennoch eine Lernkurve geben. Das Verstรคndnis der Nuancen von CL, insbesondere bei komplexen Systemaufgaben, kann fรผr Benutzer ohne Erfahrung mit IBM i-Umgebungen einige Zeit in Anspruch nehmen.
- Begrenzte Debugging-Tools. CL-Programmen fehlen oft die erweiterten Debugging-Tools anderer Programmiersprachen. Zwar ist mit dem Befehl STRDBG eine grundlegende Fehlerbehebung mรถglich, diese ist jedoch nicht so robust und benutzerfreundlich wie die Debugging-Umgebungen anderer Sprachen. Dies kann die Fehlerbehebung in CL-Programmen zeitaufwรคndiger und schwieriger machen.
- Fehlerbehandlung. Die Fehlerbehandlungsfunktionen von CL sind im Vergleich zu modernen Programmiersprachen etwas eingeschrรคnkt. Wรคhrend die grundlegende Fehlerbehandlung mit dem Befehl MONMSG mรถglich ist, sind anspruchsvollere Fehlermanagementfunktionen wie Ausnahmebehandlung oder Protokollierung standardmรครig nicht in die Sprache integriert. Dies kann die Fehlerbehandlung in komplexen CL-Programmen umstรคndlicher machen.
- Skalierbarkeit und KomplexitรคtBei grรถรeren oder komplexeren Systemen wird die Wartung und Skalierung von CL-Programmen zu einer Herausforderung. CL ist fรผr Aufgaben auf Systemebene konzipiert und nicht fรผr die Entwicklung komplexer Anwendungen. Dies kann zu Schwierigkeiten bei der Integration von CL-Skripten in grรถรere Anwendungs-Workflows fรผhren. Mit zunehmender Komplexitรคt der Systeme kann die Anzahl der CL-Programme und ihrer Abhรคngigkeiten schwieriger zu verwalten sein.
- Mangel an erweiterten Funktionen. CL ist keine universelle Programmiersprache und verfรผgt nicht รผber einige der erweiterten Funktionen moderner Sprachen, wie zum Beispiel Objekt orientierte Programmierung, Multithreading und umfangreiche Bibliotheken. Dies kann es weniger geeignet fรผr die Entwicklung komplexer Anwendungen machen und kann seine flexibilitรคt in bestimmten Szenarien.
- Abhรคngigkeit vom IBM i-System. CL ist eng an das IBM i-Betriebssystem gebunden und nicht auf andere Plattformen portierbar. Entscheidet sich ein Unternehmen fรผr eine Migration vom IBM i-System, mรผssen die CL-Programme mรถglicherweise neu geschrieben oder an die neue Umgebung angepasst werden. Dies verursacht zusรคtzliche Kosten und Ressourcenbedarf fรผr die Migration.
- Versionierung und Kompatibilitรคt. IBM i-Systeme erhalten regelmรครig Updates und neue Betriebssystemversionen. Diese Updates kรถnnen jedoch manchmal zu Kompatibilitรคtsproblemen mit รคlteren CL-Programmen fรผhren. Entwickler mรผssen dann den vorhandenen Code รผberprรผfen und anpassen, um sicherzustellen, dass er mit der neuesten Systemversion kompatibel ist.