プロシージャー・インターフェースは DCL-PI ステートメントで始まります。
DCL-PI ステートメントの後には、ゼロ個またはそれ以上のパラメーター が続き、その後に END-PI ステートメントが続きます。
最初のステートメントは DCL-PI で始まり、その後にプロシージャーの 名前が続くか、プロシージャーの名前を繰り返したくない場合は *N が続き、 さらにその後にキーワードが続き、最後はセミコロンで終わります。
自由形式のパラメーター定義を参照してください。
CTL-OPT OPTION(*SRCSTMT);
DCL-PI *N; 1
name CHAR(10) CONST;
END-PI;
DSPLY ('Hello ' + name);
RETURN;
CTL-OPT MAIN(sayHello) OPTION(*SRCSTMT);
DCL-PROC sayHello;
DCL-PI *N EXTPGM; 2
name CHAR(10) CONST;
END-PI;
DSPLY ('Hello ' + name);
END-PROC;
DCL-PROC addNewOrder;
DCL-PI *N;
id INT(10) VALUE;
quantity INT(10) CONST;
price PACKED(7 : 2) CONST;
END-PI; 3
...
END-PROC;
DCL-PROC addNewOrder;
DCL-PI *N;
id INT(10) CONST;
quantity INT(10) CONST;
price PACKED(7 : 2) CONST;
END-PI addNewOrder; 4
...
END-PROC;
DCL-PROC getCurrentUser;
DCL-PI *N CHAR(10) END-PI; 5
DCL-S currentUser CHAR(10) INZ(*USER);
RETURN currentUser;
END-PROC;
DCL-PI *N;
DCL-PARM select CHAR(10); 6a
name CHAR(10); 6b
DCL-PARM address CHAR(25); 6c
END-PI;
