Home › Learn IBM i › CL Programming Guide
Control Language (CL) is how IBM i programs talk to the operating system: submitting jobs, handling messages, and orchestrating batch work. This guide collects the CL material on AS400Decoded by task.
Start with the introductions, then focus on message handling, which is where most production CL bugs hide.
Getting Started with CL
Three introductions at increasing depth: what CL is, how RPG developers use it, and where ILE CL fits in a modern IBM i stack.
- CL Programming Explained
- CL commands for RPG programmers: the system layer you cannot ignore
- CL in 2026: ILE Control Language, MONMSG Error Handling, Batch Orchestration, and Where CL Fits in a Modern IBM i Stack
Messages and Error Handling
Message handling decides whether a CL program fails cleanly or silently. Start with the general IBM i message model, then the CL commands that act on it.
- IBM i Error Handling and Message Control Explained
- IBM i Message Files and Exception Handling in CL in 2026: SNDPGMMSG, MONMSG, RCVMSG, Message Types, and Robust Error Handling
- CL Error Handling and Exception Management on IBM i: MONMSG, Escape Messages, Condition Handlers, SNDPGMMSG, and Robust CL Procedure Design in 2026
Jobs and Batch Automation
Submitting, scheduling, and controlling batch work from CL.
- CL job scheduling on IBM i: SBMJOB, WRKJOBSCDE, and automating batch work
- IBM i System Operations with CL in 2026: Subsystem Management, Job Control, Data Queues, Output Queues, and Job Scheduling
Data Areas and Data Queues
Small system objects that CL programs use to share values and pass data between jobs.
- IBM i Data Areas, Data Queues, and User Spaces Explained
- IBM i CL Data Areas and Data Queues: CRTDTAARA, RTVDTAARA, CHGDTAARA, CRTDTAQ, SNDDTAQ, RCVDTAQ, and Inter-Program Communication in 2026
Planned Topics
These topics are on the writing plan for this guide:
- CL program structure: PGM, DCL, and ENDPGM
- CL variables, data types, and CHGVAR
- Reading database files in CL with DCLF and RCVF
Browse the Archive
See every post filed in the CL Programming category, newest first.