The STEPLIB DD statement defines a private library that the system will search for programs before searching the system libraries. Unlike JOBLIB, it applies only to the specific job step where it appears, providing step-level control of the program search path.
123//STEPLIB DD DSN=library-name,DISP=SHR // DD DSN=library-name,DISP=SHR // ...
12//STEP1 EXEC PGM=MYPROG //STEPLIB DD DSN=USER.LOADLIB,DISP=SHR
1234//STEP1 EXEC PGM=MYPROG //STEPLIB DD DSN=USER.LOADLIB,DISP=SHR // DD DSN=DEPT.LOADLIB,DISP=SHR // DD DSN=PROJECT.LOADLIB,DISP=SHR
123456789//MYJOB JOB (ACCT123),'JOHN SMITH' //JOBLIB DD DSN=GLOBAL.LOADLIB,DISP=SHR //* //STEP1 EXEC PGM=MYPROG1 /* Uses JOBLIB */ //* //STEP2 EXEC PGM=MYPROG2 //STEPLIB DD DSN=SPECIAL.LOADLIB,DISP=SHR /* Overrides JOBLIB */ //* //STEP3 EXEC PGM=MYPROG3 /* Uses JOBLIB again */
1234567//MYPROC PROC //STEP1 EXEC PGM=MYPROG //STEPLIB DD DSN=PROC.LOADLIB,DISP=SHR //PEND //CALLP EXEC MYPROC //STEP1.STEPLIB DD DSN=USER.LOADLIB,DISP=SHR /* Overrides the proc's STEPLIB */