Man lernt eben nie aus!

Allerdings hat die Sache noch einen kleinen Haken.
Die Struktur wird NACH dem Füllen der einzelnen Felder gefüllt.
D.h., zuerst werden die Felder der automatischen I-Bestimmung und anschließend die Struktur gefüllt.

Sollten also 2 Dateien mit den gleichen Feldnamen in einem Programm vorkommen, so werden mit dem Lesen in die Struktur auch die Felder der 2. Datei mit verändert !

Ausserdem bedarf es noch einer zusätzlichen Definition der DS:

dmyds1 e ds extname(teil01:*input)
d qualified
dmyds2 e ds extname(teil01:*output)
d qualified

Man muss also für den Update mit Struktur eine andere Struktur als für den Input definieren.

Auch hier passiert das Merkwürdige:
Zuerst werden die Felder aus der DS in die O-Felder übertragen und erst dann die Daten ausgegeben.

Wenn es also auch hier wiederum zu Namensgleichheit mit anderen Dateien kommt, sind diese Inhalte auf jeden Fall mit geändert.

Bei richtigem Design des Programmes fällt das ggf. nicht weiter auf, allerdings ist die mit Vorsicht anzuwenden.

Und was die Batch-Anwendungen angeht, so fängt man sich da einen nicht unerheblichen Overhead ein:

Beim Lesen werden aus dem internen Puffer die I-Felder gefüllt und anschließend in die Struktur übertragen.

Beim Schreiben genau umgekehrt, nämlich aus der Struktur in die O-Felder und daraus dann in den internen Dateipuffer.

Mit Einzel-Moves!

Bei Massendatenverarbeitung kann das schon mal eine Performancebremse sein.

Anmerkung:
Bei DB-Dateien sind I/O-Felder weitgehend identisch, Ausnahme LF mit berechneten feldern (z.B. SST).