Skip to main content

Hi,

we are using this function to validate a date. 

COMPUTE RES-DATE-INT = FUNCTION INTEGER-OF-DATE (DATE8)

The problem is that when DATE8 contains an invalid date: 20230230, the execution stops with 181 error code: 

error code: 181, pc=0, call=1, seg=0
181 Invalid parameter error

Is it possible to manage this situation? I mean, could we in some how to have some exception handling or similar?

We tried with TEST-DATE-YYYYMMDD function, but we receive a compilation error:

Invalid FUNCTION name TEST-DATE-YYYYMMDD

Is there any way to validate a date by using Visual Cobol functions?

Our VC release:

PRN=KXCRH/AAD:Ao.U4.13.04
PTI=32/64 bit
PTI=Micro Focus Visual COBOL Development Hub 5.0 - Patch Update 05
PTI=Patch Update 05

Thanks in advance


#ExecutionError
#datevalidation

Hi,

we are using this function to validate a date. 

COMPUTE RES-DATE-INT = FUNCTION INTEGER-OF-DATE (DATE8)

The problem is that when DATE8 contains an invalid date: 20230230, the execution stops with 181 error code: 

error code: 181, pc=0, call=1, seg=0
181 Invalid parameter error

Is it possible to manage this situation? I mean, could we in some how to have some exception handling or similar?

We tried with TEST-DATE-YYYYMMDD function, but we receive a compilation error:

Invalid FUNCTION name TEST-DATE-YYYYMMDD

Is there any way to validate a date by using Visual Cobol functions?

Our VC release:

PRN=KXCRH/AAD:Ao.U4.13.04
PTI=32/64 bit
PTI=Micro Focus Visual COBOL Development Hub 5.0 - Patch Update 05
PTI=Patch Update 05

Thanks in advance


#ExecutionError
#datevalidation

The FUNCTION TEST-DATE-YYYYMMDD is used to validate a provided date, but this function was not added until V7.0. You sre running with V5.0 which is older and does not support this function.

You would have to upgrade to at least 7.0, but preferably 8.0 in order to get this functionality.


The FUNCTION TEST-DATE-YYYYMMDD is used to validate a provided date, but this function was not added until V7.0. You sre running with V5.0 which is older and does not support this function.

You would have to upgrade to at least 7.0, but preferably 8.0 in order to get this functionality.

Thanks for your answer. It is going to be hard upgrading the release. In the mean time, any suggestion about how to do it? something about avoiding the execution error?


Thanks for your answer. It is going to be hard upgrading the release. In the mean time, any suggestion about how to do it? something about avoiding the execution error?

I cannot reproduce the RTS181 error.
For me when I use an invalid date with INTEGER-OF-DATE the receiving field is = 0 and no RTS error occurs.

Can you please try the following simple test program to see if it fails for you?

identification division.
program-id. Program1.
data division.
working-storage section.
01 res-date-int pic 9(9) value 0.
01 date8 pic 9(8) value 20230230.
procedure division.
     compute res-date-int = FUNCTION INTEGER-OF-DATE (date8)
     display res-date-int
     goback.


I cannot reproduce the RTS181 error.
For me when I use an invalid date with INTEGER-OF-DATE the receiving field is = 0 and no RTS error occurs.

Can you please try the following simple test program to see if it fails for you?

identification division.
program-id. Program1.
data division.
working-storage section.
01 res-date-int pic 9(9) value 0.
01 date8 pic 9(8) value 20230230.
procedure division.
     compute res-date-int = FUNCTION INTEGER-OF-DATE (date8)
     display res-date-int
     goback.

No way... it fails.


Execution error : file 'prueba'
error code: 181, pc=0, call=1, seg=0
181 Invalid parameter error

Maybe some compilation directive? We use these ones:


* Micro Focus COBOL                  V5.0 revision 000 29-Mar-23 16:17 Page   1
* prueba.co3
* Setting: NOACCEPTREFRESH
*          NOACU
*          NOACUCOMMENT
*          NOACUSYNC
*          NOACU-UNDERSCORE
*            ADV
*            ALIGN"8 OPT"
*            ALPHASTART"1"
*            ALTER
*          NOAMODE
*            ANIM
*            ANS85
*            APOST
*            AREACHECK
*            ARITH"EXTEND"
*            ARITHMETIC"OS390"
*            ASSIGN"EXTERNAL"
*          NOASSIGN-PRINTER
*          NOAUTOLOCK
*          NOBELL
*            BINLIT"NUMERIC"
*            BOUND
*          NOBRIEF
*          NOBS2000
*            BWZSTAR
*            BYTEMODEMOVE
*            CALLFH"EXTFH"
*          NOCALLRECOVERY
*            CALLSORT"EXTSM"
*            CANCEL
*            CANCELLBR
*            CHANGEMESSAGE"10 W 1007 S 1014 S 1022 S 1082 W"
*            CHARSET"ASCII"
*            CHECKDIV"OS390"
*          NOCHECKREFMOD
*          NOCICS
*            CICS-CPY
*          NOCICSOPTIMIZE
*          NOCMPR2
*            COBFSTATCONV
*          NOCOBIDY
*          NOCOBOL370
*            COBOLDIR
*          NOCOMMANDLINELINKAGE
*          NOCOLLECTION
*          NOCOMP
*            COMP"BINARY"
*            COMP1"FLOAT"
*            COMP2"FLOAT"
*            COMP-5"2"
*            COMP-6"2"
*          NOCONFIRM
*          NOCONVERTRET
*            CONVSPACE
*            COPYEXT",cpy"
*            COPYLBR
*            COPYLIST
*            COPYLISTCOMMENT"7"

* Micro Focus COBOL                  V5.0 revision 000 29-Mar-23 16:17 Page   2
* prueba.co3
*            COPYSEARCH"MF"
*            CSI
*            CURRENCY-SIGN"36"
*            CURRENT-DATE"MMDDYY"
*          NODATA
*            DATACOMPRESS"0"
*          NODATA-CONTEXT
*          NODATAMAP
*            DATE
*            DBCHECK
*            DBCS"3"
*            DBCSSOSI"14""15"
*            DBSPACE
*            DE-EDIT"2"
*            DEFAULTBYTE"0"
*          NODEFAULTCALLS
*            DETECTLOCK
*          NODG
*            DIALECT"OS390"
*          NODIRECTIVES-IN-COMMENTS
*            DISPLAY"CONSOLE"
*            DISPSIGN"COMPAT"
*          NODOSVS
*          NODOTNET
*            DPCINSUBSCRIPT
*          NODYNAM
*          NOEARLY-RELEASE
*            EBCCOLSEQ"1"
*            ECHO
*          NOECHOALL
*          NOENTCOBOL
*          NOEOF1A
*            ERRFORMAT"1"
*            ERRLIST"VERBOSE"
*          NOERRQ
*          NOFASTINIT
*            FASTSORT
*            FCD3
*          NOFCDALIGN
*          NOFCDREG
*            FDCLEAR"1"
*          NOFILESHARE
*            FILETYPE"0"
*          NOFLAG
*            FLAGAS"E"
*          NOFLAGEUC
*          NOFLAGMIG
*          NOFLAGQ
*            FLAGSINEDIT
*          NOFLAGSTD
*            FOLDCALLNAME"UPPER"
*            FOLDCOPYNAME"UPPER"
*            FORM"60"
*            FP-ROUNDING"OS390"
*            HOSTARITHMETIC
*            HOSTCONTZERO
*            HOST-NUMCOMPARE"2"
*            HOST-NUMMOVE"2"

* Micro Focus COBOL                  V5.0 revision 000 29-Mar-23 16:17 Page   3
* prueba.co3
*            HOSTFD
*          NOHOSTRW
*          NOIBM-MS
*            IBMCOMP
*            IDENTIFIERLEN"30"
*            IDXFORMAT"0"
*          NOIGNOREEXEC
*          NOIL
*          NOILGEN
*            IMPLICITSCOPE
*            INDD"SYSIN 80 L"
*          NOIDYSRCPATH
*            INFORETURN"0"
*          NOINITCALL
*          NOINITPTR
*          NOINITBYTYPE
*            INT"prueba.int"
*            INTDATE"ANSI"
*            INTLEVEL"8"
*            IOCONV
*          NOISO2002
*          NOIXNLSKEY
*          NOIXNUMKEY
*          NOJVMGEN
*            KEYCHECK
*            KEYCOMPRESS"0"
*          NOLIBRARIAN
*          NOLINE-COUNT
*            LIST"prueba.lst"
*            LISTPATH""
*            LISTWIDTH"80"
*            LITVAL-SIZE"4"
*          NOLOCALSOURCEFORMAT
*            LOCKTYPE"0"
*          NOMAPNAME
*          NOMAINFRAMEFLOATINGPOINT
*          NOMAXERROR
*            METHODDEFAULT"REFERENCE"
*            MF"20"
*          NOMFCOMMENT
*          NOMFSYNC
*          NOMOVELENCHECK
*          NOMS
*          NOMVS
*            NATIONAL"1"
*            NATIVE"ASCII"
*          NONATIVEFLOATINGPOINT
*          NONCHAR
*          NONLS
*          NONLSCURRENCYLENGTH
*            NSYMBOL"DBCS"
*            NULLESCAPE
*          NOODOOSVS
*            ODOSLIDE
*          NOOLDBLANKLINE
*          NOOLDCOPY
*          NOOLDINDEX
*          NOOLDNEXTSENTENCE

* Micro Focus COBOL                  V5.0 revision 000 29-Mar-23 16:17 Page   4
* prueba.co3
*          NOOLDREADINTO
*          NOOLDSTRMIX
*            OOCTRL"-C-E-G+L-P+Q+R-S+W"
*          NOOPTIONAL-FILE
*            OS390
*            OSEXT""
*          NOOSVS
*          NOOUTDD
*          NOP64
*          NOPANVALET
*            PERFORM-TYPE"OS390"
*          NOPREPLIST
*          NOPREPROCESS
*            PRESERVECASE
*          NOPRINT-EXT
*          NOPROFILE
*          NOPROGID-COMMENT
*          NOPROGID-INT-NAME
*          NOPROTECT-LINKAGE
*            PROTOTYPE"RELAXED"
*            QUAL
*            QUALPROC
*          NOQUERY
*          NOQUOTE
*          NORAWLIST
*            RDW
*            RECMODE"OS390"
*          NOREENTRANT
*          NOREF
*          NOREFNO
*            REMAINDER"2"
*            REPLACE"NOKEEPSEQ"
*            REPORT-LINE"256"
*            RESEQ
*          NORETRYLOCK
*            REWRITE-LS
*          NORM
*            RTNCODE-SIZE"2"
*            RTNCODE-TYPE"COMP"
*          NORWHARDPAGE
*          NOSAA
*          NOSEG
*          NOSEQCHK
*            SEQUENTIAL"RECORD"
*          NOSERIAL
*            SETTING"COL"
*          NOSHAREOUTDD
*          NOSHOW-DIR
*            SIGN"ASCII"
*            SIGN"TRAILING"
*          NOSIGNDISCARD
*          NOSIGNFIXUP
*            SORTTYPE"DFSORT"
*          NOSOURCEENCODING
*            SOURCEFORMAT"FIXED"
*            SOURCETABSTOP"8"
*          NOSPZERO
*            SSRANGE"2"

* Micro Focus COBOL                  V5.0 revision 000 29-Mar-23 16:17 Page   5
* prueba.co3
*            STDERR
*            STICKY-LINKAGE"1"
*          NOSTICKY-PERFORM
*            SUPFF
*            SWITCHTYPE"1"
*            SYMBSTART"1"
*            SYSPUNCH"80"
*            TERMPAGE
*          NOTESTCOVER
*            TIME
*          NOTRACE
*          NOTRUNC
*          NOTRUNCCALLNAME
*          NOTRUNCCOPY
*            TRUNCINC"10"
*            UNICODE"NATIVE"
*          NOVERBOSE
*          NOVISUALSTUDIO
*          NOVSC2
*            WARNING"1"
*            WEBSERVER"CGI"
*          NOWRITELOCK
*          NOWRITETHRU
*          NOXMLGEN
*            XMLPARSE"XMLSS"
*          NOXOPEN
*          NOXREF
*            ZEROLENGTHFALSE
*          NOZEROSEQ
*            ZWB
     1 IDENTIFICATION DIVISION.
     2 program-id. Program1.
     3 data division.
     4 working-storage section.
     5 01 res-date-int pic 9(9) value 0.
     6 01 date8 pic 9(8) value 20230230.
     7 procedure division.
     8    compute res-date-int = FUNCTION INTEGER-OF-DATE (date8)
     9    display res-date-int
*1069-E**********                                                      (   0)**
**    Identifier in area A assumed procedure name. Period missing before it.
    10goback.
*1001-E                                                                (   5)**
**    Character other than *, D, /, -, or $ found in column 7. Blank assumed.
*1069-E*****                                                           (   5)**
**    Identifier in area A assumed procedure name. Period missing before it.
*
*
* Errors
* -Line- Col Code/severity Description
*      9  18 1069-E        Identifier in area A assumed procedure name. Period
*                          missing before it.
*     10   8 1001-E        Character other than *, D, /, -, or $ found in
*                          column 7. Blank assumed.
*     10  13 1069-E        Identifier in area A assumed procedure name. Period
*                          missing before it.
* Micro Focus COBOL                  V5.0 revision 000 Compiler
* Copyright (C) Micro Focus 1984-2020. All rights reserved.

* Micro Focus COBOL                  V5.0 revision 000 29-Mar-23 16:17 Page   6
* prueba.co3
*                                                        REF GKR-074500000AK
* Last message on page:    5
* Total Messages:     3
* Unrecoverable :     0                    Severe  :     0
* Errors        :     3                    Warnings:     0
* Informational :     0                    Flags   :     0
* Data:         880     Code:         297


No way... it fails.


Execution error : file 'prueba'
error code: 181, pc=0, call=1, seg=0
181 Invalid parameter error

Maybe some compilation directive? We use these ones:


* Micro Focus COBOL                  V5.0 revision 000 29-Mar-23 16:17 Page   1
* prueba.co3
* Setting: NOACCEPTREFRESH
*          NOACU
*          NOACUCOMMENT
*          NOACUSYNC
*          NOACU-UNDERSCORE
*            ADV
*            ALIGN"8 OPT"
*            ALPHASTART"1"
*            ALTER
*          NOAMODE
*            ANIM
*            ANS85
*            APOST
*            AREACHECK
*            ARITH"EXTEND"
*            ARITHMETIC"OS390"
*            ASSIGN"EXTERNAL"
*          NOASSIGN-PRINTER
*          NOAUTOLOCK
*          NOBELL
*            BINLIT"NUMERIC"
*            BOUND
*          NOBRIEF
*          NOBS2000
*            BWZSTAR
*            BYTEMODEMOVE
*            CALLFH"EXTFH"
*          NOCALLRECOVERY
*            CALLSORT"EXTSM"
*            CANCEL
*            CANCELLBR
*            CHANGEMESSAGE"10 W 1007 S 1014 S 1022 S 1082 W"
*            CHARSET"ASCII"
*            CHECKDIV"OS390"
*          NOCHECKREFMOD
*          NOCICS
*            CICS-CPY
*          NOCICSOPTIMIZE
*          NOCMPR2
*            COBFSTATCONV
*          NOCOBIDY
*          NOCOBOL370
*            COBOLDIR
*          NOCOMMANDLINELINKAGE
*          NOCOLLECTION
*          NOCOMP
*            COMP"BINARY"
*            COMP1"FLOAT"
*            COMP2"FLOAT"
*            COMP-5"2"
*            COMP-6"2"
*          NOCONFIRM
*          NOCONVERTRET
*            CONVSPACE
*            COPYEXT",cpy"
*            COPYLBR
*            COPYLIST
*            COPYLISTCOMMENT"7"

* Micro Focus COBOL                  V5.0 revision 000 29-Mar-23 16:17 Page   2
* prueba.co3
*            COPYSEARCH"MF"
*            CSI
*            CURRENCY-SIGN"36"
*            CURRENT-DATE"MMDDYY"
*          NODATA
*            DATACOMPRESS"0"
*          NODATA-CONTEXT
*          NODATAMAP
*            DATE
*            DBCHECK
*            DBCS"3"
*            DBCSSOSI"14""15"
*            DBSPACE
*            DE-EDIT"2"
*            DEFAULTBYTE"0"
*          NODEFAULTCALLS
*            DETECTLOCK
*          NODG
*            DIALECT"OS390"
*          NODIRECTIVES-IN-COMMENTS
*            DISPLAY"CONSOLE"
*            DISPSIGN"COMPAT"
*          NODOSVS
*          NODOTNET
*            DPCINSUBSCRIPT
*          NODYNAM
*          NOEARLY-RELEASE
*            EBCCOLSEQ"1"
*            ECHO
*          NOECHOALL
*          NOENTCOBOL
*          NOEOF1A
*            ERRFORMAT"1"
*            ERRLIST"VERBOSE"
*          NOERRQ
*          NOFASTINIT
*            FASTSORT
*            FCD3
*          NOFCDALIGN
*          NOFCDREG
*            FDCLEAR"1"
*          NOFILESHARE
*            FILETYPE"0"
*          NOFLAG
*            FLAGAS"E"
*          NOFLAGEUC
*          NOFLAGMIG
*          NOFLAGQ
*            FLAGSINEDIT
*          NOFLAGSTD
*            FOLDCALLNAME"UPPER"
*            FOLDCOPYNAME"UPPER"
*            FORM"60"
*            FP-ROUNDING"OS390"
*            HOSTARITHMETIC
*            HOSTCONTZERO
*            HOST-NUMCOMPARE"2"
*            HOST-NUMMOVE"2"

* Micro Focus COBOL                  V5.0 revision 000 29-Mar-23 16:17 Page   3
* prueba.co3
*            HOSTFD
*          NOHOSTRW
*          NOIBM-MS
*            IBMCOMP
*            IDENTIFIERLEN"30"
*            IDXFORMAT"0"
*          NOIGNOREEXEC
*          NOIL
*          NOILGEN
*            IMPLICITSCOPE
*            INDD"SYSIN 80 L"
*          NOIDYSRCPATH
*            INFORETURN"0"
*          NOINITCALL
*          NOINITPTR
*          NOINITBYTYPE
*            INT"prueba.int"
*            INTDATE"ANSI"
*            INTLEVEL"8"
*            IOCONV
*          NOISO2002
*          NOIXNLSKEY
*          NOIXNUMKEY
*          NOJVMGEN
*            KEYCHECK
*            KEYCOMPRESS"0"
*          NOLIBRARIAN
*          NOLINE-COUNT
*            LIST"prueba.lst"
*            LISTPATH""
*            LISTWIDTH"80"
*            LITVAL-SIZE"4"
*          NOLOCALSOURCEFORMAT
*            LOCKTYPE"0"
*          NOMAPNAME
*          NOMAINFRAMEFLOATINGPOINT
*          NOMAXERROR
*            METHODDEFAULT"REFERENCE"
*            MF"20"
*          NOMFCOMMENT
*          NOMFSYNC
*          NOMOVELENCHECK
*          NOMS
*          NOMVS
*            NATIONAL"1"
*            NATIVE"ASCII"
*          NONATIVEFLOATINGPOINT
*          NONCHAR
*          NONLS
*          NONLSCURRENCYLENGTH
*            NSYMBOL"DBCS"
*            NULLESCAPE
*          NOODOOSVS
*            ODOSLIDE
*          NOOLDBLANKLINE
*          NOOLDCOPY
*          NOOLDINDEX
*          NOOLDNEXTSENTENCE

* Micro Focus COBOL                  V5.0 revision 000 29-Mar-23 16:17 Page   4
* prueba.co3
*          NOOLDREADINTO
*          NOOLDSTRMIX
*            OOCTRL"-C-E-G+L-P+Q+R-S+W"
*          NOOPTIONAL-FILE
*            OS390
*            OSEXT""
*          NOOSVS
*          NOOUTDD
*          NOP64
*          NOPANVALET
*            PERFORM-TYPE"OS390"
*          NOPREPLIST
*          NOPREPROCESS
*            PRESERVECASE
*          NOPRINT-EXT
*          NOPROFILE
*          NOPROGID-COMMENT
*          NOPROGID-INT-NAME
*          NOPROTECT-LINKAGE
*            PROTOTYPE"RELAXED"
*            QUAL
*            QUALPROC
*          NOQUERY
*          NOQUOTE
*          NORAWLIST
*            RDW
*            RECMODE"OS390"
*          NOREENTRANT
*          NOREF
*          NOREFNO
*            REMAINDER"2"
*            REPLACE"NOKEEPSEQ"
*            REPORT-LINE"256"
*            RESEQ
*          NORETRYLOCK
*            REWRITE-LS
*          NORM
*            RTNCODE-SIZE"2"
*            RTNCODE-TYPE"COMP"
*          NORWHARDPAGE
*          NOSAA
*          NOSEG
*          NOSEQCHK
*            SEQUENTIAL"RECORD"
*          NOSERIAL
*            SETTING"COL"
*          NOSHAREOUTDD
*          NOSHOW-DIR
*            SIGN"ASCII"
*            SIGN"TRAILING"
*          NOSIGNDISCARD
*          NOSIGNFIXUP
*            SORTTYPE"DFSORT"
*          NOSOURCEENCODING
*            SOURCEFORMAT"FIXED"
*            SOURCETABSTOP"8"
*          NOSPZERO
*            SSRANGE"2"

* Micro Focus COBOL                  V5.0 revision 000 29-Mar-23 16:17 Page   5
* prueba.co3
*            STDERR
*            STICKY-LINKAGE"1"
*          NOSTICKY-PERFORM
*            SUPFF
*            SWITCHTYPE"1"
*            SYMBSTART"1"
*            SYSPUNCH"80"
*            TERMPAGE
*          NOTESTCOVER
*            TIME
*          NOTRACE
*          NOTRUNC
*          NOTRUNCCALLNAME
*          NOTRUNCCOPY
*            TRUNCINC"10"
*            UNICODE"NATIVE"
*          NOVERBOSE
*          NOVISUALSTUDIO
*          NOVSC2
*            WARNING"1"
*            WEBSERVER"CGI"
*          NOWRITELOCK
*          NOWRITETHRU
*          NOXMLGEN
*            XMLPARSE"XMLSS"
*          NOXOPEN
*          NOXREF
*            ZEROLENGTHFALSE
*          NOZEROSEQ
*            ZWB
     1 IDENTIFICATION DIVISION.
     2 program-id. Program1.
     3 data division.
     4 working-storage section.
     5 01 res-date-int pic 9(9) value 0.
     6 01 date8 pic 9(8) value 20230230.
     7 procedure division.
     8    compute res-date-int = FUNCTION INTEGER-OF-DATE (date8)
     9    display res-date-int
*1069-E**********                                                      (   0)**
**    Identifier in area A assumed procedure name. Period missing before it.
    10goback.
*1001-E                                                                (   5)**
**    Character other than *, D, /, -, or $ found in column 7. Blank assumed.
*1069-E*****                                                           (   5)**
**    Identifier in area A assumed procedure name. Period missing before it.
*
*
* Errors
* -Line- Col Code/severity Description
*      9  18 1069-E        Identifier in area A assumed procedure name. Period
*                          missing before it.
*     10   8 1001-E        Character other than *, D, /, -, or $ found in
*                          column 7. Blank assumed.
*     10  13 1069-E        Identifier in area A assumed procedure name. Period
*                          missing before it.
* Micro Focus COBOL                  V5.0 revision 000 Compiler
* Copyright (C) Micro Focus 1984-2020. All rights reserved.

* Micro Focus COBOL                  V5.0 revision 000 29-Mar-23 16:17 Page   6
* prueba.co3
*                                                        REF GKR-074500000AK
* Last message on page:    5
* Total Messages:     3
* Unrecoverable :     0                    Severe  :     0
* Errors        :     3                    Warnings:     0
* Informational :     0                    Flags   :     0
* Data:         880     Code:         297

Yep, it appears to be the DIALECT"OS390" directive. Without that the RTS error 181 does not occur.


Yep, it appears to be the DIALECT"OS390" directive. Without that the RTS error 181 does not occur.

Ok, we will have to find another way. 

Thank you very much for your help!