*DECK CBCKOC
USETEXT TSBP2CM 
      PROC CBCKOC;
      BEGIN 
  
# EXTERNAL REFERENCES#
      XREF PROC CBERROR;       #ERROR HANDLER#
      XREF FUNC CBSCITM;     #FIND SCH ADDR GIVEN SBSCH ITEM ADDR#
  
      CONTROL EJECT;
# UPDATE TOTAL MAX OCCURS CELLS#
      SCOCCURS[CURRENT] 
        = SCOCCURS[CURRENT-1]*SCITMINTVAL[SCITEMOFFSET];
# IF OCCURS EXIST IN SUBSCHEMA# 
      IF SBITMOCCURP[SSITEMOFFSET] NQ 0 THEN
        BEGIN 
        INDEX = SSITEMOFFSET+SBITMOCCURP[SSITEMOFFSET]; 
        SSOCCURS[CURRENT] 
          = SSOCCURS[CURRENT-1]*SBITMHIBNDS[INDEX]; 
# **ERROR IF MAX OCCURS GREATER IN SUBSCHEMA THAN IN SHCEMA#
        IF SSOCCURS[CURRENT] GR SCOCCURS[CURRENT] 
        OR SBITMHIBNDS[INDEX] GR SCITMINTVAL[SCITEMOFFSET]
        THEN
          CBERROR(301,TRUE);
# **IF OCCURS IN SUBSCHEMA NOT SAME AS SCHEMA THEN NOT IDENTICAL# 
        IF SBITMHIBNDS[INDEX] NQ SCITMINTVAL[SCITEMOFFSET] THEN 
          IDENTICAL[CURRENT] = FALSE; 
# **ERROR IF DEPENDING ON ITEM NOT THE SAME IN SCHEMA AND SUBSCHEMA#
        IF SBITMDEPNDON[INDEX] THEN 
          BEGIN 
# ****GET ADDRESS OF SS ITEM DEPENDENT UPON#
          ADDRESS = SBITMOCCLDNA[INDEX+1];
# ****GET ADDRESS OF SCHEMA ITEM ENTRY# 
          ADDRESS = CBSCITM(ADDRESS); 
# ****CHECK FOR ERROR#
          IF ADDRESS LS 0 
          OR SCITMORDNUM[ADDRESS] NQ SCITMDEPORDL[SCITEMOFFSET] 
          THEN
           CBERROR(309,TRUE); 
          IF SCITEMCLASS[ADDRESS] NQ SCITEMCLASS[SCITEMOFFSET] THEN 
            OM$DATACONV = TRUE; # IF THE DATA TYPE OF THE DEPENDING ON #
                             # ITEM DIFFERS FROM THE REPEATING ITEM    #
                             # CONVERSION IS NEEDED.                   #
          END 
        END 
      ELSE
        BEGIN                #OCCURS DO NOT EXIST IN SUBSCHEMA# 
        SSOCCURS[CURRENT] = SSOCCURS[CURRENT-1];
# **IF OCCURS IN SCHEMA WITHOUT OCCURS IN SUBSCHEMA THEN NOT IDENTICAL# 
        IF SCITMINTVAL[SCITEMOFFSET] NQ 1 THEN
          IDENTICAL[CURRENT] = FALSE; 
        END 
      END 
      TERM; 
