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

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

1 DEFV
2? DSNLIST=(+ ,dsn1,dsn2,...dsnN)
1! SMS=NO
1 SMS=YES
1! NAMES=NO
1 NAMES=YES
1! CATALOG=NO
1 CATALOG=YES
5 TYPES=(+ ,type_n)

各部の意味は以下のとおりです。

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

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

SMS
DATACLASS、MANAGEMENTCLASS、および STORAGECLASS の値を生成するかどうかを指定します。
NO
デフォルト。
YES
SMS=YES を指定すると、関連データ・セットに対して、DATACLASS、MANAGEMENTCLASS、および STORAGECLASS 値が既知であれば、これらの値が生成されます。
NAMES
NO
デフォルト。
YES
NAMES=YES を指定すると、クラスター定義の Data および Index コンポーネント名を生成できます。
CATALOG
NO
デフォルト。
YES
CATALOG=YES を指定すると、カタログ名を生成できます。
TYPES
処理するデータ・セット・タイプをフィルタリングするには、次の値 1 つ以上指定し、カンマで区切って括弧で囲みます。値の指定方法について詳しくは、「例 3.すべてのキーワードとすべてのタイプ」および「例 4.代替インデックスおよびパスの定義ステートメントのみを生成します」を参照してください。
VSAM
デフォルト。VSAM クラスター定義
ALL
VSAM、代替インデックス、パス、およびデータ・セット名と一致する GDG。
AIX
代替インデックスタイプが含まれます。
PATH
パスが含まれます。
GDG
生成データ・セット定義が含まれます。
例 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;                                                   
例 3.すべてのキーワードとすべてのタイプ
$$FILEM DEFV ,                           
$$FILEM DSNLIST=(FMN.VSAM.**), 
$$FILEM SMS=YES,                    
$$FILEM NAMES=YES,                       
$$FILEM CATALOG=YES,                     
$$FILEM TYPES=(ALL)    
          
例 4.代替インデックスおよびパスの定義ステートメントのみを生成します
$$FILEM DEFV ,                           
$$FILEM DSNLIST=(FMN.VSAM.**), 
$$FILEM TYPES=(AIX,PATH)