Repository navigation
Procedures
Daniel Long edited this page Sep 24, 2026
·
2 revisions
**FREE
// Forward declaration (prototype)
DCL-PR Add INT(10);
a INT(10) VALUE;
b INT(10) VALUE;
END-PR;
// Call it
DCL-S result INT(10);
result = Add(3 : 5);
DSPLY %CHAR(result); // 8
RETURN;
// Implementation
DCL-PROC Add;
DCL-PI *N INT(10);
a INT(10) VALUE;
b INT(10) VALUE;
END-PI;
RETURN a + b;
END-PROC;The procedure interface (DCL-PI) must be named: *N, or the procedure's
own name (DCL-PI Add INT(10);). As on IBM i, DCL-PI INT(10); is an error.
DCL-PROC Greet;
DCL-PI *N VARCHAR(100);
name VARCHAR(50) VALUE;
title VARCHAR(20) VALUE OPTIONS(*NOPASS);
END-PI;
IF %PARMS >= 2;
RETURN 'Hello, ' + title + ' ' + name;
ELSE;
RETURN 'Hello, ' + name;
ENDIF;
END-PROC;- Installation
- Quick Start
- CLI Reference
- Language Basics
- Data Types
- Variables and Constants
- Data Structures
- Arrays
- Varying-Dimension Arrays
- Control Flow
- Procedures
- Procedure Overloading
- Built-In Functions
- Error Handling
- Operation Extenders
- Enumerations
- Program Status Data Structure
- Data Areas
- SND-MSG
- Embedded SQL
- Record-Level Access
- Display Files (WORKSTN)
- Program-Described Files (I-Specs and O-Specs)
- DATA-INTO and DATA-GEN
- XML-INTO
- Fixed-Format Source
- Database Connections
- Multi-Module Programs
- Environment Variables
- Testing
- Complete Example: Employee Report
- IBM i Conformance Results
- IBM i Execution Results