如何复制一个成员与REXX / CLIST批处理程序(不ISPF)?
题
在z / OS,I想写REXX或CLIST脚本复制一个连续的数据设置为另一种,然后运行另一个脚本(REXX)。其他脚本需要一个特定的SDS存在,我希望能够运行第二个脚本之前复制的许多选择,该成员之一。这是TSO所以我没有任何花哨的东西ISPF访问。
所以,基本上是:
Copy 'level1.level2.name.type1' to 'level1.level2.name'
runother p1 p2 p3
在runother
的Rexx脚本使用“level1.level2.name”做自己的魔法 - 我只是提供一个不同的,我的每个机会。
所以我需要一个叫做“xx42”这册“level1.level2.name.42”,我可以修改,对于超过42更妙的其他值将是参数化该脚本脚本,这样我可以只使用
xx 42 p1 p2 p3
或
xx 27 p1 p2 p3
,而不必为每个值的脚本。这将通过复制给定的SDS然后传递参数p1
,p2
和p3
到runother
。
解决方案 2
位摆弄周围后,我想出可以手动分配所需的数据集,并运行IEBGENER
做复制:
/* REXX */
"ALLOC FI(SYSPRINT) DUMMY REUSE"
"ALLOC FI(SYSIN) DUMMY REUSE"
"ALLOC FI(SYSUT1) DA('LEVEL1.LEVEL2.NAME.42') SHR REUSE"
"ALLOC FI(SYSUT2) DA('LEVEL1.LEVEL2.NAME') SHR REUSE"
"IEBGENER"
RC2 = RC
"FREE FI(SYSUT1)"
"FREE FI(SYSUT2)"
"FREE FI(SYSPRINT)"
"FREE FI(SYSIN)"
IF RC2 ^= 0 THEN DO
SAY "IEBGENER FAILED."
END
ELSE DO
RUNOTHER P1 P2 P3
END
其他提示
在寻找别的东西,我遇到了这个职位。 (即它没有考虑我2年制定这种反应)和未来的思想mainframians(我们还存在吗?)可能会发现它很有用。
您也可以做一个SMCOPY:
address TSO "SMCOPY FDS('LEVEL1.LEVEL2.NAME.42') TDS('LEVEL2.LEVEL2.NAME')"
FDS - 从数据集,TDS - 到数据集。如果TDS不存在,你会得到一个返回码4,但该副本将被处决。您可以使用SMCOPY到库成员复制为好。
您还可以使用SORT从SORTIN做一个副本SORTOUT。你可以换行JCL在一个进程与参数或使用SET语句等。
不隶属于 StackOverflow