z/OS ISPF Software Configuration and Library Manager Guide and Reference
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


PL/I example

z/OS ISPF Software Configuration and Library Manager Guide and Reference
SC19-3625-00

Here is a sample PL/I program for SCLM service procedures.

 FLMPLSM: PROC (PARMS) OPTIONS(MAIN NOEXECOPS);
 /********************************************************************/
 /*                                                                  */
 /* PL/I PROGRAM WHICH CALLS SCLM SERVICES                           */
 /*                                                                  */
 /* PROCEDURES IN THIS PROGRAM:                                      */
 /*                                                                  */
 /* -SCLSTRT  START  SCLM SESSION                                    */
 /* -SCLINIT  INIT   SCLM_ID                                         */
 /* -SCLEDIT  EDIT   SCLM SOURCE MEMBER                              */
 /* -SCLFREE  FREE   SCLM_ID                                         */
 /* -SCLEND   END    SCLM SESSION                                    */
 /*                                                                  */
 /********************************************************************/
 /*                                                                  */
 /* DECLARATIONS                                                     */
 /*                                                                  */
 /********************************************************************/
 DCL PLIRETV    BUILTIN ;
 DCL FLMLNK     ENTRY EXTERNAL OPTIONS(ASM,INTER,RETCODE) ;
 DCL ISPLINK    ENTRY EXTERNAL OPTIONS(ASM,INTER,RETCODE) ;

 /********************************************************************/
 /* PARAMETERS USED IN THIS PROGRAM                                  */
 /********************************************************************/
 DCL PARMS               CHAR(80) VARYING;

 DCL 1 PARM,
       2 PARM1           CHAR(8)  INIT('') ,
       2 DELM1           CHAR(1)  INIT('') ,
       2 PARM2           CHAR(8)  INIT('') ,
       2 DELM2           CHAR(1)  INIT('') ,
       2 PARMX           CHAR(62) INIT('') ;

 /********************************************************************/
 /* VARIABLES USED BY SCLM SERVICES                                  */
 /********************************************************************/
 DCL SERVICE             CHAR(8)  INIT(' ') ;
 DCL APPL_ID             CHAR(8)  INIT(' ') ;
 DCL SCLM_ID             CHAR(8)  INIT(' ') ;
 DCL PRJ_DEF             CHAR(8)  INIT(' ') ;
 DCL PROJECT             CHAR(8)  INIT(' ') ;
 DCL MSG_LINE            CHAR(80) INIT(' ') ;

 DCL Y                   CHAR(24) INIT('Y                       '),
     C                   CHAR(24) INIT('C                       '),
     N                   CHAR(24) INIT('N                       ');

 DCL SLMLIB              CHAR(8),
     SLMLIB2             CHAR(8),
     SLMLIB3             CHAR(8),
     SLMLIB4             CHAR(8),
     ALL_HIER            CHAR(24),
     IMAC                CHAR(8),
     PROF                CHAR(8),
     CONFIRM             CHAR(24),
     MIX                 CHAR(24),
     WS                  CHAR(24),
     PRESERVE            CHAR(24),
     AUTHCODE            CHAR(8),
     CHGCODE             CHAR(8),
     VOLSER              CHAR(8),
     SLMPROJ             CHAR(8),
     SLMALTP             CHAR(8),
     SLMTYP              CHAR(8),
     SLMMEM              CHAR(8),
     MSGLIST             CHAR(80);

 DCL BLNK8               CHAR(8) INIT(' '),
     DDNAME              CHAR(8),
     DONE                BIT(1);

 /********************************************************************/
 /*   MAIN PROGRAM LOGIC                                             */
 /********************************************************************/

 PARM1      = 'PROJECT ';
 PARM2      = 'ALT_PROJ';
 PROJECT    = PARM1;
 PRJ_DEF    = PARM2;
 IF PRJ_DEF = ' ' THEN PRJ_DEF = PROJECT ;


 CALL SCLSTRT ;
 CALL SCLINIT ;
 CALL SCLEDIT ;
 CALL SCLFREE ;
 CALL SCLEND ;

 /********************************************************************/
 /* GENERATE AN APPLICATION ID FOR SCLM SESSION                      */
 /********************************************************************/
 SCLSTRT: PROC ;
 SERVICE    = 'START';
 APPL_ID    = '';

 CALL FLMLNK (SERVICE , APPL_ID) ;
 RETCODE    = PLIRETV() ;

 END SCLSTRT ;

 /********************************************************************/
 /* INITIALIZE SCLM ID FOR SERVICES                                  */
 /********************************************************************/
 SCLINIT: PROC ;
 SERVICE    = 'INIT' ;
 SCLM_ID    = '';

 CALL FLMLNK (SERVICE , APPL_ID
                      , PROJECT
                      , PRJ_DEF
                      , SCLM_ID
                      , MSG_LINE) ;
 RETCODE    = PLIRETV() ;

 END SCLINIT ;

 /********************************************************************/
 /* EDIT A MEMBER IN THE PROJECT HIERARCHY                           */
 /********************************************************************/
 SCLEDIT: PROC ;
 SLMLIB     = 'DEV1    ';
 SLMLIB2    = '        ';
 SLMLIB3    = '        ';
 SLMLIB4    = '        ';
 SLMTYP     = 'SOURCE  ';
 SLMMEM     = 'MEMBER1 ';
 SERVICE    = 'EDIT    ';
 DDNAME     = 'EDIT    ';
 ALL_HIER   = N;
 IMAC       = '        ';
 PROF       = '        ';
 CONFIRM    = N;
 MIX        = N;
 WS         = N;
 PRESERVE   = 'Y';
 AUTHCODE   = ' ';
 CHGCODE    = '    ';
 VOLSER     = BLNK8;

 CALL FLMLNK(SERVICE,SCLM_ID,SLMLIB,
             SLMLIB2,SLMLIB3,SLMLIB4,
             SLMTYP,SLMMEM,ALL_HIER,
             IMAC,PROF,CONFIRM,MIX,WS,
             PRESERVE,AUTHCODE,CHGCODE,
             VOLSER,DDNAME);

 RETCODE    = PLIRETV() ;
 IF RETCODE > 0 THEN
     CALL ISPLINK('BROWSE  ','SCLM.MSGS ');

 END SCLEDIT ;

 /*********************************************************************/
 /* FREE SCLM ID                                                      */
 /*********************************************************************/
 SCLFREE: PROC ;
 SERVICE    = 'FREE    ' ;

 CALL FLMLNK (SERVICE, SCLM_ID
                     , MSG_LINE) ;
 RETCODE    = PLIRETV() ;

 END SCLFREE ;

 /*********************************************************************/
 /* END AN SCLM SERVICES SESSION                                      */
 /*********************************************************************/
 SCLEND: PROC ;
 SERVICE    = 'END     ' ;

 CALL FLMLNK (SERVICE, APPL_ID
                     , MSG_LINE ) ;
 RETCODE    = PLIRETV() ;

 END SCLEND ;

 END;
 

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014