IDMS Copybook Support Considerations

For best results when using the Visual Studio Code (VSCode) IDMS copybook support, review the information that is presented in this topic. The topic describes the scope of the IDMS copybook support and includes important information about naming and working with IDMS copybook files.
All the benefits of COBOL copybooks apply to IDMS copybooks (such as validation, autocomplete, go to definition, to name a few). To get the best experience with the extension, review the following guidelines and tips for using the tool:
  • COPY IDMS statements are treated like standard COBOL copybook statements. For example, COPY IDMS SUBSCHEMA-CTRL is the equivalent of COPY SUBSCHEMA-CTRL.
  • The IDMS RECORDS WITHIN WORKING-STORAGE clause on the PROTOCOL section cannot be used to generate or reference the subschema information. Instead you must manually code a COPY IDMS SUBSCHEMA-DESCRIPTION in the WORKING-STORAGE/LINKAGE section.
  • IDMS entities of different types must have unique names. For example, a module and a record cannot have the same name (such as "employee") when explicitly copied, because the VSCode extension cannot distinguish between them.
  • When an optional level number that is specified on a COPY IDMS statement in the DATA DIVISION is copied in at different levels, the IDE uses only the extracted copybook levels.
  • COPY IDMS MAP-CONTROL
    <mapname>
    and COPY IDMS MAP
    <mapname>
    cannot be coded in the same program. Use COPY IDMS MAPS.
  • IDMS copybooks in the PROCEDURE DIVISION generate procedural code that may not be resolved in an integrated development environment (IDE), which results in the IDE flagging these statements as errors. To avoid getting errors, you can do one of the following things:
    • Not generate these statements for use in the IDE
    • Edit the statements to modify the generated code (for example, remove the reference to external references)
  • In the IDE, there is no way to distinguish between versions of IDMS copybooks that have the same name but are used for different programs, such as SUBSCHEMA-RECORDS, MAPS. When editing multiple programs with the same COPY IDMS statement, ensure that you point to the correct IDMS copybook or directory, because only the copybook name is used.
  • IDMS DML statements that are included in the procedural code that is retrieved with a COPY IDMS statement are expanded by the precompiler and commented out. The resulting IDMS copybook, therefore, does not get the benefit of the validation done by the extension because it is commented out.
  • No verification is done on the VERSION and REDEFINES keywords. The
    <entity-name>
    only is used to identify the IDMS copybook.