*DECK CBCKSCM 
USETEXT TSBP2CM 
      PROC CBCKSCM; 
      BEGIN 
  
# EXTERNAL REFERENCES#
      XREF PROC CBDBPBD;               #ADD DBP S TO DBP LIST#
  
      CONTROL EJECT;
 #
*     LOOP THRU ALL ENTRIES IN THE SCHEMA 
 #
      SCITEMOFFSET = SCRECDITMPTR[0]; 
      IF SCITEMOFFSET EQ 0 THEN 
        RETURN; 
ITEMLOOP: 
# IF ENCODE/DECODE DBPS THEN CALL CBDBPBD#
      IF SCITMENCDPTR[SCITEMOFFSET] NQ 0 THEN 
        BEGIN 
        OM$ITMDBP = TRUE; 
        RECMAPPING = TRUE;   #MAPPING FOR RECORD# 
        INDEX = SCITEMOFFSET+SCITMENCDPTR[SCITEMOFFSET]-1;
ENCDLOOP: 
        INDEX = INDEX+1;
        CBDBPBD(SCITEMCODER[INDEX]);
        IF SCITEMCNEXT[INDEX] THEN GOTO ENCDLOOP; 
        END 
# IF A DBP CALL LIST THEN CALL CBDBPBD# 
      IF SCITEMONPTR[SCITEMOFFSET] NQ 0 THEN
        BEGIN 
        RECMAPPING = TRUE;   #MAPPING FOR RECORD# 
        OM$ITMDBP = TRUE; 
        INDEX = SCITEMOFFSET+SCITEMONPTR[SCITEMOFFSET]-1; 
CALLLIST: 
        INDEX = INDEX+1;
        CBDBPBD(SCITEMONCALL[INDEX]); 
        IF SCITEMNEXTON[INDEX] THEN GOTO CALLLIST;
        END 
# IF ACTUAL/VIRTUAL RESULT DBP THEN ADD IT TO LIST# 
      IF SCITMATVTP[SCITEMOFFSET] NQ 0 THEN 
        BEGIN 
        RECMAPPING = TRUE;   #MAPPING FOR RECORD# 
        OM$ITMDBP = TRUE; 
        CBDBPBD(SCITEMRESULT[SCITEMOFFSET+SCITMATVTP[SCITEMOFFSET]]); 
        END 
# IF CHECK DBP THEN ADD IT TO LIST# 
      IF SCITEMCHECKS[SCITEMOFFSET] NQ 0
      THEN
        BEGIN 
        IF SCITMCKVALUE[SCITEMOFFSET + SCITEMCHECKS[SCITEMOFFSET]]
        THEN
          BEGIN 
          RECMAPPING = TRUE;
          OM$CKDBP = TRUE;     # CHECK VALUE SUBCLAUSE SPECIFIED #
          END 
        IF SCITMCKDBP[SCITEMOFFSET+SCITEMCHECKS[SCITEMOFFSET]] THEN 
          BEGIN 
          RECMAPPING = TRUE;
          OM$ITMDBP = TRUE;     # CHECK WITH A DBP SUBCLAUSE SPECIFIED #
          CBDBPBD(SCITMCKPROC[SCITEMOFFSET+SCITEMCHECKS[SCITEMOFFSET]]);
          END 
        END 
# IF OCCURS DATABASE IDENTIFIER TIMES SET OMIT TABLE FLAG#
      IF SCITMDIMOCC[SCITEMOFFSET] THEN 
        OM$OCCRDBI = TRUE;
      IF SCITEMNXTPTR[SCITEMOFFSET] NQ 0 THEN 
        BEGIN 
        SCITEMOFFSET = SCITEMOFFSET+SCITEMNXTPTR[SCITEMOFFSET]; 
        GOTO ITEMLOOP;
        END 
      RETURN; 
      END 
      TERM; 
