



















                         EDMS to I-D-S/II



                 COBOL DATA MANIPULATION LANGUAGE



                        CONVERSION PROGRAM





                          USER'S MANUAL



                               and



                        MAINTENANCE GUIDE



                          August 3, 1979

                        TABLE OF CONTENTS









1.0  System Overview.....................................     ....



2.0  System Flow............................................



2.1  Input..................................................



 2.1.1 Run Time Options..................................



 2.1.2 COBOL-74 Source...................................



 2.1.3 EDMS Schema File..................................



 2.1.4 EDMS Subschema File...............................



2.2  Internal Files.........................................



 2.2.1 Paragraph File....................................



 2.2.2 Cross Reference File..............................



 2.2.3 Sort File.........................................



2.3  Output.................................................



2.3.1 Converted COBOL-74 Source..............................



2.3.2 Converted Source Report................................



2.3.3 Cross Reference List...................................



2.4      Sample Run Deck (EDML_BA)..............................





3.0      DATA DIVISION Conversion..............................



3.1  The SUBSCHEMA SECTION.................................



3.2  77 Levels in Working Storage...........................



3.3  The COPY Statement.....................................



4.0  PROCEDURE DIVISION.....................................



4.1  * CHANGED..............................................



4.2  * MANUAL CONVERSION REF TO 9.9.9.......................



 4.2.1 FINDS..................................................



 4.2.2 FINDSI.................................................



 4.2.3 FINDSEQ................................................



 4.2.4 FINDLAST...............................................



 4.2.5 DELEAUT................................................



 4.2.6 FINDX..................................................



 4.2.7 Moving a value < 3 to REF-CODE.........................



 4.2.8 FINDP..................................................



 4.2.9 ERR-CODE...............................................



4.3  * NO I-D-S/II EQUIVALENT...............................



 4.3.1 CCB Keywords...........................................



 4.3.2 RESETERR...............................................



5.0  Declaratives Section...................................



 5.0.1 DMSABORT and DMSLOCK...................................



 5.0.2 Seterr.................................................



 5.0.3 DMSRETRN...............................................



6.0  Program Maintenance....................................



6.1  Program Error Codes....................................



 6.1.1 Error in Fixit.........................................



 6.1.2 Error in Finding Schemahd..............................



 6.1.3 Schema Name Missing....................................



 6.1.4 Sub Schema Name Missing................................



 6.1.5 CCB Name Missing.......................................



 6.1.6 Decl-Table Overflow....................................



 6.1.7 Branch Table Error.....................................



 6.1.8 Namegp Error...........................................



 6.1.9 Word Table Overflow....................................



6.2  EDMS Verb Table........................................



6.3  COBOL Verbs............................................



6.4  Error Code Translation Table...........................



6.5  DMSABORT and DMSLOCK Error Codes.......................



6.6  METASYMBOL Subroutines.................................

1.0  SYSTEM OVERVIEW.



  The conversion of a CP-V COBOL program using  EDMS  to  a

 CP-6 COBOL-74 program with imbedded I-D-S/II DML is the second

 step of a two step process.  In the first step, the CP-V COBOL

 program  must  be  converted to CP-6 COBOL-74 using the "COBOL

 CONVERSION PROGRAM."  Second, the  output  from  that  process

 must  be  input  for  the  "EDMS  COBOL  TO  I-D-S/II COBOL-74

 CONVERSION PROGRAM."  This  document  deals  with  the  latter

 conversion.   Simply  put,  this conversion process takes EDMS

 DML hosted by the SIGMA  COBOL-68  and  converts  as  much  as

 possible  to  I-D-S/II  DML  hosted  by the L66 COBOL-74 under

 programs,  however,  the  vast majority of programs using EDMS

 are in COBOL.   For  this  reason  it  was  decided  that  the

 conversion  program  would translate only COBOL programs using

 EDMS.



  Contrary to the recommendations of  the  Data  Base  Task

 Group  of  the Committee on Data Systems Languages, the DML in

 EDMS is not integrated into the host language.   All  function

 references  are  made via an ENTER verb in COBOL-68.  That is,

 all interactions with the Data Base  Manager  (DBM)  are  made

 with  subroutine  calls  and  not  directly  with  a  verb  as

 recommended.  Communication between  the  DBM  and  the  COBOL

 program is established through the Communication Control Block

 (CCB), an area in WORKING-STORAGE, defined with the COBOL copy

 file   produced   by  the  File  Definition  Processor  (FDP).

 I-D-S/II, on the other hand, has a  DML  integrated  into  the

 COBOL  language.   The function references are COBOL verbs and

 the  CCB  in  WORKING-STORAGE  is  replaced  by  a  SUB-SCHEMA

 SECTION.



 Each  component of EDMS and I-D-S/II is well defined; however,

 the mapping from one to the other is not.   Because  of  this,

 the  degree  to  which  the  program  is  translated is highly

 dependent upon the complexity of the program.  The  translator

 is  written  in  COBOL-68  and  uses EDMS to search the user's

 schema for data needed in the translation.  For  that  reason,

 it  runs  only on CP-V.  The objective of the translator is to

 minimize the amount of manual conversion required of the  user

 during  the  conversion  process.   Great care is taken in the

 translation not to change the logic of the program.



2.0  SYSTEM FLOW

2.1  INPUT



 2.1.1  Run Time Options    (F:DATACARDS)



  The following run time options are required  and  can  be

  input in any order.



  SCHEMA (schema file name)

  SUBSCHEMA (subschema file name)

  CCB (COBOL copy file name for the CCB)



 2.1.2  COBOL-74 Source    (F:INFILE)



  The  output  from the COBOL conversion program is used as

  input to the EDMS conversion process.  This can be either

  a card deck or file.



 2.1.3  EDMS Schema File    (F:SCHE, F:DB01)



  The schema file for the EDMS data base used by the  COBOL

  program being converted.





 2.1.4  EDMS "SUBSCHEM" File   (F:SSCH)



  The  schema  is actually a data base itself.  "SUBSCHEM,"

  provided with the conversion package,  is  the  subschema

  that  enables the conversion program to access the user's

  schema.  This is necessary in order  to  determine  group

  numbers, differentiate between groups and sets, etc.





2.2  TEMPORARY FILES



 2.2.1  Paragraph File    (F:PARGFILE)



  A  first  pass  is  made  through  the source in order to

  generate a file containing the names and locations of all

  procedure names in the program.  This is needed to handle

  movement of code to the DECLARATIVES SECTION.



 2.2.2  Cross Reference File   (F:XREFFILE)



  As the conversion proceeds  a  cross  reference  file  is

  built.   At the end of the program, a listing is given of

  all the EDMS DML that was converted and  the  approximate

  line number where this occurred.



 2.2.3  Sort File



  An internal sort to sort the cross reference file by EDMS

  name.



2.3  OUTPUT



 2.3.1  Converted COBOL-74 Source  (F:OUTFILE)



  The  converted  source is output into a consecutive file.

  The user takes the responsibility of of "keying" it if so

  desired.



 2.3.2  Converted Source Report  (F:PRNTFILE)



  As the  program  is  converted,  a  report  is  generated

  showing  the  converted  code  and  giving  informational

  messages on the right hand side of the report.



 2.3.3  Cross Reference List   (F:PRNTFILE)



  The cross reference list is similar to  the  COBOL  cross

  reference  list.   On  the left is the EDMS word.  To the

  right is a line number referencing the  converted  source

  report.

2.4  SAMPLE JOB CONTROL CARDS



 !JOB

 !LIMIT (CORE,30),(TIME,5)

 !SET F:PRNTFILE LP

 !SET F:INFILE DC/COBOL-input-source

 !SET F:OUTFILE DC/converted-source

 !SET F:SSCH DC/SUBSCHEM

 !SET F:DB01 DC/schema-file

 !SET F:SCHE DC/schema-file

 !SET F:PARGFILE DC/PARGNAME

 !SET F:XREFFILE DC/CROSSREF

 !EDML_RU.

 !DATA

 SCHEMA schema-name

 SUBSCHEMA subschema-name

 CCB communication-control-block-name





 DCB DEFINITIONS



 F:PRNTFILE - All reports are written through this DCB

 F:INFILE   - The COBOL-EDMS source to be converted

 F:OUTFILE  -  The converted COBOL I-D-S/II source

 F:SSCH  - The file "SUBSCHEM", supplied in the conversion package

 F:DB01  - The user's schema file for the program to be converted

 F:SCHE  - The user's schema file for the program to be converted

 F:PARGFILE -  The file "PARGNAME"

 F:XREFILE  - The file "CROSSREF"



2.5  SAMPLE COMPILE AND LOAD DECK



!JOB

!LIMIT (CORE,30),(TIME,8)

!.  THIS JOB COMPILES AND LOADS THE EDMS COBOL DML CONVERTER.

!SET F:SCHE DP/EDML-SCHE

!SET F:SSCH DP/EDML-SUB

!SET M:SI DC/EDML_SI5

!EDMSFDP

!SET M:SI DC/EDML_SI1

!SET M:BO DC/EDML_OU1

!COBOL LS,XREF,BO,MAPS

!SET M:CI DC/EDML_CI2

!SET M:BO DC/EDML_OU2

!METASYM CI,BO,LO,DC

!SET M:CI DC/EDML_CI3

!SET M:BO DC/EDML_OU3

!METASYM CI,BO,LO,DC

!SET M:CI DC/EDML_SI4

!SET M:BO DC/EDML_OU4

!METASYM CI,BO,LO,DC

!LOAD (EF,(EDML_OU1),(EDML_OU2),(EDML_OU3),(EDML_OU4)),;

!    (LDEF),(UNSAT,(COBLIB),(EDMSLIB),(:P2)),;

!    (PERM),(LMN,EDML_RU),(MAP)

 !JOB

3.0  DATA DIVISION CONVERSION



 This section of the convertor makes the following changes to

 the DATA DIVISION in the COBOL program.



3.1  The SUB-SCHEMA SECTION is inserted immediately after the

  DATA DIVISION statement.



  SUB-SCHEMA SECTION.

  DB subschema-name WITHIN schema-name.



3.2  The following 77 levels are generated immediately following the

  WORKING-STORAGE SECTION statement.



  77  IDS-SS-DATA-NAME   PIC X(30) VALUE "subschema-name".

 It should be stated that a data base parameter labeled REF-CODE

 is assumed to be present in the subschema.

 The EDMS schema converter will create the REF-CODE data base parameter

 as long as at least one record has DIRECT location mode.



3.3   The  COPY  statement  which references the copy file for the

 EDMS  CCB in WORKING-STORAGE is deleted  from  the  translated

 source.    It  should  be noted that if the copy file has been

 edited,  for   instance  with  the  COPY...  REPLACING   verb,

 not be able to make  the   proper  translation  in  procedural

 statements in certain cases.  One  example is:



  02  GRP-NO.

      88 PERSON-GRP VALUE 202.

      88  ADDRESS-GRP VALUE 202.





 where  a  condition-name  is  used  to  check  for  owner when

 traversing a set.



      ENTER FINDN, ADDR-SET.

      IF PERSON-GRP, GO TO NEXT-PARG.





4.0  PROCEDURE DIVISION



 The procedure division translation is divided into sections

 according to the conversion required.  The informational message printed

 in the converted source report is used as the section heading.





4.1  * CHANGED



 The convertor changes the following EDMS code to I-D-S/II code.



   EDMS     |  I-D-S/II

________________________________________________________________________________



CALL OPENRET, REF-CODE, area-name-1 |  CALL "IDSNOSHARE" USING IDS-SS-DATA-NAME

 [,area-name-2] ...    |   READY realm-name-1 [,realm-name-2]...

        |   ; USAGE-MODE IS RETRIEVAL
        |

CALL OPRETSHD, REF-CODE, area-name-1 |  CALL "IDSSHARE" USING IDS-SS-DATA-NAME

 [,area-name-2]...     |   READY realm-name [,realm-name-2]...

        |   ; USAGE-MODE IS RETRIEVAL
        |

CALL OPENUPD, REF-CODE, area-name-1 |  CALL "IDSNOSHARE" USING IDS-SS-DATA-NAME

 [,area-name-2]...     |   READY realm-name-1 [,realm-name-2]...

        |   ; USAGE-MODE IS UPDATE
        |

CALL OPUPDSHD, REF-CODE, area-name-1 |  CALL "IDSSHARE" USING IDS-SS-DATA-NAME

 [,area-name-2]...     |   READY realm-name-1 [,realm-name-2]...

        |   ; USAGE-MODE IS UPDATE
        |

 [area-name-2]...     |   READY realm-name-1 [,realm-name-2]...

        |   ; USAGE-MODE IS LOAD
        |

CALL STORE, group-name    |  STORE record-name

        |

CALL DELETE, group-name    |  FIND CURRENT record-name CALL "IDSLOGDEL"

        |   ERASE record-name ALL MEMBERS

        |

CALL REMOVE, group-name    |  FIND CURRENT record-name CALL "IDSPHYDEL"

        |   ERASE record-name ALL MEMBERS

        |

CALL DELETSEL, group-name   |  FIND CURRENT record-name CALL "IDSLOGDEL"

        |   ERASE record-name

        |

CALL REMOVSEL, group-name   |  FIND CURRENT record-name CALL "IDSPHYDEL"

        |   ERASE record-name

        |

CALL MODIFY, group-name    |  FIND CURRENT record-name

        |   MODIFY record-name

        |

CALL MODIFY, group-name, item-name |  FIND CURRENT record-name

 [,item-name-2]...     |   MODIFY item-name [,item-name-2]...

CALL RELINK, group-name, set-name  |  FIND CURRENT record-name

        |   MODIFY record-name ONLY set-name

        |   MEMBERSHIP

        |

CALL LINK, group-name, set-name  |  FIND CURRENT record-name

        |   CONNECT record-name TO set-name

        |

CALL DELINK, group-name, set-name  |  FIND CURRENT record-name

        |   DISCONNECT record-name FROM set-name

        |

CALL FINDC, group-name    |  FIND CURRENT record-name

        |

CALL FINDM, set-name    |  FIND OWNER; WITHIN set-name

        |

CALL HEAD, set-name    |  FIND OWNER; WITHIN set-name,

        |   RETAINING CURRENCY FOR SETS GET

        |

CALL FINDD      |  FIND; DB-KEY IS REF-CODE

        |

        |

CALL GET, group-name    |  FIND CURRENT record-name GET record-name

        |

CALL GET, group-name, item-name-1  |  FIND CURRENT record-name

[,item-name-2]...     |   GET item-name-1 [,item-name-2]...

        |

CALL CLOSEDB      |  FINISH

        |

CALL CLOSAREA, area-name-1   |  FINISH realm-name-1

 [,area-name-2]...     |   [,realm-name-2]...

        |

CALL DMSCHKPT      |  CALL "IDSCHECK" USING IDS-SS-DATA-NAME

        |

CALL DMSRLSE      |  CALL "IDSCHECK" USING IDS-SS-DATA-NAME

        |

CALL DMSRLSE, recovery-name   |  CALL "IDSDBROL" USING IDS-SS-DATA-NAME

        |

CALL DMSSTATS      |  CALL "IDSSTATSON" USING IDS-SS-DATA-NAME

        |

CALL ENDSTATS      |  CALL "IDSSTATSOFF" USING IDS-SS-DATA-NAME

        |

CALL RPTSTATS      |  CALL "IDSRPTSTATS" USING IDS-SS-DATA-NAME

        |

CALL DMSTRACE      |  CALL "IDSTRACEON" USING IDS-SS-DATA-NAME

        |

CALL ENDTRACE      |  CALL "IDSTRACEOFF" USING IDS-SS-DATA-NAME

        |

CALL FINDG, group-name    |  *** for location mode DIRECT ***

        |  FIND record-name; DB-KEY IS key-name

        |

        |  *** for location mode CALC ***

        |  FIND ANY record-name

        |

        |  *** for location mode VIA SET ***

        |  FIND record-name; WITHIN set-name

        |   USING identifier

        |

        |  *** for location mode INDEXED ***

        |  FIND record-name; USING key-name

        |

CALL FINDN, group-name, procedure-name |  FIND NEXT record-name USING key-name

        |   IF DB-STATUS IS = "0502100"

        |   GO TO procedure-name

        |

        |

CALL FINDP, set-name    |  FIND PRIOR; WITHIN set-name

        |

CALL FINDFRST, group-name   |  FIND FIRST record-name USING key-name

        |   where "key-name" is obtained from

        |   the sub-schema

        |

IF ERR-CODE (condition)    |   IF DB-STATUS (condition)

        |

IF ERR-CODE EQUAL (NOT EQUAL)  |  The translation is table driven (see

 numeric value     |   Maintenance Section).  If the proper translation

        |   depends on the last EDMS verb called and a

        |   procedure name or PERFORM statement intervenes then

        |   manual conversion is required.

        |

IF GRP-NO EQUAL (NOT EQUAL)   |  If one of these two statements, which check

 owner-group-number    |   for end of set follows FIND NEXT; WITHIN

        |   set-name or FIND PRIOR; WITHIN set-name

IF SET-CURR EQUALS (NOT EQUAL)  |   without intervening procedure names or

 SET-OWNR      |   PERFORM statements or other data base calls

        |   with the exception of GET, they will be

        |   translated:

        |

        |   IF DB-STATUS = "0502100"

        |

        |   This may logically be incorrect in combination

        |   with an IF ERR-CODE translation since in EDMS

        |   ERROR-CODE and GRP-NO are separate items, eg.

        |

        |   ENTER FINDN, SETNAME.

        |   IF ERR-CODE NOT = 0, GO TO X.

        |   IF GRP-NO = 10, GO TO Y.

        |

        |   Translates to:

        |

        |   FIND NEXT; WITHIN SETNAME.

        |   IF DB-STATUS NOT = 0, GO TO X.

        |   IF DB-STATUS = "0502100", GO TO Y.

        |   The program will never check for end of

        |

4.2  * MANUAL CONVERSION





 The following EDMS verbs cannot  be  translated  automatically

 and  require manual conversion.  For a detailed description of

 the EDMS verbs refer to the  XEROX  EXTENDED  DATA  MANAGEMENT

 SYSTEM (903012) manual.



 4.2.1  CALL FINDS, procedure-name



  A suggested conversion would be to initialize REF-CODE to

  the value used in FRST-REF.  Then



   PERFORM FINDS VARYING INDEX-CODE FROM FRST-REF BY 1

    UNTIL INDEX-CODE > LAST-REF.



  FINDS.

   MOVE INDEX-CODE TO DIRECT-REFERENCE.

   SET REF-CODE TO DIRECT-REFERENCE.

   FIND; DB-KEY IS REF-CODE.

   IF DB-STATUS = 0 PERFORM GOT-RECORD.

 4.2.2  CALL FINDSI, procedure-name



  The  same type of procedure can be generated as described

  in 4.2.1.  The difference  being  LAST-REF  contains  the

  number of occurrences desired.  For example:



   PERFORM FINDSI VARYING INDEX-CODE FROM FRST-REF BY 1

    UNTIL LAST-REF = 0 OR DB-STATUS = "02100".



  FINDSI.

   MOVE INDEX-CODE TO DIRECT-REFERENCE.

   SET REF-CODE TO DIRECT-REFERENCE.

   FIND; DB-KEY IS REF-CODE.

   IF DB-STATUS = 0

    PERFORM GOT-RECORD.

   SUBTRACT 1 FROM LAST-REF.





 4.2.3  CALL FINDSEQ, group-name, item-name, procedure-name

  The  suggested  conversion is to retrieve all occurrences

  and use an internal sort on the  item[s]  desired  making

  sure  to  carry the refcode in the sort record.  Retrieve

  each occurrence using FIND; DB-KEY IS REF-CODE.



 4.2.4  CALL FINDLAST, group-name



  The conversion is:





 4.2.5  CALL DELEAUT, group-name



  The suggested conversion is to DISCONNECT all members  of

  manual  sets  and  then  to  use DELETE for the automatic

  members.

 4.2.6  CALL FINDX, group-name, item-name, procedure-name

  The suggested conversion is to:



   FIND  record-name  USING   key-name   to   establish

   currency  then  FIND NEXT record-name USING key-name

   to find the duplicates.  If DB-STATUS = "02100"  the

   end  of  the realm has been reached.  If DB-STATUS =

   "02401" there are no more  duplicates.   If  FINDDs'

   follow they must be deleted.



 4.2.7  If a value of less than three is moved to REF-CODE , it

   generally  would  be  a  negative  value.   This, in

   conjunction with a data base close, releases back to

   the monitor any common dynamic memory used  for  the

   subschema and data buffers.  The conversion is:



    CALL "IDSDBREL" USING IDS-SS-DATA-NAME



 4.2.8  CALL FINDP, group-name, procedure-name



  The conversion for this is:



   FIND PRIOR record-name ;WITHIN realm-name

   IF DB-STATUS NOT = 0 GO TO procedure-name





 4.2.9   The  conversion  of  IF  ERR-CODE  (condition) must be

  handled manually if   it is not an  EQUAL  or  NOT  EQUAL

  condition   or   if  any  procedure  names  or    PERFORM

  statements intervene between the  IF  statement  and  the

  last   EDMS call.





 4.2.10  MISCELLANEOUS CONVERSION



  One of the following conditions has occurred.



  o On  searching the EDMS error-code table no match was

   found.



  o On FINDFRST, FINDG, FINDN, or FINDP the group or the

   set named as the argument is incorrect or  does  not

   exist.



4.3  * NO I-D-S/II EQUIVALENT



 4.3.1   The  following  CCB  keywords are flagged as having no

  I-D-S/II   equivalent:





   AREA-NO FRST-REF PAGE-NO SET-GRP STAT-ACC

   GRP-NO PASSWORD SET-NEXT STAT-CTL STAT-NEXT

   ERR-NO LAST-REF SET-OWNR  STAT-DEL STAT-PRIR

   ERR-REF LINE-NUMB SET-CURR SET-PRIR STAT-HEAD

   STAT-INS



 4.3.2   CALL  RESETERR  is  flagged  as  having  no   I-D-S/II

  equivalent.



5.0  DECLARATIVES SECTION



 Calls to SETERR, DMSABORT, DMSLOCK, and DMSRETRN all reference

 procedures  in  the  body  of  the program.  In I-D-S/II these

 procedures  must  be  in  the  DECLARATIVES  SECTION.   If   a

 DECLARATIVES  SECTION  does  not  exist one is created.  Since

 both forward and backward references to  procedure  names  are

 possible all procedure names and their line numbers are placed

 in  a  temporary  file  (F:PARGFILE).   SETERR,  DMSABORT, and

 DMSLOCK procedure names  and  error  codes  are  saved  in  an

 internal  table and the statements are deleted from the source

 and  noted  in  the  Converted  Source  Report.    The   named

 procedures  are  moved  to  the  DECLARATIVES SECTION with the

 appropriate variation of the USE statement.  The section  name

 is  the  paragraph  name  preceded by an 'X'.  If DMSABORT and

 DMSLOCK are used more than once in the program with  different

 procedure  names,  only the last referenced procedure is moved

 to  the  DECLARATIVES  SECTION.   I-D-S/II  does   not   allow

 different  paragraph  names  to be specified on each call.  If

 this occurs,  the user must handle the situation manually.







  USE FOR DB-EXCEPTION ON "error-code"



 5.0.2  SETERR



  USE FOR DB-EXCEPTION ON OTHER or USE FOR DB-EXCEPTION  ON

  error-codes specified by the program and

   translated in the error code table



  However,  if  more  than one translation is possible (eg.

  VALUE 17) the program will use the first  I-D-S/II  value

  in  the  table.   This may or may not be the correct one.

  See 6.4 ERROR-CODE TRANSLATION TABLE.



 5.0.3  DMSRETRN



  If DMSRETRN is at the end of the procedure, it is deleted

  from the source.  If it is in the body of the  procedure,

  a  GO  TO  [label] statement is generated in the place of

  DMSRETRN  and  a  label  generated  at  the  end  of  the

  procedure in the form:



   DMSRETRN1. EXIT.

6.0  PROGRAM MAINTENANCE



 Where  possible  the  conversion program is table driven.  The

 COBOL verbs, EDMS verbs, and error translations are in  tables

 as are most of the conversion processes.  Since the conversion

 program is written in COBOL it is fairly straightforward as to

 which  tables  are  used  for  which  purposes,  consequently,

 control of the conversion through modification of  the  tables

 is an easy task.







6.1  PROGRAM ERROR CODES





 6.1.1  *** FIXIT ERROR



  An error occurred calling the subroutine FIXIT.





 6.1.2  *** ERROR FINDING SCHEMAHD



  The  file  called  "SUBSCHEM"  has  not  been assigned to

  F:SSCH.



 6.1.3  *** SCHEMA NAME MISSING



  The SCHEMA name card has not been found.   It  either  is

  error.



 6.1.4  *** SUBSCHEMA NAME MISSING



  The SUBSCHEMA name card has not been found.  It either is

  missing or SUBSCHEMA is misspelled.



 6.1.5  *** CCB NAME MISSING



  The CCB name card has  not  been  found.   It  either  is

  missing or CCB is misspelled.



 6.1.6  DECL-TABLE OVERFLOW



  DECL-TABLE,  SETERR-TABLE,  LINE-SKIP-TABLE  are internal

  tables which hold information for conversion of DMSABORT,

  DMSLOCK, and SETERR.  If one of the above  errors  should

  occur, the table can be enlarged by changing the value of



   01  DECL-MAX                    COMP VALUE 20.



  and  changing the OCCURS number in the following items to

  the same VALUE.



   DECL-ITEMS

   DECL-ERRS

   SETERR-ITEMS

   SKIP-LINES





 6.1.7  BRANCH TABLE ERROR



  If an  EDMS  verb  is  encountered  the  program  vectors

  through  a branch table depending upon an index.  If that

  index gets out of the range of the branch table the error

  is generated.



 6.1.8  NAMEGP ERROR



  The group name or set name in a FINDFRST, FINDG, FINDN or

  FINDP prior is not defined in the schema;  therefore  the

  call cannot be translated.













 6.1.9  WORD TABLE OVERFLOW



 The  basic  operation in the program is to "unstring" a source

 line into the WORD-TABLE.  All conversion is subsequently done

 in this table.  Because of the need to occasionally read ahead

 to finish converting a phrase  there  may  be  more  than  one

 source  line in the table.  The table size is initially set at

 100 entries but can be changed up or down  as  needed.   After

 all  conversion is completed the table is "strung" into one or

 more converted source lines.



 The conversion process may encounter a  situation  where  more

 source  lines  are  being  unstrung  into  WORD-TABLE  than is

 possible.  This  might  happen  if  multiple  EDMS  verbs  are

 encountered  on  one  line  and  a  read-ahead  is required to

 complete conversion of a phrase but on the next line  read  is

 another  set  of EDMS verbs that require another read-ahead to

 finish  conversion,  etc.   In  this  case  expansion  of  the

 WORD-TABLE  will solve the problem.  To change the size of the

 table locate:



   02  WORD-TABLE OCCURS 100 TIMES.





   02  TABLE-MAX        COMP    VALUE 100.



  and change them to the same value.  Recompile and  reload

 the program.

6.2  EDMS VERB TABLE



  CLOSAREA CLOSEDB CREATE DELETAUT

  DELETE DELETSEL DELINK DMSABORT

  DMSCHKPT  DMSLOCK DMSRETRN DMSRLSE

  DMSSTATS DMSTRACE ENDSTATS ENDTRACE

  FINDC FINDD FINDDUP FINDFRST

  FINDG FINDLAST FINDM FINDN

  FINDP FINDS FINDSEQ FINDSI

  FINDX GET  HEAD  LINK

  MODIFY OPENRET OPENUPD OPRETSHD

  OPUPDSHD RELINK REMOVE REMOVSEL

  RESETERR RPTSTATS SETERR STORE



6.3  COBOL VERBS



  ACCEPT ADD  ALTER CALL

  CANCEL CLOSE COMPUTE COPY

  DISPLAY DIVIDE ENTER EXAMINE

  EXHIBIT EXIT  GENERATE GO

  IF  INCLUDE INITIATE INSPECT

  MOVE  MULTIPLY NOTE  OPEN

  PERFORM READ  READY RELEASE

  RESET RETURN SEARCH SEEK

  SET  SORT  STOP  STRING

  SUBTRACT TERMINATE TRACE UNSTRING

  USE  WRITE





 The last EDMS call code is signified by:



  M - Modify     D - Delink

  R - All forms of Open & Create G - Get

  S - Store      F - All forms of Find & Head

  C - Link      E - All forms of Delete & Remove



   LAST

 EDMS  EDMS  I-D-S/II

 VALUE CALL  VALUE  MESSAGE

 _____ ____  _____  _______



 1       no equivalent

 2       no equivalent

 3    "0502400"

 4    "0502400"

 5    "0503900"

 6    "0507100"

 7    "0580210"

 8    "0580210"

 9    "0503900"

 10    "0502200"

 11    "0502200"

 12    "0503100"

 13    "0407200"

 14    "0208100"

 15    "0308300"

 16    "1580230"

 17  M  "1105200"

   S  "1505200"

 18    "0502400"

 19    "1390100"

 20       unknown

 30       no equivalent

 31  G  "0803100"

   S  "1503100"

 32  G  "0803100"

   M  "1103100"

   E  "0403100"

   C  "0203100"

   D  "0303100"

   F  "0503100"

 33    "0503100"

 34    "0503100"

 35    "0503100"

 36    "0502400"

 37       no equivalent

 38    "1105200"

 39  M  "1109200"

   S   "1509200"

 40    "4000000"  legal in I-D-S/II

 41  F  "0509100"

     "0570200"

   C  "0270200"

   M  "1170200"

   S  "1570200"

 42  F  "0509100"

     "0570200"



   C  "0270200"

   M  "1170200"

   S  "1570200"

 43        no equivalent

 44        no equivalent

 45        no equivalent

 46        unknown

 47  C  "0270200"

   F  "0570200"

   M  "1170200"

   S  "1570200"

 48    "1390100"

 49    "0504200"

 50        no equivalent

 51        no equivalent

 52        no equivalent

 53        no equivalent

 61        no equivalent

 62        no equivalent

 63  C  "0208200"

   G  "0308200"

 64        no equivalent

 65        no equivalent

 66        no equivalent

 67        no equivalent

 68        no equivalent

 69        no equivalent

 70        no equivalent

 71        no equivalent

 72        no equivalent

 73        no equivalent

 80        no equivalent

 81        no equivalent

 82        no equivalent

 83        no equivalent

 84        no equivalent

 85        no equivalent

 86        no equivalent

 91        no equivalent

 92        no equivalent

 93        no equivalent

 94        no equivalent

 95        no equivalent

 96        no equivalent

 97  F  "0580300"

   E  "0480300"

   M  "1180300"

   R  "1380300"

   S  "1580300"

 98        no equivalent

 99  F  "0580300"

   E  "0480300"

   M  "1180300"

   R  "1380300"

   S  "1580300"

 100  F  "0580300"

   E  "0480300"

   M  "1180300"

   R  "1380300"

   S  "1580300"

 101  F  "0580300"

   E  "0480300"

   M  "1180300"

   R  "1380300"

   S  "1580300"

 121        no equivalent

 122        no epuivalent

 123    "0308300"

 124    "0202300"

 125    "0502400"

 126        no equivalent

 127    "0502400"

 128    "0502400"

 129        no equivalent

 131        no equivalent

 133        no equivalent

 135        no equivalent

 136        no equivalent

 137        no equivalent

6.5  DMSABORT and DMSLOCK ERROR CODES



 Presently  the  error  codes for DMSABORT and DMSLOCK have not

 been determined and dummy codes "4000000"  and  "4000001"  are

 used.   To  insert the correct codes, change the VALUE clauses

 of:



  DMSABORT-ERRCODE  PIC X(7) VALUE '4000000'.

  DMSLOCK-ERRCODE  PIC X(7) VALUE '4000001'.



6.6  METASYMBOL SUBROUTINES The METASYMBOL subroutines  FIXIT  and

 FIXSCHMA (provided in the data base schema conversion package)

 are  used  by  the  DML  conversion  program  so that the EDMS

 subject schema may be accessed.  Information from the  subject

 schema  is  needed  to  convert  the  FINDN, FINDP, FINDG, and

 FINDFRST function references.   END

