JCL提交REXX脚本

来说说如何用JCL提交REXX脚本。

1、写一个最简单的显示有一行提示的REXX脚本叫SAYHELLO:


EDIT       IBMUSER.REXX.EXEC(SAYHELLO) - 01.00           Member SAYHELLO saved 
Command ===>                                                  Scroll ===> CSR  
****** ***************************** Top of Data ******************************
000001 /******************************REXX*********************************/                
000002 SAY "I WILL PRINT 'HELLO' IN SYSTSPRT BY SUBMITTING JCL"  

  

2、写一个JCL如下IBMUSER.TEST.JCL(SAYHELLO):


EDIT       IBMUSER.TEST.JCL(SAYHELLO) - 01.10             Columns 00001 0007
Command ===>                                                  Scroll ===> CSR
****** ***************************** Top of Data ****************************
//IBMUSERS JOB  00000000000392100A01011000010TEST,                    
//  CLASS=3,MSGCLASS=R,NOTIFY=&SYSUID                                 
//STEP01 EXEC PGM=IKJEFT01,REGION=4M                                  
//SYSEXEC  DD DISP=SHR,DSN=IBMUSER.REXX.EXEC /*REXX LIB*/                         
//SYSTSIN  DD *                              /*REXX MEM*/                         
  SAYHELLO                                                            
/*                                                                    
//SYSTSPRT DD SYSOUT=*    

  

3、Sub JCL,输入Q;ST到SDSF中的SYSTSPRT查看输出信息如下:


SDSF OUTPUT DISPLAY IBMUSERS J0300135  DSID   102 LINE 0       COLUMNS 02- 81 
 COMMAND INPUT ===>                                            SCROLL ===> CSR 
********************************* TOP OF DATA *********************************
READY                                                                          
  SAYHELLO                                                                     
I WILL PRINT 'HELLO' IN SYSTSPRT BY SUBMITTING JCL                             
READY                                                                          
END                                                                            
******************************** BOTTOM OF DATA *******************************

  
分享到:

REXX怎么保存”Find ALL”的结果

最近的项目经常跟MQ打交道,将输入数据填在一个dataset里面提交给MQ解析,字段之间用逗号隔开。所以在测试MQ接口的时候会经常一边对着FSD,一边嘴里面数着逗号的个数。其实我到今天才想起来可以用一个”FIND ALL”的ISPF命令的。

FIND ‘,’ ALL
这样,逗号的个数就不用数了,直接显示在屏幕右上角。

既然这样,REXX可不可以保存这个“FIND ‘,’ ALL’的结果呢? 研究了一番,居然让我找到ISREDIT有这个功能:

编辑 IBMUSER.REXX.EXEC(CHECK)这个member,输入如下的macro,

  ADDRESS  ISPEXEC                       
  "ISREDIT SEEK ALL ','"                 
  "ISREDIT (COUNT) = SEEK_COUNTS"        
  SAY "Comma number: "!! COUNT !! "'!'"  
 EXIT 0  

 

打开你的MQ输入的DATASET: IBMUSER.PROJ.MQ.INPUT
在command栏上面输入CHECK即可运行,也就比输入“FIND ‘,’ ALL”来得方便一点点…

分享到:

Rexx顺序处理文件所有行

这是典型的自上而下扫描一个dataset中每一行,而做相应处理的Rexx脚本。


ADDRESS TSO                                                             
  indataset = 'IBMUSER.REXX.EXEC(INFILE)'  /*read in input file */      
  "alloc f(fin) ds('"indataset"') shr reuse"   
  "execio * diskr fin (finis stem in."                                  
  "free f(fin)"                                                         
 do i=1 to in.0        /*loop in file until the last line reached */           
    one_line = strip(in.i)                                                    
    call Do_Something                                          
 end                                                                    
EXIT 0   

Do_Something:          
...


  
分享到: