http://www.itjungle.com/mpo/mpo022802-story01.html
http://www.itjungle.com/mpo/mpo031402-story02.html

CrtSrvPgm SrvPgm( MyLib/MySrvPgm ) +
Module( Mod1 Mod2 Mod3 ) +
Export( *All )
Export( *All ) parameter specifies that all publicly available modules and data items within the service program are also available to the user of the service program
moduli nomain:
H nomain
/copy *libl/srccpy,cpy_protxx
* procedure export
P aw_getp b export
D aw_getp pi 1n
* ...
D aw_getp_user 10a value
* ...
P aw_getp E
prototipo in file separato(cpy_protxx)
D aw_getp pr 1n
D aw_getp_user 10a value
...
binder language: you can pick and choose which of a service program's exportable procedures and data to make available to the outside world, stesso nome del serviceprogram, usato automaticamente dal comando CrtSrvPgm file AW.bnd
STRPGMEXP PGMLVL(*CURRENT) LVLCHK(*YES) +
SIGNATURE('GEN0000000001')
EXPORT Symbol(AW_GETP )
ENDPGMEXP
programma chiamante:
H dftactgrp(*no) bnddir('AW')
/copy *libl/srccpy,cpy_protxx
C ... usa il prototipo
info di debug:
WRKSRVPGM SRVPGM(AW)
compilare sevice program
CRTSRVPGM SRVPGM(X_OBJ/AW) +
MODULE(X_OBJ/AW_*) EXPORT(*SRCFILE) +
SRCFILE(X_SRC/SRCMOD) SRCMBR(*SRVPGM) +
TEXT('Service Program AW X') +
ACTGRP(*CALLER) OPTION(*DUPPROC) +
DETAIL(*BASIC) USRPRF(*USER) ALWRINZ(*YES)
assicurarsi che ci sia la bindir
CRTBNDDIR BNDDIR(X_OBJ/AW) ADDBNDDIRE BNDDIR(X_OBJ/AW) OBJ(X_OBJ/AW)
vedere i prototipi esportati da una bind dir:
WRKBNDDIRE BNDDIR(QC2LE)
** trovare tutte i swervice program e binddir
WRKOBJ OBJ(*ALL/*ALL) OBJTYPE(*SRVPGM) WRKOBJ OBJ(*ALL/*ALL) OBJTYPE(*BNDDIR)
H nomain bnddir('QC2LE') /copy *libl/srccpy,cpy_protaq
occorrono i prototipi delle funzioni API che si vogliono utilizzare, "ILE C/C++ Run-Time Library Functions" manual