ErrCode ist eine Struktur, die korrekt initialisiert werden muss:

d ErrCode ds qualified inz
d BytesAvalable 10I 0
d BytesReturn 10I 0
d MsgId 7
d Reserve 1
d MsgDta 512 <= kann beliebig sein

Für die Prozedurdefinition:

D pErrCode likeds(errCode)

c/free
ErrCode.BytesAvail = %size(ErrCode);
errCode.BytesReturn = *Zero;

callpr ... (...:ErrCode);

if (errCode.bytesReturn > *Zero);
// Fehler in ErrCode.MsgId
endif;