DEFV (VSAM ステートメントの定義)

目的
この機能は、DD FMNDEFV に定義された出力データ・セットに対する 1 つ以上の VSAM データ・セットの IDCAMS 定義ステートメントを作成します。
1. Syntax

1 DEFV
2? DSNLIST=(+ ,dsn1,dsn2,...dsnN)

ここで、

DSNLIST
コンマ区切りのデータ・セット名のリストです。完全修飾データ・セット名または総称データ・セット名を指定できます。指定されたデータ・セット名と一致する VSAM クラスターのみが、作成される DEFINE ステートメントに組み込まれます。

総称名では、パーセント (%) 記号を使用して 1 つの修飾子内の 1 文字を表し、アスタリスク (*) で任意の数の文字を表します。2 つのアスタリスク (**) は任意の数の修飾子内の任意の数の文字を表します。

例 1バッチ・ジョブ
//FMBAT EXEC PGM=FMNMAIN                
//FMNDEFV DD SYSOUT=*                  
//SYSPRINT DD SYSOUT=*                  
//SYSIN DD *                            
$$FILEM DEFV ,                          
$$FILEM DSNLIST=(FMN.FMDATA.K*,         
$$FILEM FMN.FMDATA.ESDS,                
$$FILEM userid.FMDATA.**)              
例 2.ISPF 3.4 での使用のための REXX exec
/* REXX - VSAM define statements for data set  */         
ARG DSN                                                   
CALL FMNELIBD DEF       /* Remove if not using LIBDEFS */ 
ADDRESS TSO                                               
  "ALLOC FI(FMNPRINT) DA(*) REUSE"                        
  "ALLOC FI(FMNDEFV) NEW SP(1,5) TRACKS"                  
ADDRESS ISPEXEC                                           
  "SELECT CMD(FILEMGR $DEFV DSNLIST=("DSN")"              
  "LMINIT DATAID(DEFID) DDNAME(FMNDEFV) ENQ(SHR)"         
  IF RC = 0 THEN DO;                                      
    "VIEW DATAID("DEFID")"                                
    IF RC > 8 THEN                                        
      "SETMSG MSG("ZERRMSG")"                             
    "LMFREE DATAID("DEFID")"                              
  END;                                                    
ADDRESS TSO                                               
  "FREE FI(FMNPRINT)"                                     
  "FREE FI(FMNDEFV)"                                      
CALL FMNELIBD DROP      /* Remove if not using LIBDEFS */ 
EXIT 0;