IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

CLIST FOR CHECKING COBOL STANDARDS


IBM Mainframe Forums -> CLIST & REXX
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
anoop_pv

New User


Joined: 25 Feb 2006
Posts: 2

PostPosted: Fri Feb 08, 2008 6:52 pm
Reply with quote

Hi all,

I have one cobol pgm which can be used for checking the cobol standards. I want to use a clist prog for invocking the program and list down the coding errors, but the problem now is this clist code is not working. I have attached all the clist codes I'm using ......... if anybody can help me on this asap...........pls help it's very urjent


the pgm works like if we type COBCHECK IT WILL LIST DOWN THE ERRORS AT SPECIFIC LINES AND WE CAN CHANGE & SAVE



COBCHECK

ISREDIT MACRO (LEVEL)

/*
/* CHECKS A PROGRAM TO SEE IF ERROR LOGGING IS CODED CORRECTLY
/*

/* CONTROL FLUSH MSG LIST CONLIST SYMLIST

SET XAMSGLVL = 1
IF &LEVEL = THEN GOTO CHNGCHK
IF &SUBSTR(1:3,&LEVEL) = ERR THEN SET XAMSGLVL = 3
IF &SUBSTR(1:3,&LEVEL) = WAR THEN SET XAMSGLVL = 2

CHNGCHK:-
ISREDIT (DATACHNG) = DATA_CHANGED
IF &DATACHNG = YES THEN +
DO
WRITE YOU MUST SAVE THE SOURCE BEFORE RUNNING THIS CLIST
EXIT
END
/* OBTAIN MEMBER NAME
ISREDIT (PROGNAME) = MEMBER

/* OBTAIN DATASET NAME
ISREDIT (DWLIB) = DATASET

ISPEXEC VPUT (PROGNAME DWLIB XAMSGLVL) PROFILE
COBCHKPR
ISREDIT COBCHKMS

CONTROL NOMSG
DELETE &PROGNAME..MSGLIST
CONTROL MSG

EXIT




COBCHKPR

PROC 0 TEST

/*
/* CHECKS A PROGRAM TO SEE IF ERROR LOGGING IS CODED CORRECTLY
/*

/* CONTROL FLUSH MSG LIST CONLIST SYMLIST
ISPEXEC VGET (PROGNAME DWLIB XAMSGLVL) PROFILE

CONTROL NOMSG
FREE ATT(CRATTR)
DELETE TEMP.SYSIN
DELETE &PROGNAME..MSGLIST
FREE F(CR2)
CONTROL MSG
SYSIN: -
SET &LIST = TEMP.SYSIN
ATTRIB CRATTR BLKSIZE(19040) LRECL(80) RECFM(F B)
ALLOC DA(&LIST) DD(CR2) USING(CRATTR) NEW REUSE -
SPACE (1 1) TRACKS
OPENFILE CR2 OUTPUT
SET CR2 = &PROGNAME
PUTFILE CR2
SET CR2 = &XAMSGLVL
PUTFILE CR2
CLOSFILE CR2
FREE F(CR2)
RUNPROG: -
ALLOC FILE(SYSIN) DA(TEMP.SYSIN) SHR REUSE
ALLOC FILE(UT01) DA('&DWLIB(&PROGNAME)') SHR
ALLOC FILE(UT11) DA(&PROGNAME..MSGLIST) USING(CRATTR) NEW REUSE -
SPACE (5 5) TRACKS

CALL 'ALCHEML.XAPR1.##.B.LOADLIB(PXUCOBCK)'

CONTROL NOMSG
FREE F(SYSIN)
FREE F(UT01)
FREE F(UT11)
DELETE TEMP.SYSIN
FREE ATT(CRATTR)
CONTROL MSG

EXIT



COBCHKMS


/*
/* EDIT MACRO - DISPLAY ERROR LOGGING MESSAGES IN SOURCE
/*
ISREDIT MACRO

ISREDIT (MAXLINE) = LINENUM .ZLAST

ERROR +
DO
SET RCODE=&LASTCC
IF &RCODE = 400 THEN SET EOF = EOF
RETURN
END

ISREDIT RESET

SET EOF =
SET RCODE = 0

/* CONTROL FLUSH MSG LIST CONLIST SYMLIST
ISPEXEC VGET (PROGNAME) PROFILE

SET COLHDR1 = &STR(----+----1----+----2----+----3----+----4)
SET COLHDR2 = &STR(----+----5----+----6----+----7)
SET COLHDRST = &STR(&COLHDR1&COLHDR2)

OPENLIST: -
ALLOC FILE(CR1) DA(&PROGNAME..MSGLIST) SHR

OPENFILE CR1 INPUT

SET CURRLN = 0
LOOP: -
GETFILE CR1

IF &EOF = EOF THEN GOTO THEEND

SET LINENUM = &SUBSTR(1:6,&CR1)

SET ERRMSG = &SUBSTR(9:80,&CR1)

IF &LINENUM = 0 THEN +
DO
ISREDIT LINE_AFTER &LINENUM = INFOLINE (ERRMSG)
GOTO LOOP
END

IF &LINENUM = 999999 THEN +
DO
ISREDIT LINE_AFTER &MAXLINE = MSGLINE (ERRMSG)
GOTO LOOP
END

ISREDIT LINE_BEFORE &LINENUM = MSGLINE (ERRMSG)

IF &SYSINDEX(COL,&ERRMSG) ¬= 0 THEN SET COLHDR = Y
ELSE SET COLHDR = N

IF &LINENUM = &CURRLN THEN SET COLHDR = N

IF &COLHDR = Y THEN +
ISREDIT LINE_BEFORE &LINENUM = INFOLINE (COLHDRST)

SET CURRLN = &LINENUM

GOTO LOOP

THEEND:-
SET ERRMSG = &STR(USE L MSGLINE TO FIND NEXT MESSAGE)
ISREDIT LINE_BEFORE 1 = INFOLINE (ERRMSG)
ISREDIT LOCATE FIRST SPECIAL
CLOSFILE CR1
FREE F(CR1)
EXIT
Back to top
View user's profile Send private message
expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8797
Location: Welsh Wales

PostPosted: Fri Feb 08, 2008 7:04 pm
Reply with quote

A couple of points ..........

1) This may be urgent to you, but certainly not to anyone else who contributes to the forum, so please do not use urgent in your thread or title.

2) In what way is the CLIST not working, Has it been changed recently.

3) What have you done to trace the point / reason of failure.

4) Try not to use attachments in your posts, as I, like many other users of this forum am not permitted to open them, so if they contained critical information - I and many others can not read it.
Back to top
View user's profile Send private message
anoop_pv

New User


Joined: 25 Feb 2006
Posts: 2

PostPosted: Sat Feb 09, 2008 3:03 pm
Reply with quote

for COBCHECK i' getting an error like macro level error & the error message is like incorrect usage &LEVEL
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> CLIST & REXX

 


Similar Topics
Topic Forum Replies
No new posts Replace each space in cobol string wi... COBOL Programming 3
No new posts COBOL -Linkage Section-Case Sensitive COBOL Programming 1
No new posts COBOL ZOS Web Enablement Toolkit HTTP... COBOL Programming 0
No new posts CLIST - Virtual storage allocation error CLIST & REXX 5
No new posts Calling DFSORT from Cobol, using OUTF... DFSORT/ICETOOL 5
Search our Forums:

Back to Top