Buenos dias! No se si trabajas con workpanel, transaccion o web panel, pero podrias hacer lo siguiente. Son ideas, que se me ocurren, se debe poder hacer de varias formas y no te aseguro que lo que te digo sea optimo.
Para un workpanek
&VarVal (C15)
&X N(4)
&Y C(1)
Event &VarVal.IsValid //Variable a validar
&x = 1
Do While &X <= Len(&VarVal)
&y = SubStr(&VarVal,&x,1)
If &y >= '0' and &y <= '9'
&x += 1
Else
Msg('Debe ingresar solo valores numericos')
Exit
EndIf
EndDo
EndEvent
Creo que eso deberia funcionar para win. Sino podes probar mas simple.
&x = N(4)
&y = N(4)
&VarVal = C(15)
&VarVal1 = C(15)
&VarVal1 = Val(&VarVal)
&x = Len(&VarVal)
&y = Len(&VarVal1)
If &X <> &Y
Msg('Debe ingresar solo valores numericos')
EndIf
Creo que tambien deberia funcionar.
Si estas en una trn, podes llamar a un procedure que te haga las validaciones y te devuelva un codigo de error. Espero te sirva, y contame como te fue.