CLP Ppts
CLP Ppts
• CL Commands
Consistent Interface
Prompting and Help
• CL Programs
Better performance
Manage Exceptions
Sequence of Application Program
Front End to Application Programs
Programmer / Operator Tools
CL Command Syntax 1
[] Optional
?... Prompt, F4
Label-name Branching, Breakpoints and Traces
Library-name Commands are in QSYS
Keyword Form
DSPLIB LIB(PAYLIB) OUTPUT(*PRINT)
DSPLIB OUTPUT(*PRINT) LIB(PAYLIB)
Positional Form
DSPLIB PAYLIB *PRINT
Combination Form
DSPLIB PAYLIB OUTPUT(*PRINT)
CL Command Syntax 3
SNDRCVF *N MENUFMT
CL Program Structure
PGM
DCLF
DCL
MONMSG
IF ELSE
MONMSG
ENDPGM
Declare CL Variable
IF COND(Relational/logical) THEN(COMMAND)
ELSE CMD(command)
Operators
< *LT
= *EQ
<= *LE
>= *GE
¬< *NL
¬> *NG
¬= *NE
& *AND
| *OR
IF Examples
IF (&A = &B)
ELSE RETURN
IF &IN03 RETURN
DO Group
IF COND(&RESP = 1) THEN(DO)
IF COND(&A = 5) THEN(DO)
IF COND(&B = 7) THEN(DO)
CALL PGMA
ENDDO
ENDDO
ENDDO
PGM
STRT: SNDRCVF RCDFMT(MENU)
:
:
IF (&OPTION = 12 ) GOTO CMDLBL(END)
:
:
END: ENDPGM
Branching Outside
PGMA PGMB PGMC
PGM PGM PGM
: : :
: TRFCTL PGMD
:
PGM
: PGMD
RETURN
CHGVAR
PGM
DCL VAR(&TEAM) TYPE(*CHAR) VALUE(ABCDEFGHIJKL)
DCL VAR(&LIB) TYPE(*CHAR) LEN(6) VALUE(IWLIBX)
DCL VAR(&X) TYPE(*DEC) LEN(2 0) VALUE(1)
END: ENDPGM
%SUBSTRING Example
PGM PARM(&STRING)
DCL &WS *CHAR 3
DCL &STRING *CHAR 15
DCL &X *CHAR 1
PGM
CHGVAR VAR(%SST(*LDA 6 10)) VALUE(TALENT)
or
CHGDTAARA DTAARA(*LDA (6 10)) VALUE(TALENT)
CALL PGMB
ENDPGM
PGM
DCL VAR(&FILE) TYPE(*CHAR) LEN(10)
CHGVAR VALUE(%SST(*LDA 6 10)) VAR(&FILE)
or
RTVDTAARA DTAARA(*LDA (6 10)) RTNVAR(&FILE)
ENDPGM
2. Advanced facilities of CL Programs
PGM
DCLF FILE(INQDSP)
START: SNDRCVF RCDFMT(INQFMT)
IF &IN03 RETURN
ELSE IF (&CHOICE *EQ ‘1’) CALL INQCUS
ELSE IF (&CHOICE *EQ ‘2’) CALL INQITM
ELSE IF (&CHOICE *EQ ‘3’) CALL INQSUP
ELSE IF (&CHOICE *EQ ‘90’) SIGNOFF
GOTO START
ENDPGM
DISPLAY FILE OPERATIONS
DCLF FILE(INQDSP)
SNDF RCDFMT(INQFMT)
RCVF RCDFMT(INQFMT)
PGM
DCL VAR(&COUNT) TYPE(*DEC) LEN(3 0)
:
:
CALL PGM(PGMA) PARM(‘0’ &COUNT 100 ‘WIPRO LTD.’)
:
:
• Job Attributes
• System Values
• User Profile
• Group Attributes
• Configuration Status
• Network Attributes
PGM
DCL &TIME *CHAR 6
RTVSYSVAL SYSVAL(QTIME) RTNVAR(&TIME)
CHGJOB …..
RTVJOBA and CHGJOB
PGM
DCL VAR(&QNAME) TYPE(*CHAR) LEN(10)
DCL VAR(&LIB) TYPE(*CHAR) LEN(10)
DCL VAR(&JOB) TYPE(*CHAR) LEN(10)
RTVJOBA OUTQ(&QNAME) OUTQLIB(&LIB) JOB(&JOB)
CHGJOB OUTQ(ORDLIB/ORDOUTQ)
CALL PGM(ORDER)
CHGJOB OUTQ(&LIB/&QNAME)
SNDMSG MSG(‘Orders sent to ORDOUTQ output queue.’) +
TOMSGQ(&JOB)
ENDPGM
CONVERT DATE
*JOB *JOB
*SYSVAL *SYSVAL
*MDY *MDY
FROMFMT *DMY TOFMT *DMY
*YMD *YMD
*JUL *JUL
etc. etc.
*JOB
TOSEP *SYSVAL
*NONE
Separator CHAR
CVTDAT Command
PGM
DCL VAR(&NAME) TYPE(*CHAR) LEN(10)
DCL VAR(&DATE) TYPE(*CHAR) LEN(6)
DCL VAR(&JULIAN) TYPE(*CHAR) LEN(5)
RTVSYSVAL QDATE &DATE
CVTDAT DATE(&DATE) FROMFMT(*SYSVAL) +
TOVAR(&JULIAN) TOFMT(*JUL) +
TOSEP(*NONE)
CHGVAR &NAME (‘MAST’ *CAT &JULIAN)
ADDPFM MASTER &NAME
OVRDBF MASTER &NAME
CALL PGM(LIBRARY)
ENDPGM
Data Area Objects
DSPDTAARA DTAARA(name)
PGM
DCLF ORDER
DCL &ORD *DEC (5 0)
SNDRCVF RCDFMT(ORDFMT)
ALCOBJ OBJ((ORDNO *DTAARA *EXCL))
RTVDTAARA ORDNO RTNVAR(&ORD)
CHGVAR &ORD (&ORD + 1)
CHGDTAARA ORDNO (&ORD)
DLCOBJ OBJ((ORDNO *DTAARA *EXCL))
CALL ORDRWRITE (&NAME &AMT &ORD)
ENDPGM
Prompting for Command
?SNDMSG
?SNDMSG TOMSGQ(QSYSOPR)
• Creation
CRTMSGF MSGF(INVMSGF) SIZE( ) AUT( ) TEXT( )
• Maintenance
ADDMSGD
CHGMSGD
DSPMSGD
RMVMSGD
Predefined Message
PGM
DCL &COUNT *DEC (3 0)
DCL &COUNTA *CHAR 3
DCL &FILE *CHAR 10
:
CHGVAR COUNTA COUNT
SNDUSRMSG MSGID(WIP0001) MSGF(WIPRO) +
TOMSGQ(*EXT) MSGDTA(&COUNTA *CAT &FILE) +
MSGTYPE(*INFO)
:
ENDPGM
• Informational
• Inquiry
• Completion
• Diagnostic
• Escape
• Status
• Notify
Managing Exceptions
• MONMSG
– PROGRAM LEVEL
– COMMAND LEVEL
MSGID(CPF0864)
MSGID(CPF1700)
MSGID(CPF0000)
MONMSG - Example
PGM
DCL &NO *DEC
:
X: ?SNDMSG
MONMSG(CPF6801) EXEC(DO)
CHGVAR VAR(&NO) (&NO + 1)
IF (&NO = 3) THEN(RETURN)
ELSE CMD(GOTO X)
ENDDO
:
ENDPGM
MONMSG - CHKOBJ
Example :
1. CHKOBJ OBJ(SCHLIB/COURSE) *PGM
MONMSG …………………
STRPRTWTR DEV( )
NO
MATCH
YES
DLVRY(*DFT)
SNDUSRMSG DEFAULT
OPERATOR REPLY
SYSTEM REPLY LIST
10 CPA2402 I *NO
20 CPA3138 I *NO
30 RPG1241 G *NO
PRCHMST
35 CPA3394 I *NO
40 RPG1400 *DFT *NO
9999 *ANY *RDQ *YES
ADDRPYLE
CHGRPYLE
RMVRPYLE
WRKRPYLE
Reply Messages -Example
PGM PARM(&PRINT)
DCL &PRINT *CHAR LEN(10)
CRTLIB LEARN
ADDLIBL LEARN *FIRST
CRTDUPOBJ QSPLPRTW QGPL *JOBD LEARN
CHGJOBD LEARN/QSPLPRTW *SYSRPYL
STRPRTWTR &PRINT
RMVLIBLE LEARN
DLTLIB LEARN
ENDPGM
User Written Utility
PGM
DCLF ……….
DSPxxx OUTPUT(*OUTFILE) OUTFILE(WASE) +
OUTMBR(*FIRST *REPLACE)
OVRDBF
ST: RCVF WASE
MONMSG CPD0864 RETURN
:
:
GOTO ST
ENDPGM
DATABASE FILE
PGM
DCLF FILE(ibm-file)
DSPxxx OUTPUT(*OUTFILE) OUTFILE(user-file) OUTMBR(*FIRST *REPLACE)
OVRDBF FILE(ibm-file) TOFILE(user-file)
RCVF
:
ENDPGM
OR
PGM
DCLF FILE(user-file)
DSPxxx OUTPUT(*OUTFILE) OUTFILE(user-file) OUTMBR(*FIRST *REPLACE)
RCVF
:
ENDPGM
DATABASE FILE SEQUENCE
• Declare File
– Single Format – PF, LF
– One per program
• Open File
– RCVF
– Input only
• Read next record
• Check for EOF
• File Close
– EOF
– RETURN, TFRCTL
Utility - Example
• WRKSYSSTS
• SPOOL FILE
CMD : name
PGM : name
SRCFILE: QCMDSRC
SRCMBR: *CMD
VLDCKR: *none, name
MODE : *ALL, *PROD, *DEBUG, *SERVICE
ALWLMTUSR : *NO, *YES
ALLOW: *ALL, *BPGM, *IPGM, *BATCH, *INTERACT
PMTFILE: *none
MSGF: QCPFMSGF
Command Execution
– Command
– Check parameters
*NAME
TYPE *GENERIC
*CHAR
QUAL STATEMENT - Example
PGM PARM(&OB)
DCL &OB *CHAR 20
DCL &LIB *CHAR 10
DCL &OBNAME *CHAR 10
CHGVAR &OBNAME %SST(&OB 1 10)
CHGVAR &LIB %SST(&OB 11 10)
WRKOBJ &LIB/&OBNAME
ENDPGM
Dependent Relationship
CMD
PARM KWD(OUTPUT) TYPE(*CHAR) LEN(1) RSTD(*YES) +
SPCVAL((*PRINT P) (*OUTFILE F) (P) (F))
PARM KWD(OUTFILE) TYPE(*NAME) PMTCTL(OUTFILE)
PARM KWD(OUTMBR) TYPE(*NAME) PMTCTL(OUTFILE)
PARM KWD(OUTQ) TYPE(*NAME) PMTCTL(PRINT)
• Validity checker
– Command
– Command analyzer
– Check parameters
– Validity checking program
• Execute the validity checking program
• Check the values
• Call the command processing program
CRTCLPGM command
• CRTCLPGM take F4