Skip to main content

INTEGER-OF-DATE 181 error on invalid date

  • March 28, 2023
  • 6 replies
  • 0 views

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

6 replies

Chris Glazier
Forum|alt.badge.img+2

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.


  • March 28, 2023

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?


Chris Glazier
Forum|alt.badge.img+2

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.


  • March 29, 2023

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


Chris Glazier
Forum|alt.badge.img+2

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.


  • March 30, 2023

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!