Nun ja, wie du oben an Hand der DCL-Anweisungen der MI-Liste sehen kannst, sind die SFFA-Felder nicht bündig hintereinander deklariert.
Dabei spielt es jetzt keine Rolle, ob du die nun ATR oder wie ich SFFAxx benennst.

Mit Attribut im DSPF meine ich ja Attributfelder.

Wenn ich also dein Programm hier aufrufen würde, würde das Feld SFFARE direkt hinter SFFAOF angenommen und somit das Feld SFAFND zerstören.

Aber da du ja wohl mit ILERPG arbeitest (da gibts keine MI-Listen) ist mein obiger Hinweis der Compilerintegration wohl entscheidend.

Der RPG-Compiler definiert die Felder wohl in einer anderen Reihenfolge als eben der ILERPG-Compiler.

Und das meine ich eben, mit Glück gehabt.

Wer sagt dir denn, dass dies mit dem nächsten XXXRPG-Compiler noch ebenso sein wird ?

Probiers doch einfach mal aus, dass du dein Programm aus einem RPG-Programm statt ILERPG aufrufst.

Du machst dich damit einfach von einem bestimmten Compiler abhängig, und das ist bei API-Programmen gefährlich.
Diese sollten eben auch Compiler unabhängig fuktionieren (wie es die IBM-API's eben tun).