在這個範例中,巨集會呼叫程式並傳遞數個參數。 程式的原始檔會位在巨集之後,它是以 RPG 及 CL 撰寫而成的。 呼叫的程式會接受兩個整數參數。它會將第一個參數 (輸入參數) 複製到第二個參數 (輸出參數)。
巨集:
%define ilepgm = "/QSYS.LIB/NETDATADEV.LIB/TDCCLI01.PGM"
%define out1 = "0"
%FUNCTION(DTW_DIRECTCALL) dcFunction(IN INT inp1,
OUT INT outp2)
{ %EXEC { $(ilepgm) %} %}
%HTML(REPORT){
@dcFunction("123", out1)
The value of out1 is: "$(out1)"
%}
ILE RPG 程式:
DINP1 S 10I00 DOUTP2 S 10I00 C* C *ENTRY PLIST C PARM INP1 C PARM OUTP2 C* C Z-ADD INP1 OUTP2 C* C SETON LR
CL 程式:
PGM PARM(&INP1; &OUTP2;) DCL VAR(&INP1;) TYPE(*CHAR) LEN(4) DCL VAR(&OUTP2;) TYPE(*CHAR) LEN(4) CHGVAR VAR(&OUTP2;) VALUE(&INP1;) ENDPGM