*COMDECK DMSADD1
  
  
      ******************************************************************
      * 
      * ADD-REC-NAME
      * 
      * ADD-REC-NAME READS THE FIRST RECORD OF THE GIVEN RECORD,
      * DIAGNOSING IF ENTRY IS MISSING.  THEN IT READS THE NAMES/ALIAS
      * CATEGORY AND OUTPUTS THE RECORD'S DMSNAME.  ALL COMMENTS IN THE 
      * NAMES CATEGORY ARE ALSO OUTPUT. 
      * 
      * INPUT:   RECORD-CATNAME   - CATNAME OF REQUESTED RECORD 
      *          RECORD-ALIAS     - ALIAS OF RECORD -- RESET TO ZERO
      *                             UPON RETURN 
      * 
      * OUTPUT:  FOUND-ENTITY     - "N" IF CATALOGUE ENTRY EMPTY OR 
      *                             FOR ENTITY OTHER THAN RECORD
  
       ADD-REC-NAME.
           PERFORM CLEAR-DATA-ENTRY THRU CLEAR-DATA-ENTRY-XIT.
           MOVE "N" TO FOUND-ENTITY.
  
      * READ FIRST RECORD OF RECORD ENTRY INTO "DATA-RECORD". 
           MOVE RECORD-CATNAME TO DATA-ENTRY-NAME.
           PERFORM MOVE-CAT-LINE THRU MOVE-CAT-LINE-XIT.
  
      * IF RECORD ENTRY MISSING, DIAGNOSE AND RETURN. 
           IF DATA-RETURN-CODE NOT = ZERO 
           THEN 
             MOVE IDX-500 TO MSG-IDX
             PERFORM ERROR-TYPE1 THRU ERROR-TYPE1-XIT 
             GO TO END-ADD-REC-NAME 
           END-IF 
  
      * IF ENTRY NOT FOR RECORD ENTITY, DIAGNOSE AND RETURN.
           IF DATA-HDR-ENT-ID NOT = ENT-ID-REC
           THEN 
             MOVE IDX-530 TO MSG-IDX
             PERFORM ERROR-TYPE1 THRU ERROR-TYPE1-XIT 
             GO TO END-ADD-REC-NAME 
           END-IF 
  
           MOVE "Y" TO FOUND-ENTITY.
  
      * IF RECORD IS KNOWN BY AN ALIAS, MOVE ITS ALIAS LINE INTO
      * "CAT-WORK". 
           IF RECORD-ALIAS NOT = ZERO 
             AND NOT = SPACES 
           THEN 
             MOVE CAT-NO-ALIAS TO DATA-ENTRY-CAT
             MOVE RECORD-ALIAS TO DATA-ENTRY-LINE 
             PERFORM MOVE-CAT-LINE THRU MOVE-CAT-LINE-XIT 
             MOVE ZERO TO DATA-ENTRY-LINE 
  
             IF DATA-RETURN-CODE NOT = ZERO 
               OR CAT-COMMENT = "*" 
             THEN 
               MOVE IDX-720 TO MSG-IDX
               MOVE "RECORD" TO MSG-NAME
               PERFORM ERROR-TYPE2 THRU ERROR-TYPE2-XIT 
               GO TO END-ADD-REC-NAME 
             END-IF 
  
      * SAVE THE ALIAS NAME.  IF NONE, ASSUME THE DMSNAME.
             IF ALY-SR-NAME NOT = SPACES
             THEN 
               MOVE ALY-SR-NAME (1 : 30) TO OUT-FIELD 
               GO TO OUT-REC-NAME 
             END-IF 
           END-IF 
  
      * IF RECORD NOT KNOWN BY AN ALIAS, MOVE RECORD'S NAMES CATEGORY 
      * TO "CAT-WORK".
           MOVE CAT-NO-NAMES TO DATA-ENTRY-CAT
           PERFORM MOVE-CAT-LINE THRU MOVE-CAT-LINE-XIT 
           PERFORM CHECK-COMMENTS THRU CHECK-COMMENTS-XIT 
  
      * IF NO DMSNAME, ASSUME THE CATNAME.
           IF DATA-RETURN-CODE NOT = ZERO 
             OR NAME-TOT-DMS = SPACES 
           THEN 
             MOVE RECORD-CATNAME (1 : 30) TO OUT-FIELD
           ELSE 
             MOVE NAME-TOT-DMS (1 : 30) TO OUT-FIELD
           END-IF 
  
      * OUTPUT REMAINING COMMENTS IN THIS CATEGORY IF ANY.
           PERFORM CHECK-COMMENTS THRU CHECK-COMMENTS-XIT 
  
       OUT-REC-NAME.
  
      * FIND LENGTH OF RECORD-NAME AND ADD IT TO OUTPUT LINE. 
           PERFORM FIND-LENGTH THRU FIND-LENGTH-XIT.
           PERFORM ADD-TO-STMT THRU STMT-XIT. 
  
       END-ADD-REC-NAME.
           MOVE SPACES TO RECORD-ALIAS. 
  
       ADD-REC-NAME-XIT.
           EXIT.
  
  
      ******************************************************************
      * 
      * ADD-GRP-NAME. 
      * 
      * ADD-GRP-NAME READS THE FIRST RECORD OF THE GIVEN GROUP, 
      * DIAGNOSING IF ENTRY IS MISSING.  THEN IT READS THE NAMES
      * CATEGORY AND OUTPUTS THE GROUP'S DMSNAME.  ALL COMMENTS IN THE
      * NAMES CATEGORY ARE ALSO OUTPUT. 
      * 
      * INPUT:   GROUP-CATNAME    - CATNAME OF THE REQUESTED GROUP
      * 
      * OUTPUT:  FOUND-ENTITY     - "N" IF CATALOGUE ENTRY EMPTY OR 
      *                             FOR ENTITY OTHER THAN GROUP 
  
       ADD-GRP-NAME.
           PERFORM CLEAR-DATA-ENTRY THRU CLEAR-DATA-ENTRY-XIT.
           MOVE "N" TO FOUND-ENTITY.
  
      * READ FIRST RECORD OF GROUP ENTRY INTO "DATA-RECORD".
           MOVE GROUP-CATNAME TO DATA-ENTRY-NAME. 
           PERFORM MOVE-CAT-LINE THRU MOVE-CAT-LINE-XIT.
  
      * IF GROUP ENTRY MISSING, DIAGNOSE AND RETURN.
           IF DATA-RETURN-CODE NOT = ZERO 
           THEN 
             MOVE IDX-500 TO MSG-IDX
             PERFORM ERROR-TYPE1 THRU ERROR-TYPE1-XIT 
             GO TO ADD-GRP-NAME-XIT 
           END-IF 
  
      * IF ENTRY NOT FOR GROUP ENTITY, DIAGNOSE AND RETURN. 
           IF DATA-HDR-ENT-ID NOT = ENT-ID-GROUP
           THEN 
             MOVE IDX-525 TO MSG-IDX
             PERFORM ERROR-TYPE1 THRU ERROR-TYPE1-XIT 
             GO TO ADD-GRP-NAME-XIT 
           END-IF 
  
           MOVE "Y" TO FOUND-ENTITY.
  
      * MOVE GROUP'S NAMES CATEGORY TO "CAT-WORK".
           MOVE CAT-NO-NAMES TO DATA-ENTRY-CAT. 
           PERFORM MOVE-CAT-LINE THRU MOVE-CAT-LINE-XIT.
           PERFORM CHECK-COMMENTS THRU CHECK-COMMENTS-XIT.
  
      * IF NO DMSNAME, ASSUME THE CATNAME.
           IF DATA-RETURN-CODE NOT = ZERO 
             OR NAME-GRP-DMS = SPACES 
           THEN 
             MOVE GROUP-CATNAME (1 : 30) TO OUT-FIELD 
           ELSE 
             MOVE NAME-GRP-DMS (1 : 30) TO OUT-FIELD
           END-IF 
  
      * OUTPUT REMAINING COMMENTS IN THIS CATEGORY IF ANY.
           PERFORM CHECK-COMMENTS THRU CHECK-COMMENTS-XIT.
  
      * FIND LENGTH OF GROUP-NAME AND ADD IT TO OUTPUT LINE.
           PERFORM FIND-LENGTH THRU FIND-LENGTH-XIT.
           PERFORM ADD-TO-STMT THRU STMT-XIT. 
  
       ADD-GRP-NAME-XIT.
           EXIT.
  
  
      ******************************************************************
      * 
      * ADD-ELEM-NAME 
      * 
      * ADD-ELEM-NAME READS THE FIRST RECORD OF THE GIVEN ELEMENT,
      * DIAGNOSING IF ENTRY IS MISSING.  THEN IT READS THE NAMES
      * CATEGORY AND OUTPUTS THE ELEMENT'S DMSNAME.  ALL COMMENTS IN
      * THE NAMES CATEGORY ARE ALSO OUTPUT. 
      * 
      * INPUT:   ELEM-CATNAME     - CATNAME OF REQUESTED ELEMENT
      *          ELEM-ALIAS       - ALIAS NUMBER OF ELEMENT -- RESET TO 
      *                             ZERO UPON RETURN
      * 
      * OUTPUT:  FOUND-ENTITY     - "N" IF CATALOGUE ENTRY EMPTY OR 
      *                             FOR ENTITY OTHER THAN ELEMENT 
      *          USE-ALIAS        - "Y" IF ALIAS CATEGORY TO BE USED FOR
      *                             ATTRIBUTES
  
       ADD-ELEM-NAME. 
           PERFORM CLEAR-DATA-ENTRY THRU CLEAR-DATA-ENTRY-XIT.
           MOVE "N" TO FOUND-ENTITY.
           MOVE "N" TO USE-ALIAS. 
  
      * READ FIRST RECORD OF ELEMENT ENTRY INTO "DATA-RECORD".
           MOVE ELEM-CATNAME TO DATA-ENTRY-NAME.
           PERFORM MOVE-CAT-LINE THRU MOVE-CAT-LINE-XIT.
  
      * IF ELEMENT ENTRY MISSING, DIAGNOSE AND RETURN.
           IF DATA-RETURN-CODE NOT = ZERO 
           THEN 
             MOVE IDX-500 TO MSG-IDX
             PERFORM ERROR-TYPE1 THRU ERROR-TYPE1-XIT 
             GO TO END-ADD-ELEM-NAME
           END-IF 
  
      * IF ENTRY NOT FOR ELEMENT ENTITY, DIAGNOSE AND RETURN. 
           IF DATA-HDR-ENT-ID NOT = ENT-ID-ELEM 
           THEN 
             MOVE IDX-525 TO MSG-IDX
             PERFORM ERROR-TYPE1 THRU ERROR-TYPE1-XIT 
             GO TO END-ADD-ELEM-NAME
           END-IF 
  
           MOVE "Y" TO FOUND-ENTITY.
  
      * IF ELEMENT IS KNOWN BY AN ALIAS, MOVE ITS ALIAS LINE INTO 
      * "CAT-WORK". 
           IF ELEM-ALIAS NOT = ZERO 
             AND NOT = SPACES 
           THEN 
             MOVE CAT-NO-ALIAS TO DATA-ENTRY-CAT
             MOVE ELEM-ALIAS TO DATA-ENTRY-LINE 
             PERFORM MOVE-CAT-LINE THRU MOVE-CAT-LINE-XIT 
             MOVE ZERO TO DATA-ENTRY-LINE 
  
             IF DATA-RETURN-CODE NOT = ZERO 
               OR CAT-COMMENT = "*" 
             THEN 
               MOVE IDX-720 TO MSG-IDX
               MOVE "ELEMENT" TO MSG-NAME 
               PERFORM ERROR-TYPE2 THRU ERROR-TYPE2-XIT 
               GO TO END-ADD-ELEM-NAME
             END-IF 
  
             MOVE "Y" TO USE-ALIAS
  
      * SAVE THE ALIAS NAME.  IF NONE, ASSUME THE DMSNAME.
             IF ALY-DATA-NAME NOT = SPACES
             THEN 
               MOVE ALY-DATA-NAME (1 : 30) TO OUT-FIELD 
               GO TO OUT-ELEM-NAME
             END-IF 
           END-IF 
  
      * IF ELEMENT IS NOT KNOWN BY AN ALIAS, MOVE ITS NAMES CATEGORY TO 
      * "CAT-WORK". 
           MOVE CAT-NO-NAMES TO DATA-ENTRY-CAT
           PERFORM MOVE-CAT-LINE THRU MOVE-CAT-LINE-XIT 
           PERFORM CHECK-COMMENTS THRU CHECK-COMMENTS-XIT 
  
      * IF NO DMSNAME, ASSUME THE CATNAME.
           IF DATA-RETURN-CODE NOT = ZERO 
             OR NAME-DMS = SPACES 
           THEN 
             MOVE ELEM-CATNAME (1 : 30) TO OUT-FIELD
           ELSE 
             MOVE NAME-DMS (1 : 30) TO OUT-FIELD
           END-IF 
  
      * OUTPUT REMAINING COMMENTS IN THIS CATEGORY IF ANY.
           PERFORM CHECK-COMMENTS THRU CHECK-COMMENTS-XIT 
  
       OUT-ELEM-NAME. 
  
      * FIND LENGTH OF ELEMENT-NAME AND ADD IT TO OUTPUT LINE.
           PERFORM FIND-LENGTH THRU FIND-LENGTH-XIT.
           PERFORM ADD-TO-STMT THRU STMT-XIT. 
  
       END-ADD-ELEM-NAME. 
           MOVE SPACES TO ELEM-ALIAS. 
  
       ADD-ELEM-NAME-XIT. 
           EXIT.
