Bin nach längerer Recherche in diesem Thread gelandet.
Mein Problem war, ein Blz. Verzeichnis der Deutschen Bank, per Download ins IFS gestellt (als .xmlx und per Excel konvertiert in eine .csv Datei) in eine db2 Datenbank zu übertragen. Mit dem open und Ziel-CCSID 1141 war es nicht gelöst. Die Umlaute äöü und das ß wurden falsch bzw. nicht übersetzt.
Erst ein zuvor ausgeführtes CHGATR der Datei im IFS führte zur Lösung. Das sieht dann so aus:

cmd = 'CHGATR OBJ(' + hex7D
+ %trim(pfadundname) + hex7D + ') ATR(*CCSID) VALUE(1252)';
qcmdexc(%trim(cmd) : %len(%trim(cmd)));

fd = open(%trimr(pfadundname)
: O_RDONLY + O_TEXTDATA + O_CCSID
: S_IRGRP: 1141
);

dow readline(fd: %addr(line): %size(line))>=0;
"..."


Und natürlich funktioniert es auch mit CPYFRMSTMF:
// Hinweis: Funktioniert entweder mit STMFCCSID 1252 oder 1208
cmd = 'CPYFRMSTMF FROMSTMF('
+ hex7D + %trim(pfadundname) + hex7D
+ ') TOMBR('
+ hex7D + '/qsys.lib/qgpl.lib/test.file/test.mbr' + hex7D
+ ') MBROPT(*REPLACE) STMFCCSID(1252) DBFCCSID(1141)'
+ ' ENDLINFMT(*CRLF)'
;

Hinweis: pfadundname ist der String aus IFS Pfadangabe und Dateiname