CLISTとは

CLISTとは

CLISTは、一連のTSOコマンドを連続して実行するためのスクリプト言語です。
MSPとVOS3では、コマンドプロシージャと呼ばれます。
CLIST入門(1) » 「メインフレーム・コンピュータ」で遊ぼう

代替CLISTライブラリー

代替のCLISTライブラリーをコマンドで追加出来る。

ALTLIB ACTIVATE APPLICATION(CLIST) DATASET('XXXXX.CLIST')

Vista tn3270の使い方

メインフレームからPCへのファイル転送について

1ファイルのみ転送する場合

以下に記載がある。
f:id:kenta_everyday:20160730140901p:plain
この画面で
Tom Brennan Software - Vista tn3270 - Screen Samples
上のバーのTransferから「Recieve from Host」を選択
memberを以下のように指定して、受取側のファイル名も指定して実行すると取得出来る。
f:id:kenta_everyday:20160730135915p:plain

複数ファイル転送する場合

以下のように取得したメンバーを*で指定してリストに出す。*うまく読み込めない時もある。なぞ。
f:id:kenta_everyday:20160730141243p:plain
取得したいmemberを選択して実行すると取得していってくれる。ファイル名は、そのまま。

MTM2016 Part2

Master The Mainframe 2016のPart2について

0.準備

Y2015.PUBLIC.JCL(P2)の理解

//P2       JOB  1                                                       00011000
//P2       EXEC PGM=IEFBR14                                             00070600
//PART2    DD DSN=&SYSUID..P2.OUTPUT,DISP=(,CATLG,DELETE),              00115000
//            UNIT=SYSALLDA,LIKE=Y2015.P2.OUTPUT                        00116000
//LOAD     DD DSN=&SYSUID..LOAD,DISP=(,CATLG,DELETE),                   00119000
//            UNIT=SYSALLDA,LIKE=Y2015.LOAD                             00120000
//STATUS   DD DSN=&SYSUID..STATUS,DISP=(,CATLG,DELETE),                 00130000
//            UNIT=SYSALLDA,SPACE=(TRK,(1,1)),                          00131000
//            DCB=(LRECL=80,DSORG=PS,RECFM=F)                           00132000
//*                                                                     00140000
//JCL      EXEC PGM=IEBCOPY                                             00610200
//SYSPRINT DD DUMMY                                                     00610300
//SYSIN    DD DUMMY                                                     00610400
//SYSUT1   DD DSN=Y2015.JCL,DISP=SHR                                    00610500
//SYSUT2   DD DSN=&SYSUID..JCL,DISP=(,CATLG),                           00610600
//            UNIT=SYSALLDA,SPACE=(TRK,(1,1,1)),                        00610700
//            DCB=(LRECL=80,RECFM=FB),DSNTYPE=LIBRARY                   00610800
//SYSUT3   DD UNIT=SYSALLDA,SPACE=(TRK,(1,1))                           00610900
//SYSUT4   DD UNIT=SYSALLDA,SPACE=(TRK,(1,1))                           00611000
//*                                                                     00612000
//SOURCE   EXEC PGM=IEBCOPY                                             00613000
//SYSPRINT DD DUMMY                                                     00614000
//SYSIN    DD DUMMY                                                     00615000
//SYSUT1   DD DSN=Y2015.SOURCE,DISP=SHR                                 00616000
//SYSUT2   DD DSN=&SYSUID..SOURCE,DISP=(,CATLG),                        00617000
//            UNIT=SYSALLDA,SPACE=(TRK,(1,1,1)),                        00618000
//            DCB=(LRECL=80,RECFM=FB),DSNTYPE=LIBRARY                   00619000
//SYSUT3   DD UNIT=SYSALLDA,SPACE=(TRK,(1,1))                           00619100
//SYSUT4   DD UNIT=SYSALLDA,SPACE=(TRK,(1,1))                           00619200
//*                                                                     00619300
//DATA     EXEC PGM=IEBCOPY                                             00619400
//SYSPRINT DD DUMMY                                                     00619500
//IDATA    DD DSN=Y2015.DATA,DISP=SHR                                   00620500
//ODATA    DD DSN=&SYSUID..DATA,DISP=SHR                                00620600
//SYSIN    DD *                                                         00620700
  COPY OUTDD=ODATA,INDD=IDATA                                           00620800
  S M=(EBCDIC,EDITOR,MSG,TABLE,WHOAMI,ZJOBS,ZSYSTEMS)                   00620900
//SYSUT3   DD UNIT=SYSALLDA,SPACE=(TRK,(1,1))                           00621100
//SYSUT4   DD UNIT=SYSALLDA,SPACE=(TRK,(1,1))                           00622000
//*                                                                     00630000
IEFBR14とは?

IEFBR14は何もしないプログラム。名前のBR14はメインフレームCPUの機械命令である「BR 14」からきている。この命令は、「CPUの汎用レジスター14番に入っているメモリーアドレスに分岐せよ」という意味。
詳しくは、

メインフレーム実践ハンドブック z/OS(MVS),MSP,VOS3のしくみと使い方

メインフレーム実践ハンドブック z/OS(MVS),MSP,VOS3のしくみと使い方

IEFBR14 - Wikipedia, the free encyclopedia

メンバーのコピーや書き込み

・COPYコマンド
編集中のメンバーにほかのメンバーの内容をCOPYしてくる。
空のメンバーにCOPYする場合の動き

   File  Edit  Edit_Settings  Menu  Utilities  Compilers  Test  Help            
 -------------------------------------------------------------------------------
 EDIT       AU00530.JCL(STUDY) - 01.03                      Columns 00001 00072 
 Command ===>                                                  Scroll ===> PAGE 
 ****** ***************************** Top of Data ******************************
 ****** **************************** Bottom of Data ****************************

COPY [member|dsname(member)] [AFTER label] [startrow endrow]
COPY 'AU00530.JCL(GUESS)'

   File  Edit  Edit_Settings  Menu  Utilities  Compilers  Test  Help            
 -------------------------------------------------------------------------------
 EDIT       AU00530.JCL(STUDY) - 01.03                      Member GUESS copied 
 Command ===>                                                  Scroll ===> PAGE 
 ****** ***************************** Top of Data ******************************
 000001 //GUESS    JOB  1,NOTIFY=&SYSUID                                        
 000002 //********************************//                                    
 000003 //*** COBOL Compile **************//                                    
 000004 //********************************//                                    
 000005 //COMPILE  EXEC IGYWCL,MBR=GUESS                                        
 ****** **************************** Bottom of Data ****************************

内容のあるメンバーにCOPYしてくる場合

  File  Edit  Edit_Settings  Menu  Utilities  Compilers  Test  Help            
-------------------------------------------------------------------------------
EDIT       AU00530.JCL(STUDY) - 01.03                             COPY pending 
Command ===> COPY 'AU00530.JCL(GUESS)'                        Scroll ===> PAGE 
****** ***************************** Top of Data ******************************
000001 //GUESS    JOB  1,NOTIFY=&SYSUID                                        
000002 //********************************//                                    
000003 //*** COBOL Compile **************//                                    
000004 //********************************//                                    
000005 //COMPILE  EXEC IGYWCL,MBR=GUESS                                        
****** **************************** Bottom of Data ****************************

そのままCOPYコマンドを実行すると「COPY pending」と出力される。
F1で詳細何言ってるのか確認。
さらにF1押すとCOPYコマンドの詳細が見れる。

An A or B line command or a valid label has not been specified. 

どうやらAはAfter BはBefore。
LINEコマンド実行する場所にAかBを打つ。

COPYコマンドの詳細は、HELPで確認できる。
その他CREATEコマンドなどもあり。

 TUTORIAL ------------- EDIT EXTERNAL DATA PRIMARY COMMANDS ----------- TUTORIAL
 OPTION  ===>                                                                   
                                                                                
   The external data commands listed below allow you to move or copy data       
   from an external source (sequential data set, member of a partitioned        
   data set, or z/OS UNIX file) into the data currently being edited, or        
   to move or copy data that is currently being edited out to a sequential      
   data set, member, or z/OS UNIX file.                                         
                                                                                
 The following topics are presented in sequence, or may be selected by name:    
                                                                                
   INTRO    - Introduction to external data commands                            
   CREATE   - to create a new member of a partitioned data set, sequential      
              data set or z/OS UNIX file.                                       
   REPLACE  - to replace a member, an entire sequential data set or             
              z/OS UNIX file.                                                   
   COPY     - to copy data from a member, sequential data set or z/OS UNIX file.
   MOVE     - to move (copy and delete) a member, sequential data set or        
              z/OS UNIX file.                                                   
   CUT      - to copy or move data to a clipboard.                              
   PASTE    - to copy or move data from a clipboard.                            
   MODEL    - to copy a predefined model.                                       
   SCREATE  - to create a new member within SCLM.                               
   SREPLACE - to replace a member within SCLM.                                  
   SMOVE    - to move (copy and delete) a member within SCLM.                   
                                                                                
                                                                                

JCLのエラーの見方

JCL実行時のエラーの見方について強くなる。

IRR messages for the system operator

   Display  Filter  View  Print  Options  Search  Help                          
 -------------------------------------------------------------------------------
 SDSF OUTPUT DISPLAY SCRAMBLE JOB01038  DSID     2 LINE 0       COLUMNS 02- 81  
 COMMAND INPUT ===>                                            SCROLL ===> PAGE 
********************************* TOP OF DATA **********************************
                   J E S 2  J O B  L O G  --  S Y S T E M  S 0 W 1  --  N O D E 
                                                                                
12.03.57 JOB01038 ---- FRIDAY,    15 JUL 2016 ----                                ←メッセージコード メッセージとなっている。
12.03.57 JOB01038  IRR010I  USERID AU00530  IS ASSIGNED TO THIS JOB.             ←IRR messages
12.03.57 JOB01038  IEF677I WARNING MESSAGE(S) FOR JOB SCRAMBLE ISSUED           
12.03.58 JOB01038  ICH70001I AU00530  LAST ACCESS AT 10:53:12 ON FRIDAY, JULY 15
12.03.58 JOB01038  $HASP373 SCRAMBLE STARTED - INIT 30   - CLASS A        - SYS 
12.04.02 JOB01038  -                                      -----TIMINGS (MINS.)--
12.04.02 JOB01038  -STEPNAME PROCSTEP    RC   EXCP   CONN       TCB       SRB  C
12.04.02 JOB01038  -COMPILE  COBOL       08   9943    128       .00       .00   
12.04.02 JOB01038  -COMPILE  LKED     FLUSH      0      0       .00       .00   
12.04.02 JOB01038  -EXECUTE           FLUSH      0      0       .00       .00   
12.04.02 JOB01038  -SCRAMBLE ENDED.  NAME-                     TOTAL TCB CPU TIM
12.04.02 JOB01038  $HASP395 SCRAMBLE ENDED                                      
------ JES2 JOB STATISTICS ------                                               
  15 JUL 2016 JOB EXECUTION DATE                                                
           15 CARDS READ                                                        
          298 SYSOUT PRINT RECORDS                                              
            0 SYSOUT PUNCH RECORDS                                              
           16 SYSOUT SPOOL KBYTES                                               
         0.08 MINUTES EXECUTION TIME                                            
        1 //SCRAMBLE JOB  1,NOTIFY=&SYSUID                                      
          //********************************//                                  
          //*** COBOL Compile **************//                                  
          //********************************//                                  
          IEFC653I SUBSTITUTION JCL - 1,NOTIFY=AU00530                          
        2 //COMPILE  EXEC IGYWCL,MBR=STUDY                                      
        3 XXIGYWCL PROC  LNGPRFX='IGY510',                                      
          XX             LIBPRFX='CEE',                                         
          XX             MBR=                                                   
          XX*                                                                   
        4 XXCOBOL  EXEC PGM=IGYCRCTL,REGION=0M                                  
        5 XXSTEPLIB  DD  DSNAME=&LNGPRFX..SIGYCOMP,DISP=SHR                     
          IEFC653I SUBSTITUTION JCL - DSNAME=IGY510.SIGYCOMP,DISP=SHR           
        6 XX         DD  DSNAME=&LIBPRFX..SCEERUN,DISP=SHR                      
 PF 1=HELP      2=SPLIT     3=END       4=RETURN    5=IFIND     6=BOOK          
 PF 7=UP        8=DOWN      9=SWAP     10=LEFT     11=RIGHT    12=RETRIEVE      
   -DSLIST  DSLIST   *SDSF