Page 1 of 1

Subscript exceeded size of Array

PostPosted: Tue Jul 14, 2009 9:51 pm
by srikarg
Hi I have program like this. Pls find below variable declarations & Para in which i am getting eror.

please help me out. TQ.

variable declarations:

LT-OCCD-TABLE            PIC X(29)   VALUE               
                             'OCCD-CALC-ARR'.           
                                                         
LT-DATE-CONV-ERR         PIC X(128)   VALUE             
'ERROR CALLING DATE CONVERSION MODULE CUMDT001'.         
LT-FETCH-ERROR           PIC X(128)  VALUE               
         'FETCH ON CR_DR_ACTIVITY FAILED'.               
LT-DA-SELECT-ERROR       PIC X(128)  VALUE               
         'SQL SELECT FAILED ON DB_ACTIVITY TABLE'.       
LT-BA-SELECT-ERROR       PIC X(128)  VALUE               
         'SQL SELECT FAILED ON BILL_ACCT TABLE  '.       
LT-CH-SELECT-ERROR       PIC X(128)  VALUE               
         'SQL SELECT FAILED ON COLL_HIST TABLE  '.       
LT-DC-SELECT-ERROR       PIC X(128)  VALUE               
         'SQL SELECT FAILED ON DT_CONST TABLE   '.       
LT-DYC-SELECT-ERROR      PIC X(128)  VALUE               
         'SQL SELECT FAILED ON DT_YEARLY_CONST TABLE'.   
LT-TABLE-SIZE-ERROR      PIC X(128)  VALUE               
         'A SUBSCRIPT EXCEEDED THE SIZE OF THE ARRAY'.   
LT-INVALID-TRANS         PIC X(128)  VALUE               
'AN INVALID TRANSACTION TYPE WAS FOUND ON THE OCTH REC'.
LT-VSAM-ERROR            PIC X(128)  VALUE               
'A VSAM ERROR OCCURED ON FILE UCCMST. CHECK VSAM STATUS'.
                                                         
LT-INTERNAL              PIC X(10)  VALUE 'INTERNAL'.   
                                                         
LT-OPEN                  PIC X(10)  VALUE 'OPEN'.       
LT-READ                  PIC X(10)  VALUE 'READ'.       


Paragraph in which I am getting error:


*    Para A9620     ---------------------------------------------       
*    THIS MOVES THE FIELDS FROM WS-PERIOD-OF-DEBT ARRAY INTO 
*    THE OCCD ARRAY USING WS-PERIOD-SFX-2(WS-PERIOD-SUB) AS   
*    SUBSCRIPT.                                               
*                                                             
**************************************************************
*                                                             
                                                             
     MOVE WS-PERIOD-SFX-2(WS-PERIOD-SUB) TO WS-OCCD-SUB.     
                                                             
     IF WS-OCCD-SUB > WS-OCCD-TABLE-SIZE                     
        MOVE  'A9620'         TO ERR-KY-PARAGRPH-NO           
        MOVE  LT-OCCD-TABLE   TO ERR-NM-FILE                 
        PERFORM A9740-TABLE-SIZE-ERROR.                       
                                                             
     MOVE WS-PERIOD-BILLACCT(WS-PERIOD-SUB) TO               
          OCCD-BILLACCT-NUMBER(WS-OCCD-SUB).                 
                                                             
     MOVE WS-PERIOD-SFX-1(WS-PERIOD-SUB) TO                   
          OCCD-BILLACCT-SUFFIX-1(WS-OCCD-SUB).               
                                                             
     MOVE WS-PERIOD-SFX-2(WS-PERIOD-SUB) TO                   
          OCCD-BILLACCT-SUFFIX-2(WS-OCCD-SUB).               
                                                             
     MOVE WS-PERIOD-START-DATE(WS-PERIOD-SUB) TO             
          OCCD-PERIOD-START-DATE(WS-OCCD-SUB).               
                                                             
     MOVE WS-PERIOD-END-DATE(WS-PERIOD-SUB) TO               
                                                               
      MOVE WS-PERIOD-TRAN-FLAG(WS-PERIOD-SUB) TO               
           OCCD-PERIOD-TRAN-FLAG(WS-OCCD-SUB).                 
                                                               
      ADD 1 TO WS-PERIOD-SUB.                                   
      EJECT                                                     
  A9700-NON-FATAL-ERROR.       



Para A9740:

    EJECT                                                       
 A9740-TABLE-SIZE-ERROR.                                         
*****************************************************************
*                                                               *
*                A 9 7 4 0  -  TABLE SIZE ERROR                 *
*              ----------------------------------               *
*    THIS DEALS WITH SUBSCRIPTS OUTSIDE THE RANGE OF THE ARRAY  *
*                                                               *
*****************************************************************
                                                                 
     MOVE LT-PGM-ID              TO ERR-KY-PGM-ID.               
     MOVE LT-INTERNAL            TO ERR-AR-TYP-ACCESS.           
     MOVE LT-TABLE-SIZE-ERROR    TO ERR-TX-RMKS-128.             
     MOVE LT-SPECIAL-ERROR       TO ERR-CD-TYPE-ERR.             
                                                                 
     MOVE LT-WRITE-ERROR         TO ERR-CD-ERR-ACT.               
     CALL 'CUBCO002' USING SQLCA ERR-ERROR-RECORD.               
                                                                 
     MOVE LT-CLOSE-FILES         TO ERR-CD-ERR-ACT.               
     CALL 'CUBCO002' USING SQLCA ERR-ERROR-RECORD.               
                                                                 
     SET OCCD-TABLE-SIZE-ERROR   TO TRUE.                         
     GOBACK.                                                     
     EJECT                                                       



Please Note: if u need any details pls approache me.. pls help me out . Tq

Re: Subscript exceeded size of Array

PostPosted: Wed Jul 15, 2009 1:40 am
by dick scherrer
Hello and welcome to the forum,

It appears that the value in the "suffix" is larger than the maximum value. . .

You have picked a few bits of code to post (in the future, please use the "Code" tag for readability), but they don't show any of the problem. The arrays are not posted. The subscript fields are not posted. The invalid value encountered is not posted.

Also, ther error routine does not appear to show the invalid value? Suggest this be modified and then the value causing the error be posted as part of your problem description.

Re: Subscript exceeded size of Array

PostPosted: Wed Jul 15, 2009 12:20 pm
by srikarg
Sorry I didn't get u.. can u please me more clear what should i need to do ? Tq

Re: Subscript exceeded size of Array

PostPosted: Thu Jul 16, 2009 1:47 am
by dick scherrer
Hello,

can u please me more clear what should i need to do
What you chose to post does not provide anything for us to use to help you. . .

What value caused the code to execute A9740-TABLE-SIZE-ERROR? The error procedure needs to be changed to show the actual problem, not just where it occurred.

You didn't post anything about the arrays or the subscripts.

With nothing to work with, we cannot offer mush help.