0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

富士通メインフレームは○×□が不便 〜PCとのコラボ〜

Last updated at Posted at 2023-05-04

TSS端末(IBMではTSO)は元々ダム(DUMB)端末と呼ばれており、画面サイズは80Byte * 25行でした。
パソコンの普及につれ、JCLをPCのテキストエディタで作成し、アップロード・ダウンロードするようになりました。
PCの方が文字数・行数ともにたくさん表示出来るからです。
ところがVSCodeは拡張機能としてz/OSのTSO端末接続機能があるらしく、アップロード・ダウンロードが自動化されているらしく羨ましいです。
それにOSIV/MSP用富士通提供製品では正規表現による検索ができませんが、VSCodeでは可能ですよね!

区分データセットの各メンバがJCLになっているライブラリを丸ごとダウンロードして、PCで正規表現を使った検索をしたいと思ったことがあります。メンバが多く、1つずつダウンロードする気にはなれません。

そこでJSDGENER(IBMではIEBGENER)の以下の4行を生成するExcel関数を考えました。
これは各メンバを連続した1つのファイにするもので、これをダウンロードしPC側で分割することにしました。
ただし前もってメンバ一覧を取得する必要があります。
メンバ名がMEMBER01の場合の例を以下に示します。

生成する4行

//MEMBER01 EXEC GENERX,MEM=MEMBER01
//MEMBER01.SYSIN DD *
  GENERATE
  RECORD   FIELD=(010,'MEMBER01     ',,001),FIELD=(080,001,,011)

入力ストリームプロシジャ(GENERX)

//GENERX   PROC MEM=
//&MEM     EXEC PGM=JSDGENER
//SYSPRINT DD  SYSOUT=*
//SYSUT1   DD  DISP=SHR,DSN=@UID.SPLIT.CNTL
//         DD  DISP=SHR,DSN=SHR.LIBLARY.CNTL(&MEM)
//SYSUT2   DD  DISP=MOD,DSN=@UID.LIBLARY.CNTL
//         PEND

Excel関数

=IF(LEN(B6)=0,
   "",
   IF(MOD(A6,4)=1,
      CONCATENATE("//",B6,REPT(" ",9-LEN(B6)),"EXEC MACROGNR,MEM=",B6),
      IF(MOD(A6,4)=2,
         CONCATENATE("//",B6,".SYSIN DD *"),
         IF(MOD(A6,4)=3,
            "  GENERATE",
            CONCATENATE("  RECORD   FIELD=(010,'",B6,REPT(" ",10-LEN(B6)),"',,001),FIELD=(080,001,,011)")
           )
        )
     )
  )

Excel

No. Menber JCL
1 Member01 //MEMBER01 EXEC GENERX
2 Member01 //MEMBER01.SYSIN DD *
3 Member01  GENERATE
4 Member01  RECORD FIELD=(010,'MEMBER01 ',,001),FIELD=(080,001,,011)
5 Member02 //MEMBER02 EXEC GENERX
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?