Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.


  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • DownloadDownload
  • PrintPrint
Share this Page URL
Help

Appendix C. Sample Sign-On Program

C. Sample Sign-On Program

Figure C.1. Sample Sign-On Program
PGM

   DCL &dlvry      *CHAR   10
   DCL &dspname    *CHAR   10
   DCL &grpprf     *CHAR   10
   DCL &msg        *CHAR   80
   DCL &msgq       *CHAR   10
   DCL &msgqlib    *CHAR   10
   DCL &pgmrlib    *CHAR   10
   DCL &position   *DEC     3
   DCL &programmer *LGL     1
   DCL &usrcls     *CHAR   10
   DCL &usrname    *CHAR   50
   DCL &usrprf     *CHAR   10
   DCL &usrtxt     *CHAR   50

   MONMSG cpf0000

   /* Retrieve the user profile attributes */
   RTVUSRPRF *CURRENT RTNUSRPRF(&usrprf) GRPPRF(&grpprf) +
              MSGQ(&msgq) MSGQLIB(&msgqlib) +
              TEXT(&usrtxt) USRCLS(&usrcls) DLVRY(&dlvry)
   RTVJOBA JOB(&dspnam)

   /* Display "Signing on..." message */
   CALL qclscan (&usrtxt X'050F' X'001F' +
                  ':' X'001F' +
                  '0' '0' ' ' &position)

   IF (&position *GT 0) DO
      CHGVAR &position (&position - 1)
      CHGVAR &usrname  %SST(&usrtxt 1 &position)
   ENDDO
   ELSE DO
      CHGVAR &usrname &usrtxt
   ENDDO

   SNDPGMMSG MSGID(cpf9898) MSGF(qcpfmsg) +
              MSGDTA('Signing on' *BCAT &usrname *BCAT 'at' +
                      &dspname *TCAT '..') +
              TOPGMQ(*EXT) MSGTYPE(*STATUS)

   /* If signing on with Client Access, override printer files */
   IF (%SST(&dspname 1 6) *EQ 'ACGDSP') DO
      OVRPRTF *PRTF DEV(&dspname *TCAT 'P1') +
               PAGESIZE(82 132) LPI(8) CPI(16.7) OVRFLW(80) +
               FOLD(*NO) PAGRTT(0) OUTQ(*DEV) HOLD(*YES)
   ENDDO

   /* Ensure print key formats output */
   CHGJOB PRTKEYFMT(*PRTALL)

   /* Determine if user is a programmer */
   IF (&grpprf *EQ 'QPGMR'    *OR +
       &grpprf *EQ 'GRP_PGMR'     ) DO
      CHGVAR &programmer '1'
   ENDDO
   ELSE DO
      CHGVAR &programmer '0'
   ENDDO

   /* Place ALTQSYS at top of library list */
   /* for programmers and system operators */
   IF (&programmer            *OR +
       &usrcls *EQ '*SYSOPR'      ) DO
      CHGSYSLIBL altqsys OPTION(*ADD)
   ENDDO
   /* If user is programmer, create programming library */
   IF (&programmer) DO
      CHGVAR &pgmrlib ('$' *CAT %SST(&usrprf 1 9))
      CRTLIB &pgmrlib TEXT('Project library for' *BCAT &usrprf)
      CRTSRCPF &pgmrlib/source TEXT('Main source file')
      ADDLIBLE &pgmrlib POSITION(*FIRST)
   ENDDO

   /* If any messages are found in the user's message queue, */
   /* display those messages before proceeding */
   IF (&dlvry *NE '*BREAK') DO
      RCVMSG MSGQ(&msgqlib/&msgq) MSGTYPE(*NEXT) MSGKEY(*TOP) +
              RMV(*NO) MSG(&msg)
      IF (&msg *NE ' ') DO
         DSPMSG MSGQ(&msgqlib/&msgq)
      ENDDO

      RCVMSG MSGQ(&dspname) MSGTYPE(*NEXT) MSGKEY(*TOP) +
              RMV(*NO) MSG(&msg)
      IF (&msg *NE ' ') DO
         DSPMSG MSGQ(&dspname)
      ENDDO
   ENDDO

   /* Call personalizing program */
   CALL mgtlib/&usrprf

   IF (&programmer *OR        +
        &usrcls *EQ '*SYSOPR' ) DO
      CALL qsys/qcmd
   ENDDO

ENDPGM

					  


 


  

You are currently reading a PREVIEW of this book.

                                                                                        

Get instant access to over
$1 million worth of books and videos.

  

Start a Free Trial