L'esempio che segue riporta una macro contenente una definizione di funzione con tre parametri, P1, P2 e P3. P1 è un parametro input (IN) e P2 e P3 sono parametri output (OUT). La funzione chiama un programma, UPDPGM, che aggiorna il parametro P2 con il valore P1 e imposta P3 su una stringa di caratteri. Prima di elaborare l'istruzione nel blocco %EXEC, l'ambiente di linguaggio DTW_SYSTEM memorizza P1 e il valore corrispondente nello spazio di ambiente.
%DEFINE {
MYPARM2 = "ValueOfParm2"
MYPARM3 = "ValueOfParm3"
%}
%FUNCTION(DTW_SYSTEM) sys1 (IN P1, OUT P2, P3) {
%EXEC {
/QSYS.LIB/NETDATA.LIB/UPDPGM.PGM
%}
%}
%HTML(upd1) {
<P>
Trasferimento dati ad un programma. il valore corrente di
MYPARM2 è "$(MYPARM2)" e quello di MYPARM3 è
"$(MYPARM3)". Viene ora richiamata la funzione macro del Web.
@sys1("ValueOfParm1", MYPARM2, MYPARM3)
<P>
Una volta chiamata la funzione MYPARM2 è "$(MYPARM2)"
e il valore di MYPARM3 è "$(MYPARM3)".
%}
Se si considera che la macro Web è memorizzata nella libreria NETDATA, file SYSMAC e membro SYS1, si fa riferimento alla macro caricando dal browser il seguente URL:
http://hostname/cgi-bin/db2www/qsys.lib/netdata.lib/sysmac.file/ sys1.mbr/upd1