AS/400 programming refers to writing software for the IBM AS/400 system (now known as IBM iSeries or IBM i). Itβs a robust midrange server system widely used in banking, manufacturing, insurance, and logistics for its stability, performance, and security.
| Aspect | Description |
|---|---|
| Platform | IBM AS/400 (now IBM i) |
| Main Languages | RPG, CL, COBOL, SQL, Java |
| Database | DB2/400 (integrated relational DB) |
| Interface | Green-screen terminal (5250) and modern GUI/web interfaces |
| Tools | IBM Rational Developer for i (RDi), SEU, PDM |
The primary and most common AS/400 programming language.
Variants: RPG III, RPG IV, and modern Free-Format RPG (RPGLE)
β Free-Format RPG Example:
**FREE
ctl-opt dftactgrp(*no) actgrp('MYPGM');
dcl-s msg varchar(50);
msg = 'Hello, AS/400!';
dsply msg;
*inlr = *on;
return;
Used for scripting, job control, and calling programs.
β CL Example:
PGM
DCL VAR(&NAME) TYPE(*CHAR) LEN(10)
CHGVAR VAR(&NAME) VALUE('IBMUSER')
SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('Hello' *BCAT &NAME)
ENDPGM
You can write SQL in interactive SQL or embed it in RPG/CL.
β SQL Example:
SELECT * FROM EMPLOYEES WHERE DEPARTMENT = 'IT';
| Component | Description |
|---|---|
| Libraries | Containers for related objects (like folders) |
| Objects | Everything on AS/400 is an object: files, programs, etc. |
| Physical File (PF) | Like a table |
| Logical File (LF) | Like a view/index |
| Data Areas/Queues | Shared memory or communication between programs |
| Job/Job Queue | How tasks are scheduled and run |
| Tool | Use |
|---|---|
| SEU (Source Entry Utility) | Edit source code (old style) |
| PDM (Program Development Manager) | Navigate/edit source |
| RDi (IBM Rational Developer for i) | Modern Eclipse-based IDE |
| ACS (Access Client Solutions) | Modern GUI for database and terminal |
| Project | Involves |
|---|---|
| Payroll System | RPG + DB2 + CL |
| Inventory Management | RPGLE + SQL |
| User Audit Logging | CL + SQL |
| Menu Navigation | CLP (menus) |
| REST API on IBM i | RPG + Node.js or Java |