Hallo Fabax,

ich gehe davon aus, dass Dein Feld RunString mit fixer Länge definiert ist.
(sonst würdest Du wahrscheinlich kein %Trim() verwenden.

Du hast 3 Möglichkeiten:
1. QCMDEXC(%Trim(RunString): %Len(%Trim(RunString));
2. QCMDEXC(RunString: %Len(RunString);
3. Das Feld RunString mit variabler Länge zu definieren
(Schlüssel-Wort varying)
Dann kannst Du den QCMDEXC wie folgt verwenden.
QCMDEXC(RunString: %Len(RunString)

Das Problem liegt daran, dass QCMDEXC nur über die übergebene Länge (2. Parameter) geht.
Und die stimmt nicht mit der tatsächlichen übergebenen Länge überein!

Options(*VarSize) im QCMDEXC ist eigentlich überflüssig, da Schlüsselwort CONST verwendet wird.

@Ronald und Dieter
System() hat nur einen kleinen Schönheitsfehler, die Fehlermeldung, die die iSeries schickt, kann nicht nur nicht abgefangen werden, sonder wird sogar aus dem Joblog gelöscht.

Die Message-Id kann importiert werden, aber sehr oft fehlen die variablen Message-Texte. Dies ist besonders schade, wenn die Escape-Message weiter gesendet werden soll.