ONCONDID は ON 条件識別子の省略形です。ON ユニットで処理される条件を識別する FIXED BINARY(31,0) の値を返します。ON ユニットまたはそのいずれかの動的子孫のコンテキスト内で使用されます。ON ユニット内から呼び出された ONCONDID() 組み込み関数によって返される値は、次のとおりです。
area = 1
attention = 2
condition = 3
conversion = 4
endfile = 5
endpage = 6
error = 7
finish = 8
fixedoverflow = 9
invalidop = 10
key = 11
name = 12
overflow = 13
record = 14
size = 15
storage = 16
stringrange = 17
stringsize = 18
subscriptrange = 19
transmit = 20
undefinedfile = 21
underflow = 22
zerodivide = 23
該当するコンテキスト以外で ONCONDID() が使用されている場合、null 文字列が返されます。
dcl cond_area fixed bin(31) value(1);
dcl cond_error fixed bin(31) value(7);
dcl cond_finish fixed bin(31) value(8);
on anycondition
begin;
on error system;
select(oncondid());
when(cond_area)
do;
/* process AREA condition */
end;
when(cond_finish)
;
when(cond_error)
do;
/* process ERROR condition */
end;
other
;
end;
end;