TechTalk: Comparing Objects Against Source

CL
Typography
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times

This utility produces a report about the objects in a library. It checks all commands, programs and files. It looks at the date/time of the source used to create the object, and then checks if the source member has been changed since then. A report is printed, showing the results.

This helps to identify which objects do not have source, or have source with a different date/time. Both situations are a problem. The utility consists of command Compare Objects and Source (CMPOBJSRC, 4a), two CL programs (OBJ006CL and OBJ006CLA, in4b and 4c), and an RPG program (OBJ006RG, 4d).

This helps to identify which objects do not have source, or have source with a different date/time. Both situations are a problem. The utility consists of command Compare Objects and Source (CMPOBJSRC, Figure 4a), two CL programs (OBJ006CL and OBJ006CLA, in Figures 4b and 4c), and an RPG program (OBJ006RG, Figure 4d).


TechTalk: Comparing Objects Against Source

Figure 4A Command CMPOBJSRC

 CMPOBJSRC: CMD PROMPT('Compare Object and Source') PARM KWD(OBJ) TYPE(NAME1) MIN(1) PROMPT('Objects') PARM KWD(ERRONLY) TYPE(*CHAR) LEN(4) RSTD(*YES) + DFT(*YES) VALUES(*YES *NO) PROMPT('Print + errors only') NAME1: QUAL TYPE(*GENERIC) LEN(10) SPCVAL((*ALL)) MIN(1) QUAL TYPE(*NAME) LEN(10) SPCVAL((*LIBL) + (*USRLIBL) (*CURLIB) (*ALL) (*ALLUSR)) + MIN(1) PROMPT('Library') 
TechTalk: Comparing Objects Against Source

Figure 4B CL program OBJ006CL

 OBJ006CL: + PGM PARM(&OBJ &ERRONLY) DCL VAR(&OBJ) TYPE(*CHAR) LEN(20) DCL VAR(&LIBRARY) TYPE(*CHAR) LEN(10) DCL VAR(&SCANOBJ) TYPE(*CHAR) LEN(10) DCL VAR(&ERRONLY) TYPE(*CHAR) LEN(4) /* Split qualified name */ CHGVAR VAR(&SCANOBJ) VALUE(%SST(&OBJ 1 10)) CHGVAR VAR(&LIBRARY) VALUE(%SST(&OBJ 11 10)) /* Run DSPOBJD for requested objects */ DSPOBJD OBJ(&LIBRARY/&SCANOBJ) OBJTYPE(*PGM *FILE *CMD) + OUTPUT(*OUTFILE) OUTFILE(QTEMP/DSPOBJD) MONMSG MSGID(CPF2123) EXEC(DO) SNDPGMMSG MSG('No objects were selected. Report not + executed.') MSGTYPE(*DIAG) SNDPGMMSG MSGID(CPF0002) MSGF(QCPFMSG) MSGTYPE(*ESCAPE) GOTO CMDLBL(ENDPGM) ENDDO /* Read object description and produce report */ OVRDBF FILE(QADSPOBJ) TOFILE(QTEMP/DSPOBJD) CALL PGM(OBJ006RG) PARM(&ERRONLY) DLTOVR FILE(*ALL) /* Delete work file */ DLTF FILE(QTEMP/DSPOBJD) /* End program */ ENDPGM: + ENDPGM 
TechTalk: Comparing Objects Against Source

Figure 4C CL program OBJ006CLA

 OBJ006CLA: + PGM PARM(&LIBRARY &FILE &MEMBER &SRCCHGDATE) DCL VAR(&LIBRARY) TYPE(*CHAR) LEN(10) DCL VAR(&FILE) TYPE(*CHAR) LEN(10) DCL VAR(&MEMBER) TYPE(*CHAR) LEN(10) DCL VAR(&SRCCHGDATE) TYPE(*CHAR) LEN(13) RTVMBRD FILE(&LIBRARY/&FILE) MBR(&MEMBER) SRCCHGDATE(&SRCCHGDATE) MONMSG MSGID(CPF9810 CPF9812 CPF9815) EXEC(CHGVAR + VAR(&SRCCHGDATE) VALUE(' ')) ENDPGM 
TechTalk: Comparing Objects Against Source

Figure 4D RPG program OBJ006RG

 FQADSPOBJIP E DISK FQPRINT O F 132 OA PRINTER * I 'OBJ006CLA' C PGM1 I 'Missing source' C MSG1 I 'Different date/time' C MSG2 * I DS I 1 13 MBRCHG I 2 7 MBRDAT I 8 13 MBRTIM I DS I 1 13 OBJCHG I 1 1 ODSRCC I 2 7 ODSRCD I 8 13 ODSRCT * * Parameter is whether to print errors only (*YES, *NO) C *ENTRY PLIST C PARM OPTION 4 * C ODSRCM IFNE *BLANK * Format object name for printing C CLEAROBJECT C ODLBNM CAT '/':0 OBJECT 21 C OBJECT CAT ODOBNM:0 OBJECT * Format source member name for printing C CLEARSRCMBR C ODSRCL CAT '/':0 SRCMBR 32 C SRCMBR CAT ODSRCF:0 SRCMBR C SRCMBR CAT '/':0 SRCMBR C SRCMBR CAT ODSRCM:0 SRCMBR * Get last date/time changed for source used to create object C CALL PGM1 C PARM ODSRCL C PARM ODSRCF C PARM ODSRCM C PARM MBRCHG * Check for errors C CLEARMESSAG C MBRCHG IFEQ *BLANK C MOVELMSG1 MESSAG 24 C ELSE C MBRCHG IFNE OBJCHG C MOVELMSG2 MESSAG C END C END * Print C OPTION IFEQ '*NO' C MESSAG ORNE *BLANK C EXCPTPRINT C END C END * Before first cycle: get system date and time C *INZSR BEGSR C TIME SYS 120 C MOVELSYS SYSTIM 60 C MOVE SYS SYSDAT 60 C ENDSR * OQPRINT H 202 OA O OR 1P O SYSDATY 8 O SYSTIM 18 '0 : : ' O 69 'INTEGRITY OF SOURCE USED' O 87 'TO CREATE OBJECTS' O 127 'CMPOBJSRC - Page' O PAGE 3 132 O H 0 OA O OR 1P O 6 'Object' O 55 'Source Member' O 84 'Comments' O H 2 OA O OR 1P O 6 '______' O 55 '_____________' O 84 '________' O EF 1 PRINT O OBJECT 21 O ODOBTP 30 O ODOBAT 41 O SRCMBR 74 O MESSAG 100 O TF1 LR O + 10 '** END OF REPORT **' 
BLOG COMMENTS POWERED BY DISQUS

LATEST COMMENTS

Support MC Press Online

$

Book Reviews

Resource Center

  •  

  • LANSA Business users want new applications now. Market and regulatory pressures require faster application updates and delivery into production. Your IBM i developers may be approaching retirement, and you see no sure way to fill their positions with experienced developers. In addition, you may be caught between maintaining your existing applications and the uncertainty of moving to something new.

  • The MC Resource Centers bring you the widest selection of white papers, trial software, and on-demand webcasts for you to choose from. >> Review the list of White Papers, Trial Software or On-Demand Webcast at the MC Press Resource Center. >> Add the items to yru Cart and complet he checkout process and submit

  • SB Profound WC 5536Join us for this hour-long webcast that will explore:

  • Fortra IT managers hoping to find new IBM i talent are discovering that the pool of experienced RPG programmers and operators or administrators with intimate knowledge of the operating system and the applications that run on it is small. This begs the question: How will you manage the platform that supports such a big part of your business? This guide offers strategies and software suggestions to help you plan IT staffing and resources and smooth the transition after your AS/400 talent retires. Read on to learn: