Previous Topic Next topic Print topic


Determining Member Lists (TAUPDELI)

The TAUPDELI procedure generates the member list of a PDS according to the filter criterion (see Filter type).

REXX Example: Extract from TAUPDELI (simplified) 
. . . . 
Parse Arg indsn filter . 
. . . . 
/* Create the element list dataset */                            
Call REXX '0 TAUPDXA1 CONFIG ELELIST'                    
Parse Value Result With . eledsn .                       
Call ALLOC_FILE eledd eledsn                             
/* Get the Elementtype */                                
type = GET_TYPE(indsn)                                   
/* Get members from PDS */           
Call GET_MEMBERS                                         
Call TSO "0 EXECIO * DISKW" eledd "(FINIS STEM member.)" 
outparm = eledsn                                                                             
Call EXIT 0 wmsg 
. . . . 
  
GET_TYPE:                                                                
Arg tdsn .                                                               
Select                                                                   
  When Pos('SOURCE', tdsn) > 0 Then ttype = 'EDITABLE'                                                 
  . . . .                                             
  Otherwise ttype = 'UNKNOWN'                                                  
  End                                                                    
Return ttype 
                                                             
GET_MEMBERS:                                                          
Call ISPF "0 LMINIT DATAID(DSNDD) DATASET('"indsn"') ENQ(SHR)"        
Call ISPF "0 LMOPEN DATAID("dsndd")"                                  
j = 0                                                                 
Do Forever                                                            
  mbr = ' '                                                           
  parm = "DATAID("dsndd") OPTION(LIST) STATS(YES) PATTERN("filter")"  
  Call ISPF "8 LMMLIST" parm "MEMBER(MBR)"                            
  If Result > 0 Then Leave                                                            
  j = j + 1                                                           
  If Symbol('ZLC4DATE') = 'VAR' Then                               
    parm = zlc4date','zlm4date zlmtime','Strip(zlcnorc)','Strip(zluser)                      
  Else parm = ',,,'                                                      
  member.j = indsn','Strip(mbr)','parm','type                         
  End                                                                 
member.0 = j                                                          
Return                                                                                                                                
. . . . 
EXIT: 
Parse Arg exitrc exitmsg 
. . . . 
Call ISPF "* LMMLIST DATAID("dsndd") OPTION(FREE)"  
Call ISPF "* LMCLOSE DATAID("dsndd")"  
Call ISPF '* LMFREE DATAID('dsndd')' 
Call FREE_FILE eledd 
. . . . 
Exit exitrc outparm                                                        

Note the following in the programming for determining the member list:

Previous Topic Next topic Print topic