Hallo,

Wenn's um die Performance geht, würde ich zunächst entweder die Built-in-Funktion %INT oder %DEC verwenden um die alphanumerische Nr. zu konvertieren. Sollten in dem String ungültige Zeichen vorhanden sein, erfolgt ein Abbruch. Diesen kann man über eine Monitor-Group abfangen werden. Anstatt im Fehlerfall jedes Zeichen einzeln zu prüfen, würde ich direkt nach den ungültigen Zeichen suchen und diese aus dem String entfernen.

PHP-Code:
D Digits          C                   const('1234567890 ')    
D Pos             S              3U 0                         
 
*************************************************************
 /
Free                                                        
  Monitor
;  
    
Clear MyNum;
    If 
MyAlpha <> *Blanks;
       
MyNum = %Int(MyAlpha);
    EndIf;                                                  
  
On-Error;                                     
    
DoU Pos = *Zeros;                                         
        
Pos = %Check(DigitsMyAlpha);                        
        If 
Pos <> *Zeros;                                     
           
MyAlpha = %Replace(''MyAlphaPos1); //Entfernen ungült. Zeichen          
        
EndIf;                                                
    
EndDo;                                                    
    
MyNum = %Int(MyAlpha);   
  
EndMon;                                                     
/
End-Free 
Birgitta