Hallo,

wenn Du bereits auf Release V5R1M0 oder höher bist, kannst Du den Feldüberlauf mit einer Monitor-Group handeln.

Beispiel:
PHP-Code:
/Free
    Monitor
;
         
Ergebnis FeldA Feldb / (FeldC 2**10);
    
On-Error  103;              //Feldüberlauf
         
Ergebnis = *HiVal;
    
On-Error  102;              //Division durch Null
         
Ergebnis = *Zeros;
    
On-Error;                       //sonstige Fehler
         
Ergebnis = *Zeros;
    
EndMon;    
/
End-Free 
Mit der Monitor-Group kann jeder Fehler, in einem Statement, Programm, Prozedur abgefangen werden.
Die Monitor-Group kann auch anstatt der (E)-Erweiterung bzw. der mittleren Bezugszahl verwendet werden.

Vor Release V5R1M0 musst Du einen Feldüberlauf über eine If-Abfrage abfangen:

Beispiel:
PHP-Code:
D Erg             S              5  2 inz(*Zeros)                  
D MaxErg          S                   like(Erginz(*HiVal)                   
                                                                   
D Fakt1           S              5  2 inz(999,99)                  
D Fakt2           S              3  0 inz(999)  

C                   if        MaxErg     > %abs(%float(Fakt1 Fakt2))
C                   eval       Erg        Fakt1 Fakt2              
C                   
else
C                   eval       Erg        = *HiVal                       
C                   
endif 
Birgitta