[an error occurred while processing this directive]

HP OpenVMS Systems Documentation

Content starts here

HP COBOL
User Manual


Previous Contents Index


$ SCA LOAD PG1,PG2,PG3

This command loads your library with the modules contained in the data analysis files PG1.ANA, PG2.ANA, and PG3.ANA.
  • Once you have prepared the SCA library, you enter LSE to begin an SCA session. Within this context, the integration of LSE and SCA provides commands that you can use only within LSE.

    C.4.3 Starting and Terminating an LSE or an SCA Session

    To invoke LSE, issue the following command at the DCL prompt:


    $ LSEDIT USER.COB
    

    To end an LSE session, press CTRL/Z to get the LSE> prompt. If you wish to save modifications to your file, issue the EXIT command. If you do not wish to save the file or any modification to the file, issue the QUIT command.

    To invoke SCA from LSE, type the SCA command that you wish to execute at the LSE> prompt, as in the following syntax:


    LSE> command [parameter] [/qualifier...]
    

    To invoke SCA from the DCL command line for the execution of a single command, you can use the following syntax:


    $ SCA command [parameter] [/qualifier...]
    

    If you have several SCA commands to invoke, you might wish to use the SCA subsystem to enter commands, as in the following syntax:


    $ SCA
    SCA> command [parameter] [/qualifier...]
    

    Typing EXIT (or pressing CTRL/Z) ends an SCA subsystem session and returns you to the DCL level.

    C.4.4 Compiling from Within LSE

    To compile a completed COBOL program, issue the following command at the LSE prompt:


    LSE> COMPILE
    

    To compile a COBOL program that contains placeholders and design comments, include the following qualifiers with the previous command:


    LSE> COMPILE $/ANALYSIS_DATA
    

    The /ANALYSIS_DATA qualifier causes the compiler to generate a data analysis file containing source code analysis information and to provide this information to the SCA library.

    LSE provides several commands to help you review errors and examine your source code:

    Command Key Binding Function
         

    C.5 Using Oracle CDD/Repository (OpenVMS)

    Oracle CDD/Repository is an optional software product available under a separate license. The Oracle CDD/Repository product lets you maintain shareable data definitions, such as record and field definitions. Oracle CDD/Repository data definitions are organized hierarchically in much the same way that files are organized in directories and subdirectories. For example, a repository for defining personnel data might have separate directories for each employee type.

    Often, it is the job of a repository or data administrator to create repositories, define directory structures, and insert record and field definitions into the repository. In large organizations, many repositories can be linked together to form one logical repository. Once the repositories are established, the data definitions can be used throughout the organization by database administrators and application developers. If the paths are set up correctly, users can access definitions as if they were in a single repository.

    Descriptions of data definitions are entered into the repository in a special-purpose language called Common Dictionary Operator (CDO). (Oracle CDD/Repository also supports both the Common Data Dictionary (Version 3) and CDD/Plus (Version 4) interfaces for use by existing databases and applications.) Oracle CDD/Repository converts the data descriptions to an internal form---making them independent of the language used to access them---and inserts them into the repository.

    When you compile a COBOL program, Oracle CDD/Repository data definitions can be accessed by means of the COPY FROM DICTIONARY statement. If the attributes of the data definitions are consistent with HP COBOL requirements, the data definitions are included in the COBOL program. Oracle CDD/Repository data definitions, in the form of COBOL source code, can appear in source program listings if you specify the /LIST and /COPY_LIST qualifiers on the COBOL command line.

    Oracle CDD/Repository can also store information about the structure of a program, such as the compiled modules that go into making an object module, or the record and field definitions that are used by COBOL programs. If, for example, a record definition needs to change, you can analyze the impact that change will have on the various programs that use it. When the definition is changed, Oracle CDD/Repository notifies the modules that the record definition is out of date, and the program can be recompiled.

    To take advantage of dependency recording, you must:

    • Enable dependency recording by compiling your program with the /DEPENDENCY_DATA qualifier.
    • Direct the COBOL compiler to a repository or a compatibility dictionary in which to store the dependency information.

    C.5.1 Creating Record and Field Definitions

    The following example shows how you can use CDO to create a number of fields representing name and address information:


    DEFINE FIELD NAME
        DATATYPE IS TEXT
        SIZE IS 25 CHARACTERS.
    DEFINE FIELD COMPANY_NAME
        DATATYPE IS TEXT
        SIZE IS 25 CHARACTERS.
    DEFINE FIELD STREET
        DATATYPE IS TEXT
        SIZE IS 20 CHARACTERS.
    DEFINE FIELD CITY
        DATATYPE IS TEXT
        SIZE IS 20 CHARACTERS.
    DEFINE FIELD STATE
        DATATYPE IS TEXT
        SIZE IS 2 CHARACTERS.
    DEFINE FIELD ZIP
        DATATYPE IS TEXT
        SIZE IS 5 CHARACTERS.
    

    The fields can then be used to create records. The following example creates two records --- one for customer address information and one for employee address information:


    DEFINE RECORD CUSTOMER_ADDRESS_RECORD.
        NAME.
        COMPANY_NAME.
        STREET.
        STATE.
        ZIP.
    END RECORD.
    DEFINE RECORD EMPLOYEE_ADDRESS_RECORD.
        NAME.
        STREET.
        STATE.
        ZIP.
    END RECORD.
    

    C.5.2 Accessing Oracle CDD/Repository Definitions from HP COBOL Programs

    You access repository data definitions from a COBOL program using the COPY FROM DICTIONARY statement. At compile time, the record definition and its attributes are extracted from the designated repository. Then the compiler converts the extracted definition into a COBOL declaration. For example, the following COBOL statements access the customer and employee address records defined earlier. These definitions have been placed in the repository directory DEVICE:[VMS_DIRECTORY]SALES.


    IDENTIFICATION DIVISION.
    PROGRAM-ID. MASTER-FILE.
    DATA DIVISION.
    WORKING-STORAGE SECTION.
    COPY "DEVICE:[VMS_DIRECTORY]SALES.CUSTOMER_ADDRESS_RECORD" FROM DICTIONARY.
    COPY "DEVICE:[VMS_DIRECTORY]SALES.EMPLOYEE_ADDRESS_RECORD" FROM DICTIONARY.
       .
       .
       .
    

    If you compile this program with the /LIST and /COPY_LIST qualifiers, the source listing includes the data definition translated into a COBOL declaration, as shown in the following example:


           1 IDENTIFICATION DIVISION.
           2 PROGRAM-ID. MASTER-FILE.
           3 DATA DIVISION.
           4 WORKING-STORAGE SECTION.
           5 COPY "DEVICE:[VMS_DIRECTORY]SALES.CUSTOMER_ADDRESS_RECORD" FROM DICTIONARY.
    L      6 *
    L      7 *DEVICE:[VMS_DIRECTORY].SALES.CUSTOMER_ADDRESS_RECORD
    L      8 *
    L      9 01 CUSTOMER_ADDRESS_RECORD.
    L     10    02 NAME                 PIC X(25).
    L     11    02 COMPANY_NAME         PIC X(25).
    L     12    02 STREET               PIC X(20).
    L     13    02 CITY                 PIC X(20).
    L     14    02 STATE                PIC X(2).
    L     15    02 ZIP                  PIC X(5).
          16 COPY "NODE::DEVICE:[VMS_DIRECTORY]SALES.EMPLOYEE_ADDRESS_RECORD" FROM DICTIONARY.
    L     17 *
    L     18 *DEVICE:[VMS_DIRECTORY].SALES.EMPLOYEE_ADDRESS_RECORD
    L     19 *
    L     20 01 EMPLOYEE_ADDRESS_RECORD.
    L     21    02 NAME                 PIC X(25).
    L     22    02 STREET               PIC X(20).
    L     23    02 CITY                 PIC X(20).
    L     24    02 STATE                PIC X(2).
    L     25    02 ZIP                  PIC X(5).
      .
      .
      .
    

    For more information on the COPY FROM DICTIONARY statement, refer to the HP COBOL Reference Manual. For more information on the /LIST and /COPY_LIST command qualifiers, invoke the online help facility for COBOL at the operating system prompt.


    Previous Next Contents Index