Das Problem mit der fehlenden Vornull lässt sich so lösen:

%date(%editc(%dec(DatNum:8:0):'X'):eur0)

Der Compiler ist da wohl irgendwie doof. H-Bestimmung wird ignoriert und der default für die %date-Funktion ist *ISO.

Also:
In Dezimal (8,0) konvertieren, per %editc(...:'X') in Zeichenkette umwandeln und mit explizitem *EUR0 in Datum umwandeln.

Mit Monitor solltest du das abfangen, falls kein gültiges Datum drinsteht.