%dec() versucht in einen Dezimalwert umzuwandeln (Dezimalpunkt/-komma wird berücksichtigt). Klappt das nicht wird ein RPG-Fehler gemeldet (MCH....) den man aber mit "monitor" abfangen kann.
Die if-Abfrage wird nur pseudomäßig benötigt, da ich %dec() nicht alleine verwenden kann, sondern nur in einem Ausdruck als Zuweisung (eval) oder Abfrage (if/when) oder Argument(callx).
Wenn ja alles i.O. ist, wird der on-error-Zweig nicht ausgeführt.
So habe ich durch die Hintertür einen TESTN.

Ich gebe aber zu, dass das nicht die feine Art der Programmierung ist.
Dann schon lieber eine Funktion schreiben, die TESTN halt nicht als /free versucht.