使用REXX执行DFSORT

时间:2018-07-09 07:24:36

标签: mainframe rexx dfsort

我想知道,是否可以通过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($$)"

2 个答案:

答案 0 :(得分:3)

是可能的。
基本上,您可以:

  • 如果在ISPF下运行,则可以ISPF File Tailoring。这是sample File Tailoring skelton
  • 您可以直接致电SORT
  • 编写文件并提交,就像您要尝试的那样。发生了什么,您期望什么???。我没有大型机来测试您的代码。

我建议学习ISPF服务,即

Rexx:

ADDRESS TSO "ALLOC DD(OUTSKEL) DS('"OUTSKPDS"') SHR"
'FTOPEN'
'FTINCL SAMPSKEL'
'FTCLOSE LIBRARY(OUTSKEL) NAME('WORKMEM')'

ISPF斯凯尔顿样品:

//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

答案 1 :(得分:-1)

您可以在地址tso下分配必要的文件 例如“分配f(sortin)da(....)shr” 地址排序下的呼叫排序: 地址显示 “排序” 注意将控制文件放在sysin文件中