Короткий ответ - нет. Если у вас есть символические параметры в контрольных картах в PDS, на которые ссылается ваш оператор SYSTSIN DD, они (символические параметры) не будут разрешены.
Одним из способов решения этой проблемы является создание отдельной программы, выполняемой на отдельном шаге в вашей процедуре до шага PS010, который принимает параметры и текст и записывает временный файл. Символические параметры будут определены в PARM = этой программы.
//PS001 EXEC PGM=LOADPARM,PARM='DSN SYSTEM(&DSNSYS)'
//SYSPRINT DD SYSOUT=*
//OUTPUT01 DD DISP=(,PASS),
// DSN=&&DSNSYS,
// AVGREC=U,
// LRECL=80,
// RECFM=FB,
// SPACE=(80,1)
//****
Гипотетическая программа LOADPARM просто примет свой входной параметр и запишет его в OUTPUT01, стараясь заполнить его справа пробелами. В PS010 у вас будет SYSTSIN, который выглядит как ...
//SYSTSIN DD DISP=(OLD,DELETE),DSN=&&DSNSYS
// DD DISP=SHR,DSN=TEST.PDS(TESTPGM)
... где член TESTPGM выглядит как ...
RUN PROGRAM(TESTPGM) PLAN(TESTPLAN)
END
Таким образом, ваша каталогизированная процедура не знает, к какой подсистеме DB2 она обращается. Эта информация предоставляется в исполняющем JCL с символическим параметром DSNSYS.
Существуют и другие способы решения этой проблемы, например, у вас может быть символический параметр, который разрешает известный член в общем PDS, имея по одному члену в каждой подсистеме DB2.