0% found this document useful (0 votes)
102 views

Programs On Command See Output in Spool File: DMPCLPGM QPPGMDMP

This document contains several iSeries (AS/400) programs written in RPG that demonstrate various programming concepts such as: - Declaring and initializing variables - Calling other programs and passing parameters - Retrieving system values and job attributes - Formatting and sending messages - Converting dates between formats - Handling program messages The programs cover topics like string manipulation, loops, conditional logic, and activating on message monitoring.

Uploaded by

saiprasad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
102 views

Programs On Command See Output in Spool File: DMPCLPGM QPPGMDMP

This document contains several iSeries (AS/400) programs written in RPG that demonstrate various programming concepts such as: - Declaring and initializing variables - Calling other programs and passing parameters - Retrieving system values and job attributes - Formatting and sending messages - Converting dates between formats - Handling program messages The programs cover topics like string manipulation, loops, conditional logic, and activating on message monitoring.

Uploaded by

saiprasad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

PROGRAMS ON DMPCLPGM COMMAND; SEE OUTPUT IN QPPGMDMP SPOOL FILE

PGM
DCL
VAR(&CHAR10) TYPE(*CHAR) LEN(10) VALUE(HISTORY)
DCL
VAR(&CHAR24) TYPE(*CHAR) LEN(24) VALUE(MISSIPI)
DCL
VAR(&DEC50) TYPE(*DEC) LEN(5 0) VALUE(198)
DCL
VAR(&DEC72) TYPE(*DEC) LEN(7 2) VALUE(3.14)
DCL
VAR(&LGL1) TYPE(*LGL) VALUE('0')
DMPCLPGM
CHGVAR
VAR(&CHAR10) VALUE('MY LIBRARY')
CHGVAR
VAR(&CHAR24) VALUE(THISIS24CHARS)
DMPCLPGM
RETURN
ENDPGM

GOTO COMMAND PROGRAMS


PGM
DCL
IF
IF
IF

VAR(&COMPANY) TYPE(*CHAR) LEN(4) VALUE(ABCO)


COND(&COMPANY *EQ ACME) THEN(GOTO CMDLBL(ACME))
COND(&COMPANY *EQ ABCO) THEN(GOTO CMDLBL(ABCO))
COND(&COMPANY *NE ABCO *AND &COMPANY *NE +
ACME) THEN(SNDUSRMSG MSG('UNKOWN COMPANY'))
GOTO (ENDOFPGM)
ACME: SNDUSRMSG ('COMPANY NAME IS ACME')
GOTO ENDOFPGM
ABCO: SNDUSRMSG ('COMPANY NAME IS ABCO')
GOTO ENDOFPGM
ENDOFPGM:RETURN
ENDPGM

RTVJOBA command

USING DO LOOP PROGRAM MESSAGES WILL APPEAR IN JOB LOG


PGM

LOOP:

DCL
VAR(&COUNTER) TYPE(*DEC) LEN(1) VALUE(0)
DCL
VAR(&TCOUNT) TYPE(*CHAR) LEN(1) VALUE('0')
DCL
VAR(&USER) TYPE(*CHAR) LEN(10)
RTVJOBA USER(&USER)
IF (&COUNTER = 3) THEN(GOTO END)
ELSE
CHGVAR (&COUNTER) (&COUNTER + 1)

CHGVAR (&TCOUNT) (&COUNTER)


SNDMSG
MSG('THIS IS LOOP ' *CAT &TCOUNT) +
TOUSR(&USER)
GOTO (LOOP)
END: ENDPGM

PROGRAM TO DISPLAY USERNAME LOGINTIME SYSTEMNAME


PGM

END:

DCL
VAR(&USER) TYPE(*CHAR) LEN(10)
DCL
VAR(&JOB) TYPE(*CHAR) LEN(10)
DCL
VAR(&SYS) TYPE(*CHAR) LEN(8)
RTVJOBA JOB(&JOB) USER(&USER)
RTVNETA SYSNAME(&SYS)
SNDPGMMSG ('HAI' *BCAT &USER *BCAT 'SIGNED ON AT ' *BCAT +
&JOB *BCAT 'ON' *BCAT &SYS)
RETURN
ENDPGM

PROGRAM ON STRING FUNCTIONS AND ALSO VARIOUS RETRIEVE COMMANDS


PGM
DCL
VAR(&TIME) TYPE(*CHAR) LEN(8)
DCL
VAR(&USER) TYPE(*CHAR) LEN(10)
RTVJOBA USER(&USER)
RTVSYSVAL SYSVAL(QTIME) RTNVAR(&TIME)
CHGVAR
VAR(&TIME) VALUE((%SST(&TIME 1 2)) *CAT ':' *CAT +
(%SST(&TIME 3 2)) *CAT ':' *CAT +
(%SST(&TIME 5 2)))
SNDPGMMSG MSG('HI ' *CAT &USER *CAT 'THE TIME IS ' +
*CAT &TIME)
END: ENDPGM

PGM

DCL
VAR(&TIME) TYPE(*CHAR) LEN(8)
DCL
VAR(&USER) TYPE(*CHAR) LEN(10)
DCL
VAR(&HOURS) TYPE(*DEC) LEN(2)
RTVJOBA USER(&USER)
RTVSYSVAL SYSVAL(QTIME) RTNVAR(&TIME)
CHGVAR (&HOURS) (%SST(&TIME 1 2))
CHGVAR
VAR(&TIME) VALUE((%SST(&TIME 1 2)) *CAT ':' *CAT +
(%SST(&TIME 3 2)) *CAT ':' *CAT +
(%SST(&TIME 5 2)))
IF (&HOURS *GE 0 *AND &HOURS *LT 12) +
(SNDPGMMSG MSG('HI GOOD MORNING' *CAT &USER *CAT 'THE TIME IS ' +
*CAT &TIME))
ELSE IF (&HOURS *GE 12 *AND &HOURS *LT 17) +
(SNDPGMMSG MSG('HI GOOD AFTERNOON' *CAT &USER *CAT 'THE TIME IS ' +
*CAT &TIME))
ELSE IF (&HOURS *GE 17 *AND &HOURS *LT 20) +
(SNDPGMMSG MSG('HI GOOD EVENING' *CAT &USER *CAT 'THE TIME IS ' +
*CAT &TIME))
PROGRAM PARAMETRES EXAMPLES
COMMANDLINE PARMS
PGM
DCL
DCL

PARM(&CHAR3)
VAR(&CHAR3) TYPE(*CHAR) LEN(3)
VAR(&TEXT) TYPE(*CHAR) LEN(11) VALUE('THE +
PARMIS')
SNDPGMMSG (&TEXT *CAT &CHAR3)
ENDPGM

PGM
PARM(&LIB)
DCL
VAR(&LIB) TYPE(*CHAR) LEN(10)
DSPLIB
LIB(&LIB)
ENDPGM

PGM
PARM(&LIB)
DCL
VAR(&LIB) TYPE(*CHAR) LEN(10)
DCL
VAR(&JTP) TYPE(*CHAR) LEN(1)
RTVJOBA TYPE(&JTP)
IF
(&JTP = '1') DO
SBMJOB CMD(CALL PGM(SA1105HSH) PARM(&LIB))
SNDPGMMSG ('JOBSUBMITTED TO BATCH')
RETURN
ENDDO
DSPLIB
LIB(&LIB)
ENDPGM
END: ENDPGM

Mon Mssages :
PGM

PARM(&FILE)
DCL (&FILE) TYPE(*CHAR) LEN(10)
CHKOBJ
OBJ(HASHEEM/&FILE) OBJTYPE(*PGM)
SNDPGMMSG ('PROGRAM ENDED NORMALLY')
RETURN
ENDPGM

PGM
PARM(&FILE)
DCL (&FILE) TYPE(*CHAR) LEN(10)
CHKOBJ
OBJ(HASHEEM/&FILE) OBJTYPE(*PGM)
MONMSG
MSGID(CPF9801) EXEC(DO)
SNDPGMMSG MSG('CANT FIND +
FILE' *BCAT &FILE)
RETURN
ENDDO
SNDPGMMSG ('PROGRAM ENDED NORMALLY')
RETURN
ENDPGM

PGM
PARM(&LIB &FILE)
DCL (&FILE) TYPE(*CHAR) LEN(10)
DCL (&LIB) TYPE(*CHAR) LEN(10)
DCL (&MSG) TYPE(*CHAR) LEN(50)
MONMSG
MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR))
DSPFD
FILE(&LIB/&FILE)
DSPLIB
LIB(&LIB)
GOTO (ENDIT)
ERROR:
RCVMSG
MSGTYPE(*LAST) MSG(&MSG)
SNDPGMMSG (&MSG)
ENDIT:
RETURN

PGM
MONMSG
MSGID(CPF0000) EXEC(GOTO CMDLBL(END))
SNDPGMMSG MSG('THIS IS MESAGE 1') TOPGMQ(*EXT) +
MSGTYPE(*INFO)
SNDPGMMSG MSG('THIS IS MESAGE 2') TOPGMQ(*EXT) +
MSGTYPE(*INFO)
SNDPGMMSG MSG('THIS IS MESAGE 3') TOPGMQ(*EXT) +
MSGTYPE(*INFO)
SNDPGMMSG MSG('THIS IS MESAGE 4') TOPGMQ(*EXT) +
MSGTYPE(*INFO)
SNDPGMMSG MSGID(CPF9898) MSGF(QSYS/QCPFMSG) +

MSGDTA('job ended') TOPGMQ(*SAME) +


MSGTYPE(*ESCAPE)

CALLING PROGRAMS and Parameter Passing


PGM
DCL &NAME *CHAR 20
+
VALUE('JOHN J.SMITH')
DCL &ADRESS *CHAR VALUE('123 MAINSTREET APARTMENT 45')
DCL &COMENT *CHAR 55 VALUE('LONG TIME CUSTOMER')
DCL &CREDLIMIT *DEC (11 2) VALUE(5000)
DCL &ACTIVE *LGL VALUE('1')
DMPCLPGM
CALL PGMB PARM(&NAME &ADRESS &COMENT 'PHILADEPHIA' &CREDLIMIT +
55400.10 &ACTIVE)
DMPCLPGM
SNDPGMMSG ('PROCESING COMPLETE') MSGTYPE(*COMP)
RETURN
ENDPGM
PGMB
PGM

PARM(&NAME &ADRESS &COMENT &CITY &CREDLIMIT +


&HIGHBAL &ACTIVE)
DCL &NAME *CHAR 20
DCL &ADRESS *CHAR 35
DCL &CITY *CHAR 21
DCL &COMENT *CHAR 55
DCL &CREDLIMIT *DEC (11 2)
DCL &HIGHBAL *DEC (15 5)
DCL &ACTIVE *LGL
CHGVAR (&NAME) VALUE('JERRY JAMES')
CHGVAR (&ADRESS) VALUE('124 ALDERSON')
CHGVAR (&CITY) VALUE('NEWYORK')
CHGVAR (&COMENT) VALUE(BLANK)
CHGVAR (&CREDLIMIT) VALUE(1000.50)
CHGVAR (&HIGHBAL) VALUE(67100)
CHGVAR (&ACTIVE) VALUE('0')
DMPCLPGM
RETURN
ENDPGM

DIFFERENCE BETWEEN TWO DATES INTHE SAMEYEAR PROGRAM


PGM (&DATE1 &DATE2)
DCL
VAR(&DATE1) TYPE(*CHAR) LEN(6)
DCL
VAR(&DATE2) TYPE(*CHAR) LEN(6)
DCL
VAR(&TEMP1) TYPE(*DEC) LEN(3 0)
DCL
VAR(&TEMP2) TYPE(*DEC) LEN(3 0)
DCL
VAR(&TEMP3) TYPE(*DEC) LEN(3 0)

DCL
VAR(&TEMP4) TYPE(*CHAR) LEN(3)
MONMSG (CPF0000) EXEC(GOTO (ERROR))
*/
CVTDAT DATE(&DATE1) TOVAR(&DATE1) FROMFMT(*MDY) +
TOFMT(*JUL)
CVTDAT DATE(&DATE2) TOVAR(&DATE2) FROMFMT(*MDY) +
TOFMT(*JUL)
CHGVAR
VAR(&TEMP1) VALUE((%SST(&DATE1 4 3)))
CHGVAR
VAR(&TEMP2) VALUE((%SST(&DATE2 4 3)))
CHGVAR
VAR(&TEMP3) VALUE(&TEMP1 - &TEMP2)
CHGVAR
VAR(&TEMP4) VALUE(&TEMP3)
SNDPGMMSG ('DIFFERENCE BETWEEN TWO DATES IS ' *BCAT &TEMP4)
GOTO (END)
ERROR:
SNDPGMMSG ('INVALID DATES ')
END:
RETURN
/*

ENDPGM

PGM

SNDPGMMSG MSG('THIS IS MESAGE 1') TOPGMQ(*EXT) +


MSGTYPE(*INFO)
SNDPGMMSG MSG('THIS IS MESAGE 2') TOPGMQ(*EXT) +
MSGTYPE(*INFO)
SNDPGMMSG MSG('THIS IS MESAGE 3') TOPGMQ(*EXT) +
MSGTYPE(*INFO)
SNDPGMMSG MSG('THIS IS MESAGE 4') TOPGMQ(*EXT) +
MSGTYPE(*INFO)
SNDPGMMSG MSG('job ended NORMALLY') TOPGMQ(*SAME) +
MSGTYPE(*COMP)
WRKMSGQ MSGQ(SA1602HSH)
ENDPGM

0000.01 PGM
0000.02
DCL
VAR(&USR ) TYPE(*CHAR) LEN(10)
0000.03
DCL
VAR(&TIME ) TYPE(*CHAR) LEN(8)
0000.04
DCL
VAR(&HOURS) TYPE(*DEC) LEN(2)
0000.05
RTVJOBA USER(&USR)
0000.06
RTVSYSVAL SYSVAL(QTIME) RTNVAR(&TIME)

0000.07
CHGVAR VAR(&HOURS) VALUE(%SST(&TIME 1 2))
0000.19
CHGVAR VAR(&TIME) VALUE(%SST(&TIME 1 2) *CAT '-' *CAT +
0000.20
%SST(&TIME 3 2) *CAT '-' *CAT +
0000.21
%SST(&TIME 5 2))
0000.25
IF
COND(&HOURS *GE 0 *AND &HOURS *LT 12) THEN(DO)
0000.26
SNDPGMMSG MSG('HI GOOD Morning' *CAT &USR *cat +
0000.27
'the time is ' *cat &time )
0000.28
0000.29
ENDDO
0000.30
IF COND(&HOURS *GE 12 *AND &HOURS *LT 17) THEN(DO)
0000.31
SNDPGMMSG MSG('HI GOOD AFTERNOON' *CAT &USR *cat +
0000.32
'the time is ' *cat &time )
0000.33
ENDDO
0000.34
IF COND(&HOURS *GE 17 *AND &HOURS *LT 24) THEN(DO)
0000.35
SNDPGMMSG MSG('HI GOOD NOGHT ' *CAT &USR *cat +
0000.36
'the time is ' *cat &time )
0000.37
ENDDO
0000.38 ENDPGM
0001.00

DATE CONVERTER
PGM
DCL
VAR(&MYDATE) TYPE(*CHAR) LEN(6)
DCL
VAR(&TODATE) TYPE(*CHAR) LEN(10)
RTVSYSVAL SYSVAL(QDATE) RTNVAR(&MYDATE)
CVTDAT DATE(&MYDATE) TOVAR(&TODATE) TOFMT(*ISO) +
TOSEP('-')
SNDPGMMSG MSG('TODAY IS ' *CAT &TODATE )
END PGM
STRISDB

You might also like