Der SBMJOB ist hier das Problem !!

Da dem Kommando CALL keine Paramter per Adresse sondern nur per Wert mitgegeben werden können schlägt hier eine gemeine Falle zu:

Zeichenketten werden in ihrer Länge, jedoch mit max. 32 Stellen übergeben, d.h. Leerzeichen am Ende werden abgeschnitten, Zahlen immer als 15.5 !

Lösung:

Setze den CALL per CHGVAR und *CAT zusammen, so dass die Original-Längen erhalten bleiben !

chgvar mycall ('CALL PGM(EDIPMPRCV2) PARM(''' *cat &PARM *CAT ''' ''' *CAT &PFAD *CAT ''' ''' *CAT &FILE *CAT ''')')

Sieht etwas kompliziert aus, aber die Hochkomma sind wichtig, damit die Leerzeichen erhalten bleiben.

Alternativ und einfacher wäre da die Benutzung der LDA:

PGM1:
chgvar %sst(*lda 1 10) &partner
chgvar %sst(*lda 11 250) &pfad
chgvar %sst(*lda 261 128) &file

PGM2:
chgvar &partner %sst(*lda 1 10)
:

Die LDA wird beim SBMJOB immer mitkopiert, so dass man dort Daten übergeben kann (max. 1KB).

Sollte diese belegt sein, kann man sich diese ja vorher retten und hinterher wiederherstellen.