Vielen Dank, Bender, für deine Antwort!

Programme lesbar zu halten, ist auch mein Anliegen. Schon allein deswegen, damit ich selber sie nach ein paar Wochen noch verstehe.

Hier geht es darum, dass ich ein XML-Dokument mit 114 möglicherweise interessanten Elementen in eine Datei schreiben möchte. Alle 114 Felder einzeln behandeln will ich nicht. Dies ist nämlich meines Erachtens ebenfalls eine Quelle für Fehler. (Die sich allerdings entschärfen lässt, indem man sich den Code generieren ließe; ich mache so was gerne - bitte nicht schlagen! - per Word-Serienbrief oder in Excel ... 114 Zeilen mit =" if "&A1&" <> *blank;"&zeichen(10)&" eval dsDATA."&A1&" = "&A1&";"&zeichen(10)&" endif;" oder sowas.)

Wie wäre dein Vorschlag? Eine Datenstruktur mit den Felddefinitionen brauche ich doch in jedem Fall. Die Kopplung zwischen XML und Datei ist wohl auch unerlässlich. Hier geht es um Werte zu bestimmten Objekten, zu denen wir Aktualisierungen erhalten. Später hole ich mir per "select feldname from I3DGXARC order by aentmst desc fetch first row only" den jeweils aktuellsten Wert. Mit prepared SQL ist das eine praktische Sache, die tatsächlich hilft, den Code lesbar zu halten.

In Programmen, die das Archiv lesen, wird dann eine Prozedur verwendet, die ich in einem SRVPGM um das SQL herum gebastelt habe. Das sieht dann so aus:

chrNeuName = getAktWert(objekt:'NAME');

Durch den Pointer habe ich eine zweite Datenstruktur eingespart. Die Definition per Likerec macht deutlich, dass Satzformat und Datenstruktur übereinstimmen. Für mich schien das eine lesbare, vergleichsweise leicht verständliche Lösung zu sein.

Was meinst du konkret mit "... die naheliegende einfache Lösung ... eine Struktur zum einlesen zu definieren, einlesen, benötigte Werte übertragen, schreiben"? Ich neige manchmal leider dazu, das Einfache zu übersehen und viel zu kompliziert zu denken.

Struktur zum Einlesen - habe ich
Einlesen - mache ich (XML-Into)
Schreiben - mache ich -- neuerdings sogar ohne Abbruch :-)

Vor allem das "benötigte Werte übertragen" macht mich neugierig; denn genau dieser Punkt hat mir Kopfzerbrechen bereitet und zu meiner Lösung geführt. Eval-corr macht es ja nicht unbedingt um Größenordnungen einfacher. Und das Schreiben -- wohin, wenn nicht in eine Datei, deren Aufbau sich am XML orientiert?

Beste Grüße
Markus