Example 1: The DATASET keyword

Assume that the user has issued these ALLOCATE statements for a panel library before entering ISPF:
ALLOCATE DATASET('ISPFPROJ.ABC.MYPAN') FILE(ISPPUSR) SHR
ALLOCATE DATASET('ISPFPROJ.ABC.PANELS') FILE(ISPPLIB) SHR
Next, the LIBDEF service is invoked with the DATASET keyword to define an application-level panel library (a partitioned data set).
ISPEXEC LIBDEF ISPPLIB DATASET ID('ISPFPROJ.ABC.APPAN1',
                                  'ISPFPROJ.ABC.APPAN2')

or alternately

CALL ISPLINK('LIBDEF  ', 'ISPPLIB ', 'DATASET ',
       '('ISPFPROJ.ABC.APPAN1','ISPFPROJ.ABC.APPAN2'')');
This example assumes that ISPFPROJ.ABC.MYPAN contains panels unique to the user. Panels unique to the application are contained in partitioned data sets ISPFPROJ.ABC.APPAN1 and ISPFPROJ.ABC.APPAN2.

The search sequence for panel APPLPAN1 is as follows:

  1. Search for the member APPLPAN1 in ISPFPROJ.ABC.MYPAN
  2. Search for the member APPLPAN1 in ISPFPROJ.ABC.APPAN1
  3. Search for the member APPLPAN1 in ISPFPROJ.ABC.APPAN2
  4. Search for the member APPLPAN1 in ISPFPROJ.ABC.PANELS

If the LIBDEF service had not been invoked, only ISPFPROJ.ABC.PANELS would have been searched for member APPLPAN1. The user library would not be searched.

To clear the LIBDEF after setting it, use either
'ISPEXEC LIBDEF ISPPLIB'
or
'ISPEXEC LIBDEF ISPPLIB DATASET()'
or additionally
CALL ISPLINK('LIBDEF  ', 'ISPPLIB ', ' ',' ');
or
CALL ISPLINK('LIBDEF  ', 'ISPPLIB ', 'DATASET ','()');