SDSFをISPFコマンドとして登録すると、どのISPFパネルからでもSDSFを起動することができます。カスタマイズされたプライマリー・オプション・メニュー画面には、多くのユーザーでSDSFを「SD」あるいは「S」のオプション・コードで起動することができます。しかし、この場合のオプション・コード「SD」や「S」はプライマリー・オプション・メニュー画面でしか入力できません。この記事で紹介するのは、ISPFのメニュー画面にSDSFを登録することではなく、任意のISPFパネル(例えばDSLISTユーティリティー画面やエディター画面など)からのコマンド入力によってどこからでもSDSFを起動する方法です。
ISPFを2画面分割している状態で、JCLとプログラムをエディターで開いているとします。IBMデフォルトの状態では、JCLをサブミットして実行結果を見る場合、JCLかプログラムのどちらかを終わらせないとSDSFを起動できません。「=SD」などと入力したとしても(画面を閉じて)現在のダイアログを終わらせた上でSDSFを起動することになり、そのSDSFを終わらせればメニュー画面に戻ってしまいます。
現在の画面をそのまま保留にして、画面を上書きする形でSDSFを起動してジョブの実行結果を確認し、終わったら元の画面に戻れれば効率のよい作業ができます。ISPFの中でも多用されるオプション3.4のDSLISTは、メニュー画面からの起動だけでなく、コマンド「DSLIST」によってどのISPFパネルからでも起動でき終われば元の画面に戻れます。同じ事をSDSFでもできるようにします。
ユーザー・コマンド・テーブルを有効にする
独自のISPFコマンドを登録する前に、ISPFでユーザー・コマンド・テーブルの機能を有効にする必要があります。まずは、使用しているISPF環境でユーザーまたはサイト・コマンド・テーブルが有効になっているかを確認します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
+------------------------------- Commands --------------------------------+ | Command Table Utility | | Command ===> | | | | Specifications Command search order | | Application ID . . ISP Application table : ISP | | Enter "/" to select option User table . . . . : | | Show description field Site table . . . . : | | System table . . . : ISP | | | | If no application ID is specified, the current application ID will be | | used. The name of the command table to be processed is formed by | | prefixing the application id to the string 'CMDS'. For example: | | Application ID . . TST results in a command table name of 'TSTCMDS'. | +-------------------------------------------------------------------------+ |
ISPFのオプション3.9を実行します。ダイアログボックス右側のCommand serach orderのユーザー・テーブルとサイト・テーブルの両方が空白の場合は、コマンド・テーブルを追加しても使用されません。ISPF構成テーブルを修正して、ユーザー・コマンド・テーブルまたはサイト・コマンド・テーブルを有効にします。
以下にその手順の例を紹介しますが、ISPF全体に対しての修正なので必要ならシステム管理部門にやってもらうかその指示に従って下さい。断られた場合は、こちら(シンプルISPFメニューとクイック起動)の記事で紹介した、独自のISPF起動CLISTを作り自分のISPFだけにユーザー・コマンド・テーブルが有効になるようにISPLLIBに自分用のロード・モジュール・ライブラリー(例えば、userid.UISPLOAD)を連結します。その後に、作成した自分用のISPFを起動してからユーザー・コマンド・テーブルが有効になるようにします。任意のISPFパネルで「TSO△ISPCCONF」コマンドを実行すれば、構成テーブル・ユーティリティーが起動します。もっとお手軽に済ませたいなら、こちら(F4キーでSDSFのSTパネルを起動する)の記事で紹介した、ほとんど使うことがないファンクション・キーにSDSF起動コマンドを割り当てる方法がいいでしょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
ISPF Configuration Utility Option ===> 1____________________________________________________________ 1 Create/Modify Settings and Regenerate Keyword File 2 Edit Keyword File Configuration Table 3 Verify Keyword Table Contents 4 Build Configuration Table Load Module 5 Convert Assembler Configuration Table to Keyword File 6 Build SMP/E USERMOD Keyword File Data Set Data Set . . . 'ISP.UISPCONF' Member . . . . ISPCFIGU : |
構成テーブル・ユーティリティーが起動したら、修正後の構成テーブルのキーワードファイル・メンバーを格納するデータセット名とメンバー名を指定します。共用のISPF環境なら、サンプルのようにISPで始まるDSNのデータセットを準備してそこに格納します。個人のISPF環境なら、userid.UISPCONFのように先頭prefixをTSOのユーザーIDにするといいでしょう。メンバー名はISPCFIGUにします。ISPFは、カスタマイズされた構成テーブルのモジュール名をISPCFIGUにしますのでそれに合わせます(*1)。なお、ここで指定するデータセットはRECFM=FB、LRECL=251の区分データセットとして予め作成しておきます。スペース量は10TRKあれば十分です。オプション1を選択して、システム・デフォルトの構成テーブル内容を反映した構成テーブルのキーワードファイル・メンバーを生成します。
*1 システム・デフォルトの構成テーブル・モジュール名はISPCFIGで、ISP.SISPLPAに格納されLPAに展開されている。システム・デフォルトを変更することはなく、必ずユーザー用構成テーブル・モジュールを作ることになるが、メンバー名はISPCFIGUで決まっている。ISPFは、起動時にISPLLIB DDステートメントに定義されたライブラリーからISPCFIGUを読み込む。ISPCFIGUがなければシステム・デフォルトのISPCFIGが使われる。
1 2 3 4 5 6 7 8 9 10 11 |
Create/Modify ISPF Configuration Defaults loaded Option ===> General ISPF Settings System Profile (ISPSPROF) Settings 1 Editor Settings 6 Log and List Defaults 2 Edit/View/Browse VSAM Settings 7 Terminal and User Defaults 3 PDF Exits and Other PDF Settings 8 Workstation Defaults 4 ISPF Site-wide Defaults 9 Workstation Download Defaults 5 ISPDFLTS, CUA Colors, and Other DM Settings : |
デフォルト値によって構成テーブルのキーワードファイル・メンバーが生成されます。このままPF3キーで終了させます。続いて生成されたメンバー内容がVIEWで表示されますが、再びPF3キーで終了させます。
1 2 3 4 5 6 7 8 9 10 |
ISPF Configuration Utility Keyword file saved Option ===> 1 Create/Modify Settings and Regenerate Keyword File 2 Edit Keyword File Configuration Table 3 Verify Keyword Table Contents 4 Build Configuration Table Load Module 5 Convert Assembler Configuration Table to Keyword File 6 Build SMP/E USERMOD : |
最初に指定したキーワードファイル・データセットのメンバーとして構成テーブルの内容が保管されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
ISPF Configuration Utility Option ===> 2____________________________________________________________ 1 Create/Modify Settings and Regenerate Keyword File 2 Edit Keyword File Configuration Table 3 Verify Keyword Table Contents 4 Build Configuration Table Load Module 5 Convert Assembler Configuration Table to Keyword File 6 Build SMP/E USERMOD Keyword File Data Set Data Set . . . 'ISP.UISPCONF' Member . . . . ISPCFIGU : |
次に、作成された構成テーブルのキーワードファイル・メンバーの内容を修正します。オプション2を選択します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
EDIT ISP.UISPCONF(ISPCFIGU) - 01.00 Columns 00001 00072 Command ===> Scroll ===> CSR Modify, Add or Delete the keywords and values listed below. Enter END or EXIT to save your changes, CANCEL to exit without saving your changes. Note: Changes in the order of the keywords, or comments added to the file will not be preserved if the file is regenerated using option 1. 000255 /*PRINT_USING_ICF = NO */ 000256 /*DISALLOW_WILDCARDS_IN_HLQ = NO */ 000257 /*MAXIMUM_NUMBER_OF_SPLIT_SCREENS = 8 */ 000258 APPLID_FOR_USER_COMMAND_TABLE = USR <== ここを修正する 000259 /*APPLID_FOR_SITE_COMMAND_TABLE = NONE */ 000260 /*SITE_COMMAND_TABLE_SEARCH_ORDER = BEFORE */ 000261 /*YEAR_2000_SLIDING_RULE = 65 */ 000262 /*SHOW_ENQ_DISPLAYS = YES */ |
構成テーブル・ユーティリティーからエディターが呼ばれ、構成テーブルのキーワードファイル・メンバーの内容が表示されます。「APPLID_FOR_USER_COMMAND_TABLE」をスキャンして見つけます。/*と*/で囲まれ行全体がコメントになっているので、先頭と末尾の/*と*/を消して有効な行にして、値のNONEをユーザー・コマンド・テーブルの接頭辞(4文字まで)にします。USRとかUSERがわかりやすいでしょう。修正したらPF3キーでエディターを終了します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
+-------------------------------------------------------------+ | Keyword File Verification | | Command ===> | | | | The Keyword file has been saved. You can run the ISPF | | keyword verification to check the keywords and values in | | the keyword file now, or exit without running the | | verification. If you choose to exit without verifying the | | keyword file you can run the verification later using the | | Verify Keyword Table Contents option. | | | | Instructions: | | Press Enter to verify the keyword file. | | Enter END or EXIT to exit without verification. | +-------------------------------------------------------------+ |
このダイアログボックスが出たら実行キーを押します。キーワードファイル・メンバーが保管されたら構成テーブルをロード・モジュール化します。オプション4を選択します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
ISPF Configuration Utility Option ===> 4____________________________________________________________ 1 Create/Modify Settings and Regenerate Keyword File 2 Edit Keyword File Configuration Table 3 Verify Keyword Table Contents 4 Build Configuration Table Load Module 5 Convert Assembler Configuration Table to Keyword File 6 Build SMP/E USERMOD Keyword File Data Set Data Set . . . 'ISP.UISPCONF' Member . . . . ISPCFIGU : |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
+-----------------------------------------------------------------------------+ | Build Configuration Table Load Module | | Command ===> | | | | Input Keyword File Data set | | Data Set . . . ISP.UISPCONF | | Member . . . . ISPCFIGU | | | | Output Configuration Table Load Module Data Set | | Data Set . . . 'ISP.UISPLOAD' | | | | Optional fields (leave blank for ISPF to use defaults) | | Object data set . . . | | Configuration member (Defaults to ISPCFIGU) | | VSAM member . . . . . (Defaults to ISPCFIGV) | +-----------------------------------------------------------------------------+ |
ダイアログボックスに、構成テーブルのロード・モジュール(ISPCFIGU)の格納先データセットを指定します。全体で共通に使うならISP.UISPLOAD、自分だけに有効にするならuserid.UISPLOADを指定すればいいでしょう。どちらのデータセットも事前に作成しておく必要があります。RECFMとLRECLはISP.SISPLOADと同じにします。スペース量は5TRKあれば十分です。なお、全体で共通に使うなら標準のISP.SISPLOADに格納してもかまいません。メンバー名ISPCFIGUはユーザー用構成テーブル・モジュールなのでデフォルトでは存在しません。もし存在しているようなら以前に別の目的で構成テーブルをカスタマイズしているのですから、その構成テーブルのキーワードファイル・メンバーを修正するべきです。その場合はシステム管理者に確認します。
ロード・モジュールの格納先データセットを指定したら実行キーを押します。モジュールの生成には少々時間が掛かりますがそのまま待ちます。
1 2 3 4 5 6 7 8 9 10 |
ISPF Configuration Utility Load module built Option ===> 1 Create/Modify Settings and Regenerate Keyword File 2 Edit Keyword File Configuration Table 3 Verify Keyword Table Contents 4 Build Configuration Table Load Module 5 Convert Assembler Configuration Table to Keyword File 6 Build SMP/E USERMOD : |
これでユーザー・コマンド・テーブルを使うためのISPF構成テーブルができあがりました。構成テーブルのロード・モジュールを格納したISP.UISPLOAD(またはuserid.UISPLOAD)をISPFの起動CLISTのISPLLIBに連結定義します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
PROC 0 PANEL(ISR@PRIM) /*********************************************************************/ /* LIB: SYS1.CMDPROC(ISPPDF) FOR ISPF STANDARD PROCEDURE */ /* DOC: THIS CLIST ALLOCATES THE FILES REQUIRED BY ISPF AND PDF */ /* AND THEN INVOKES PDF. */ /* NOTE: SYSPROC IS FREED AND REALLOCATED TO INCLUDE THE PDF CLIST */ /* DATASET. THIS MAY RESULT IN A DIFFERENT CONCATENATION */ /* THAN EXISTED BEFORE THIS CLIST WAS INVOKED. */ : ALLOC FI(ISPLLIB) SHR DA( + 'ISP.UISPLOAD' <== ここに追加する + 'ISP.SISPLOAD') : ERROR RETURN PDF PANEL(&PANEL) JAPANESE |
ISPFを再起動すれば新しい構成テーブルが読み込まれます。ユーザー・コマンド・テーブルが有効になっているかを確認します。任意のISPFパネルで「TSO△ISPVCALL△STATUS」コマンドを実行します。内容が表示されたら「F△’USER△COMMAND’」を検索します。
1 2 3 4 5 6 |
EDIT userid.CALL.TRACE CHARS 'User command' fou Command ===> Scroll ===> CSR 000056 Year 2000 cutoff.... 65 Site command table.. 000057 User command table.. USR Site cmd location... B 000058 Enhanced mem list .. YES : |
ユーザー・コマンド・テーブルの接頭辞が「USR」になっています。これでユーザー・コマンド・テーブルを作れば有効になることが確認できました。
ユーザー・コマンド・テーブルを作成する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
+------------------------------- Commands --------------------------------+ | Command Table Utility | | Command ===> | | | | Specifications Command search order | | Application ID . . ISP Application table : ISP | | Enter "/" to select option User table . . . . : | | Show description field Site table . . . . : | | System table . . . : ISP | | | | If no application ID is specified, the current application ID will be | | used. The name of the command table to be processed is formed by | | prefixing the application id to the string 'CMDS'. For example: | | Application ID . . TST results in a command table name of 'TSTCMDS'. | +-------------------------------------------------------------------------+ |
ISPFのオプション3.9を実行します。ダイアログボックス右側のCommand serach orderのユーザー・テーブルには、構成テーブルで登録した接頭辞が表示されていませんが、これは現時点ではISPTLIBライブラリーにユーザー・コマンド・テーブルのメンバーがまだ入っていないためです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
+------------------------------- Commands --------------------------------+ | Command Table Utility | | Command ===> | | | | Specifications Command search order | | Application ID . . USR Application table : ISP | | Enter "/" to select option User table . . . . : | | Show description field Site table . . . . : | | System table . . . : ISP | | | | If no application ID is specified, the current application ID will be | | used. The name of the command table to be processed is formed by | | prefixing the application id to the string 'CMDS'. For example: | | Application ID . . TST results in a command table name of 'TSTCMDS'. | +-------------------------------------------------------------------------+ |
コマンド・テーブルの接頭辞に、USRやUSERなど構成テーブルに登録した名前を指定して実行キーを押します。
1 2 3 4 5 6 7 8 9 10 |
Update USRCMDS Row 1 to 15 of 17 Command ===> Scroll ===> PAGE Insert (I), delete (D), repeat (R) and edit (E) command entries. Enter END command to save changes or CANCEL to end without saving. Verb T Action E___ ________ _ ____ ________ _ ____ ________ _ |
先頭行の左側フィールドにEを入力して実行キーを押します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
+--------------------------- Command Table Utility ---------------------------+ | Extended Command Entry | | | | Make changes to the command and select Update to update the entry or | | Cancel to ignore the changes. | | | | Verb . . . SDSF | | Trunc . . . 2 | | Action . . SELECT PGM(ISFISP) NEWAPPL(ISF) SCRNAME(SDSF) | | | | | | | | Description | | | | | | Update Cancel | | | +-----------------------------------------------------------------------------+ |
登録するコマンド内容のダイアログボックスが出たら、上記のように入力してダイアログボックス下側のUPDATEの文字の部分にカーソルを置いて実行キーを押します。コマンドが登録され1つ前の画面に戻るのでPF3キーを複数回押してユーティリティーを終わらせます。
登録したコマンド・テーブル・メンバーは、DD名ISPTABLに定義されたライブラリーに出力されます。通常、ISPTABLにはユーザー毎のISPFプロファイル・データセットが定義されています。DDLISTコマンドを実行してISPTABLデータセットの中を確認します。
1 2 3 4 5 6 7 8 9 10 11 |
Current Data Set Allocations Row 21 of 47 Command ===> Scroll ===> CSR Volume Disposition Act DDname Data Set Name Actions: B E V M F C I Q OS3401 SHR,KEEP > B ISPSLIB ISP.SISPSJPN SMS252 SHR,KEEP > ISPTABL userid.ISPPROF SMS252 SHR,KEEP > ISPTLIB userid.ISPPROF OS3401 SHR,KEEP > ISP.SISPTENU OS3401 SHR,KEEP > ISF.SISFTLIB OS3401 SHR,KEEP > SYS1.SBPXTENU : |
PF8キーで画面をスクロールしてISPTABLを見つけます。ACTフィールドにBを入力して実行キーを押します。メンバーリストが表示されたら、接頭辞+CMDSの名前のメンバーを見つけます。接頭辞がUSRならUSRCMDSです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
BROWSE userid.ISPPROF Row 00020 of 00025 Command ===> Scroll ===> CSR Name Prompt Size Created Changed ID . PDFEDIT . PDFEDRT . PDFPROF . SEETABLE . USRCMDS **End** BROWSE userid.ISPPROF(USRCMDS) Line 00000000 Col 001 080 Command ===> Scroll ===> CSR ********************************* Top of Data ********************************** .aTIR:...0..USRCMDS ..リ.マh...・.........".....".. userid ............. ..ZCTVER B ....T...ZCTTRUNC....T...ZCTACT ....T...ZCTDESC ....V...オ..・..・......・.SDSF ..2..SELECT PGM(ISFISP) NEWAPPL(ISF) SCRNAME(SDSF).............................. ******************************** Bottom of Data ******************************** |
それっぽい内容で登録されているはずです。ISPFを再起動すれば登録したユーザー・コマンド・テーブルが反映されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
+------------------------------- Commands --------------------------------+ | Command Table Utility | | Command ===> | | | | Specifications Command search order | | Application ID . . ISP Application table : ISP | | Enter "/" to select option User table . . . . : USR | | Show description field Site table . . . . : | | System table . . . : ISP | | | | If no application ID is specified, the current application ID will be | | used. The name of the command table to be processed is formed by | | prefixing the application id to the string 'CMDS'. For example: | | Application ID . . TST results in a command table name of 'TSTCMDS'. | +-------------------------------------------------------------------------+ Display USRCMDS Row 1 to 1 of 1 Command ===> Scroll ===> PAGE The command table is currently open, it cannot be modified. Use the view(V) row command to see an entire entry. Verb T Action SDSF 2 SELECT PGM(ISFISP) NEWAPPL(ISF) SCRNAME(SDSF) ******************************* Bottom of data ******************************** |
再度オプション3.9を実行すると、今度はユーザー・コマンド・テーブルが有効になっていることがわかります。接頭辞USRを指定すると先ほどと異なり、カレント・テーブルなのでVIEWしかできない旨のメッセージが表示されています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Display USRCMDS Row 1 to 1 of 1 Command ===> SD Scroll ===> PAGE The command table is currently open, it cannot be modified. Use the view(V) row command to see an entire entry. Verb T Action SDSF 2 SELECT PGM(ISFISP) NEWAPPL(ISF) SCRNAME(SDSF) ******************************* Bottom of data ******************************** Display Filter View Print Options Help ------------------------------------------------------------------------------- HQX7707 ----------------- SDSF PRIMARY OPTION MENU -------------------------- COMMAND INPUT ===> SCROLL ===> CSR DA Active users INIT Initiators I Input queue PR Printers O Output queue PUN Punches H Held output queue RDR Readers ST Status of jobs LINE Lines |
プライマリー・メニュー以外の画面(DSLISTやエディターなど何でもよい)から「SDSF」と入力して実行キーを押してみて下さい。SDSFが起動されるはずです。そのSDSFを終わらせれば元の画面に戻れるはずです。コマンドを登録する際にTRUNCに2を指定したので、SDSFだけでなくSDSやSDでもSDSFが起動できるはずです。SD;DA、SDSF;STのようにSDSFコマンドを続けて指定することもできます。
以前の記事でISPFで3つ以上のパネルを使う方法を紹介しましたが(ISPFで3つ以上のパネルを使う)、画面を切り替えるためにコマンドを入力したりなど、実際には面倒な操作です。コマンドによるダイアログ(*2)の起動では、「=3.4」や「=SD」などのジャンプ機能と異なり現行画面のダイアログは終了しませんので、後から実行したダイアログが終われば元の画面が再表示されて続きの作業を行うことができます。
ジョブをサブミットした後、実行結果は確認するものの、また元のエディターに戻り作業を続け、ジョブログの内容は一度確認できればそれでよく、表示し続ける必要はない、のならば画面を分割する必要なくSDSFを起動して元の画面に戻すことができます。
同じようにDSLIST(オプション3.4)もコマンド(「DSLIST△**」「DSLIST△’PROJ1.WORK’」)で起動できますから、2画面を切り替えて使用するベースになる画面は、継続して表示し続けたいツール(ユーティリティー)に割当て、一時的に内容を確認したいようなものはコマンドで起動するようにすれば、2画面でも3つ以上のユーティリティーやツールを使い分けられます。現在のISPFでは、DSLISTからエディターやブラウズなどほとんどの作業ができますから、DSLISTとSDSFのコマンド起動だけ知っているだけでも日々の作業の操作効率は向上するでしょう。EPDFコマンド(いつでもどこでもデータセット編集)を使用すれば、DSLISTユーティリティーのデータセット一覧パネルすら迂回してISPFエディターを直接起動することもできます。
*2 DSLISTやエディター、SDSFなどの画面を使うISPF機能やユーティリティーのこと。
なお、登録したユーザー・コマンド・テーブルを共用のコマンド・テーブルとして利用する場合は、コマンド・テーブルのメンバーを個人のISPFプロファイル・データセットからDD名ISPTLIBに定義されたライブラリー(ISP.SISPTENUまたはISP.SISPTJPN)に移動するだけです。ただし、コマンド・テーブルを修正した場合は個人のISPFプロファイル・データセットに保管されますので、再度移動する必要があります(個人用にコマンド・テーブルを修正した場合はそのままでかまいません)。