我想知道,是否可以通过REXX调用DFSORT?我使用了下面的代码,但结果并不像预期的那样。
/*REXX*/
QUEUE "//ISDNNNN JOB XXX,XX"
QUEUE"//STEP003 EXEC PGM=SORT"
"FREE FI(SYSOUT SORTIN SORTOUT)"
"ALLOC FI(SYSOUT) DA(*)"
"ALLOC FI(SORTIN) DA('XXX.XXX.XXX') REUSE'
"ALLOC FI(SORTOUT) DA('XXX.XXX.XXX.OUT') REUSE'
QUEUE"//SYSIN DD*"
" SORT FIELDS = COPY"
" INCLUDE COND = (1,2,CH,EQ,C'AR')"
QUEUE"/*"
QUEUE"//SYSPRINT DD SYSOUT=*"
QUEUE"$$"
"SUBMIT * END($$)"
是这是可能的
基本上你可以:
- 如果在ISPF下运行,则可以进行ISPF文件定制。这是一个示例文件定制skelton
- 您可以直接致电SORT
- 写一个文件并提交它,就像你试图做的那样。正在发生什么,你期待什么???。我没有大型机来测试您的代码
我建议学习ISPF服务,即
Rexx:
ADDRESS TSO "ALLOC DD(OUTSKEL) DS('"OUTSKPDS"') SHR"
'FTOPEN'
'FTINCL SAMPSKEL'
'FTCLOSE LIBRARY(OUTSKEL) NAME('WORKMEM')'
示例ISPF Skelton:
//ASM EXEC PGM=IFOX00,REGION=128K
// PARM=(&ASMPARMS)
//SYSIN DD DSN=&ASMIN(&MEMBER),DISP=SHR
//SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR
)SEL &ASMMAC1 ¬= &Z
// DD DSN=&ASMMAC1,DISP=SHR
)SEL &ASMMAC2 ¬= &Z
// DD DSN=&ASMMAC2,DISP=SHR
)ENDSEL
)ENDSEL
//SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(5,2))
//SYSUT2 DD UNIT=SYSDA,SPACE=(CYL,(2,1))
//SYSUT3 DD UNIT=SYSDA,SPACE=(CYL,(2,1))
//SYSPRINT DD SYSOUT=(&ASMPRT)
)CM IF USER SPECIFIED "GO," WRITE OUTPUT IN TEMP DATA SET
)CM THEN IMBED "LINK AND GO" SKELETON
)IF &GOSTEP = YES THEN )DO
//SYSGO DD DSN=&&&&OBJSET,UNIT=SYSDA,SPACE=(CYL,(2,1)),
// DISP=(MOD,PASS)
)IM LINKGO
)ENDDO
)CM ELSE (NOGO), WRITE OUTPUT TO USER DATA SET
)ELSE )DO
//SYSGO DD DSN=&ASMOUT(&MEMBER),DISP=OLD
)ENDDO
您可以在地址tso下分配必要的文件例如";alloc f(sortin(da(…(shr";地址ispling下的调用排序:地址ispling"排序";注意将控制cfards放在sysin文件中