Previous Topic: PROCESSNext Topic: QFILE


PROGRAM

PROGRAM statements are used to document user application programs and CA ADS Batch transactions.

More information: For more information, refer to the CA ADS User Guide for special considerations that apply to defining programs for use in the CA ADS Batch environment.

Optional PROGRAM clauses:

Note: It is recommended that you maintain DC OPTIONS for PROGRAMs using the system generation compiler, not the DDDL compiler. If a system generation component is processed by the DDDL compiler, only dictionary security is checked, not system generation security. For more information on using the system generation compiler, see CA IDMS System Generation Guide.

When a DML program requests activity logging, the DML precompiler updates the dictionary. The following program options are established and/or updated:

Syntax

PROGRAM Statement

►►─┬─ ADD ─────┬─ PROgram name is program-name ───────────────────────────────►
   ├─ MODify ──┤
   ├─ REPlace ─┤
   └─ DELete ──┘

 ►─┬────────────────────────────────────────────┬─────────────────────────────►
   └─ Version is ─┬─ version-number ──────────┬─┘
                  └─┬─────────┬─┬───────────┬─┘
                    └─ NEXt ──┘ ├─ HIGhest ─┤
                                └─ LOWest ──┘

 ►─┬────────────────────────────────────────────────────────┬─────────────────►
   └─┬────────────┬─ by user-id ─┬────────────────────────┬─┘
     ├─ PREpared ─┤              └─ PASsword is password ─┘
     └─ REVised ──┘
   ┌────────────────────────────────────────────────────────────────────────┐
 ►─▼┬──────────────────────────────────────────────────────────────────────┬┴─►
    └─ SAMe as PROgram program-name ─┬───────────────────────────────────┬─┘
                                     └─ Version is ─┬─ version-number ─┬─┘
                                                    ├─ HIGhest ────────┤
                                                    └─ LOWest ─────────┘

   ┌──────────────────────────────────────────────────────────────────────────
 ►─▼─┬────────────────────────────────────────────────────────────────────────►─
     └─ COPy ─┬─ ALL COMments TYPes ─┬─ FROm program program-name ────────────
              ├─ COMments ───────────┤
              ├─ DEFinition ─────────┤
              ├─ REMarks ────────────┤
              ├─ ATTributes ─────────┤
              ├─ USErs ──────────────┤
              ├─ PROgrams CALled ────┤
              ├─ PROgrams ───────────┤
              ├─ MAPs ───────────────┤
              ├─ FILes ──────────────┤
              ├─ RECords COPied ─────┤
              ├─ ENTRY points ───────┤
              ├─ MODULes ────────────┤
              ├─ PROcesses ──────────┤
              ├─ comment-key ────────┤
              └─ relational-key ─────┘
  ───────────────────────────────────────────┐
─►────────────────────────────────────────┬──┴────────────────────────────────►
  ─┬────────────────────────────────────┬─┘
   └─ Version is ─┬─ version-number ──┬─┘
                  ├─ HIGhest ─────────┤
                  └─ LOWest ──────────┘

 ►─┬────────────────────────────────────────────────────────────────────────┬─►
   └ NEW NAMe is new-program-name ─┬──────────────────────────────────────┬─┘
                                   └ Version is ─┬─ version-number ─────┬─┘
                                                 └─ NEXt ─┬─ HIGhest ─┬─┘
                                                          └─ LOWest ──┘
 ►─┬───────────────────────────────────────────┬──────────────────────────────►
   └─ NEW Version is ─┬─ new-version-number ─┬─┘
                      └─ NEXt ─┬─ HIGhest ─┬─┘
                               └─ LOWest ──┘

 ►─┬────────────────────────────────────────────┬─────────────────────────────►
   └─ program DEScription is description-text ──┘

 ►─┬──────────────────────────────────────────┬───────────────────────────────►
   └─ ESTimated LINes are source-line-count ──┘
   ┌─────────────────────────────────────────────────────────────────┐
 ►─▼─┬─────────────────────────────────────────────────────────────┬─┴────────►
     └─┬─ INClude ◄ ─┬─ USEr is user-id ──┬──────────────────────┬─┘
       └─ EXClude ───┘                    └─ user-specification ─┘

(for complete user-specification syntax, see USER clause)

 ►─┬──────────────────────────────────────────────────────┬───────────────────►
   └─ PUBlic access is ─┬───────────┬─ for ─┬─ ALL ◄ ───┬─┘
                        └─ ALLOwed ─┘       ├─ NONe ────┤
                                            ├─ UPDate ──┤
                                            ├─ MODify ──┤
                                            ├─ REPlace ─┤
                                            ├─ DELete ──┤
                                            └─ DISplay ─┘
   ┌──────────────────────────────────────────────────────────────────────────
 ►─▼─┬────────────────────────────────────────────────────────────────────────►─
     └─┬─ INClude ◄ ──┬─ WIThin ─┬─ SYStem ────┬─ system-name ────────────────
       └─ EXClude ────┘          └─ SUBSYstem ─┘

  ───────────────────────────────────────────────────────────────────┐
─►────────────────────────────────────────────────────────────────┬──┴────────►
  ─┬───────────────────────────────────┬─┬──────────────────────┬─┘
   └─ Version is ─┬─ version-number ─┬─┘ └─ TEXt is user-text ──┘
                  ├─ HIGhest ────────┤
                  └─ LOWest ─────────┘

 ►─┬──────────────────────────────────────────────────────────────────────────►─
   │                                      ┌──────────────────────────────────
   └─┬─ INClude ◄ ─┬─ PROgram CALled is ( ▼ subprogram-name ─────────────────
     └─ EXClude ───┘
─►────────────────────────────────────────────────────────────────────────┬───►
  ─────────────────────────────────────────────────────────────────┐      │
  ──┬───────────────────────────────────┬──┬─────────────────────┬─┴─ ) ──┘
    └─ Version is ─┬─ version-number ─┬─┘  └─ TEXt is user-text ─┘
                   ├─ HIGhest ────────┤
                   └─ LOWest ─────────┘

   ┌──────────────────────────────────────────────────────────────────────────
 ►─▼─┬────────────────────────────────────────────────────────────────────────►─
     └┬ INClude ◄ ┬ ENTRy point name is entry-point-name ─────────────────────
      └ EXClude -─┘

  ───────────────────────────┐
─►─────────────────────────┬─┴────────────────────────────────────────────────►
  ─┬─────────────────────┬─┘
   └─ TEXt is user-text ─┘
   ┌──────────────────────────────────────────────────────────────────────────
 ►─▼─┬────────────────────────────────────────────────────────────────────────►─
     └─┬─ INClude ◄ ─┬─ MODule USEd is ───────────────────────────────────────
       └─ EXClude ───┘

────────────────────────────────────────────────────────────────────────────
─►────────────────────────────────────────────────────────────────────────────►─
      ┌───────────────────────────────────────────────────────────────────────
  - ( ▼ module-name ─┬──────────────────────────────┬┬──────────────────────┬─
                     └ Version is ┬ version-number ┬┘└ LANguage is language ┘
                                  ├ HIGhest ───────┤
                                  └ LOWest ────────┘

  ──────────────────────────────────┐
─►────────────────────────────────┬─┴─────────────────────────────────────────►
  ──────────────────────────┐     │
  ───┬─────────────────────┬▼─ ) ─┘
     └─ TEXt is user-text ─┘
   ┌──────────────────────────────────────────────────────────────────────────
 ►─▼─┬────────────────────────────────────────────────────────────────────────►─
     └─┬─ INClude ◄ ─┬─ MAP USEd is map-name ─────────────────────────────────
       └─ EXClude ───┘

  ─────────────────────────────────────────────────────────────────────┐
─►──────────────────────────────────────────────────────────────────┬──┴──────►
  ──┬───────────────────────────────────┬──┬──────────────────────┬─┘
    └─ Version is ─┬─ version-number ─┬─┘  └─ TEXt is user-text ──┘
                   ├─ HIGhest ────────┤
                   └─ LOWest ─────────┘

   ┌──────────────────────────────────────────────────────────────────────────
 ►─▼─┬────────────────────────────────────────────────────────────────────────►─
     └─┬─ INClude ◄ ─┬─ RECord COPied is record-synonym-name ─────────────────
       └─ EXClude ───┘
  ────────────────────────────────────────────────────────────────────────────
─►────────────────────────────────────────────────────────────────────────────►─
  ──┬───────────────────────────────────┬──┬──────────────────────┬───────────
    └─ Version is ─┬─ version-number ─┬─┘  └─ TEXt is user-text ──┘
                   ├─ HIGhest ────────┤
                   └─ LOWest ─────────┘

  ────────────────────────────────────────┐
─►─────────────────────────────────────┬──┴───────────────────────────────────►
  ──┬───────────────────────────────┬──┘
    └─ VIEw ID is view-identifier ──┘
   ┌──────────────────────────────────────────────────────────────────────────
 ►─▼─┬────────────────────────────────────────────────────────────────────────►─
     └─┬─ INClude ◄ ─┬─ RECord USEd is record-synonym-name ───────────────────
       └─ EXClude ───┘

  ────────────────────────────────────────────────────────────────────────────
─►────────────────────────────────────────────────────────────────────────────►─
  ──┬───────────────────────────────────┬─────────────────────────────────────
    └─ Version is ─┬─ version-number ─┬─┘
                   ├─ HIGhest ────────┤
                   └─ LOWest ─────────┘

  ─────────────────────────────────────────────────────────────────────────┐
─►───────────────────────────────────────────────────────────────────────┬─┴──►
  ─┬─────────────────────────────────┬┬────────────────────────────────┬─┘
   └ REFerenced function-count times ┘└ MODified function-count times ─┘
   ┌──────────────────────────────────────────────────────────────────────────
 ►─▼─┬────────────────────────────────────────────────────────────────────────►─
     └─┬─ INClude ◄ ─┬─ ELement is element-synonym-name ──────────────────────
       └─ EXClude ───┘

  ────────────────────────────────────────────────────────────────────────────
─►────────────────────────────────────────────────────────────────────────────►─
  ─┬────────────────────────────────────────────────────────────────────────┬─
   ├─ OF ELement primary-element-name ─┬───────────────────────────────────┬┤
   │                                   └─ Version is ─┬─ version-number ─┬─┘│
   │                                                  ├─ HIGhest ────────┤  │
   │                                                  └─ LOWest ─────────┘  │
   └─ OF RECord record-name ─┬───────────────────────────────────┬──────────┘
                             └─ Version is ─┬─ version-number ─┬─┘
                                            ├─ HIGhest ────────┤
                                            └─ LOWest ─────────┘
  ─────────────────────────────────────────────────────────────────────────┐
─►───────────────────────────────────────────────────────────────────────┬─┴──►
  ─┬─────────────────────────────────┬┬────────────────────────────────┬─┘
   └ REFerenced function-count times ┘└ MODified function-count times ─┘

   ┌──────────────────────────────────────────────────────────────────────────
 ►─▼─┬────────────────────────────────────────────────────────────────────────►─
     └─┬─ INClude ◄ ─┬─┬──────────┬─ FILe is file-name ───────────────────────
       └─ EXClude ───┘ ├─ INPut ──┤
                       ├─ I-O ────┤
                       ├─ OUTput ─┤
                       └─ EXTend ─┘
  ────────────────────────────────────────────────────────────────────────────
─►────────────────────────────────────────────────────────────────────────────►─
  ─┬───────────────────────────────────┬─┬─────────────────────┬──────────────
   └─ Version is ─┬─ version-number ─┬─┘ └─ open-count times ──┘
                  ├─ HIGhest ────────┤
                  └─ LOWest ─────────┘

  ─────────────────────────────────────────┐
─►──────────────────────────────────────┬──┴──────────────────────────────────►
  ─┬──────────────────────────────────┬─┘
   └─ EXTernal NAMe is ─┬─ ddname ──┬─┘
                        └─ file-id ─┘

 ►─┬──────────────────────────────────────────────────────────────────────────►─
   └─┬─ INClude ◄ ─┬─ SUBSChema is subschema-name ────────────────────────────
     └─ EXClude ───┘
─►──────────────────────────────────────────────────────────────────┬─────────►
  ─── of SCHema schema-name ──┬───────────────────────────────────┬─┘
                              └─ Version is ─┬─ version-number ─┬─┘
                                             ├─ HIGhest ────────┤
                                             └─ LOWest ─────────┘

   ┌──────────────────────────────────────────────────────────────────────────
 ►─▼─┬────────────────────────────────────────────────────────────────────────►─
     └─┬─ INClude ◄ ─┬─ AREa area-name ───────────────────────────────────────
       └─ EXClude ───┘
  ──────────────────────────────────────────────────────────────────────────┐
─►────────────────────────────────────────────────────────────────────────┬─┴─►
  ─┬─ OBJect OF ──┬─ FINd ────────┬───────────┬─┬────────────────────────┬┘
   │              ├─ FINd KEEp ───┤           │ └─ function-count times ─┘
   │              ├─ KEEp ────────┤           │
   │              ├─ OBTain ──────┤           │
   │              └─ OBTain KEEp ─┘           │
   ├─ REAdied FOR ─┬─ RETrieval ───────────┬──┤
   │               ├─ PROtected RETrieval ─┤  │
   │               ├─ EXClusive RETrieval ─┤  │
   │               ├─ UPDate ──────────────┤  │
   │               ├─ PROtected UPDate ────┤  │
   │               └─ EXClusive UPDate ────┘  │
   └─ CURrency ACCepted ──────────────────────┘
   ┌──────────────────────────────────────────────────────────────────────────
 ►─▼─┬────────────────────────────────────────────────────────────────────────►─
     └─┬─ INClude ◄ ─┬─ RECord record-name ───────────────────────────────────
       └─ EXClude ───┘

  ───────────────────────────────────────────────────────┐
─►────────────────────────────────────────────────────┬──┴────────────────────►
  ─┬─ BINd ──────────────┬─┬────────────────────────┬─┘
   ├─ CONnect ───────────┤ └─ function-count times ─┘
   ├─ DISconnect ────────┤
   ├─ STOre ─────────────┤
   ├─ ERAse ─────────────┤
   ├─ MODify ────────────┤
   ├─ FINd ──────────────┤
   ├─ FINd KEEp ─────────┤
   ├─ GET ───────────────┤
   ├─ KEEp ──────────────┤
   ├─ OBTain ────────────┤
   ├─ OBTain KEEp ───────┤
   └─ CURrency ACCepted ─┘
   ┌──────────────────────────────────────────────────────────────────────────
 ►─▼─┬────────────────────────────────────────────────────────────────────────►─
     └─┬─ INClude ◄ ─┬─ SET set-name ─────────────────────────────────────────
       └─ EXClude ───┘

  ──────────────────────────────────────────────────────┐
─►────────────────────────────────────────────────────┬─┴─────────────────────►
  ─┬─ IF ────────────────┬─┬────────────────────────┬─┘
   ├─ DISconnect ────────┤ └─ function-count times ─┘
   ├─ FINd ──────────────┤
   ├─ FINd KEEp ─────────┤
   ├─ CURrency ACcepted ─┤
   ├─ KEEp ──────────────┤
   ├─ OBTain ────────────┤
   ├─ OBTain KEEp ───────┤
   └─ RETurn ────────────┘
   ┌──────────────────────────────────────────────────────────────────────────
 ►─▼─┬────────────────────────────────────────────────────────────────────────►─
     └─┬─ INClude ◄ ─┬─┬─ LOGical RECord ─┬─ logical-record-name ─────────────
       └─ EXClude ───┘ └─ LR ─────────────┘

  ────────────────────────────────────────────┐
─►──────────────────────────────────────────┬─┴───────────────────────────────►
  ─┬─ OBtain ─┬──┬────────────────────────┬─┘
   ├─ MODify ─┤  └─ function-count times ─┘
   ├─ STOre ──┤
   ├─ ERAse ──┤
   └─ COPy ───┘
   ┌────────────────────────────────────────────────────────────────────────┐
 ►─▼┬──────────────────────────────────────────────────────────────────────┬┴─►
    └┬─INClude ◄ ┬┬ LANguage ──┬ is attribute-name ─┬─────────────────────┬┘
     └ EXClude ──┘├ MODE ──────┤                    └─ TEXt is user-text ─┘
                  └ class-name ┘

   ┌──────────────────────────────────────────────────────────────────────────
 ►─▼─┬────────────────────────────────────────────────────────────────────────►─
     └─┬─ INClude ◄ ─┬─ relational-key is ─┬─ program-name ─┬─────────────────
       └─ EXClude ───┘                     └─ module-name ──┘

  ────────────────────────────────────────────────────────────────────┐
─►──────────────────────────────────────────────────────────────────┬─┴───────►
  ─┬────────────────────────────────────┬─┬──────────────────────┬──┘
   └─ Version is ─┬─ version-number ─┬──┘ └─ TEXt is user-text ──┘
                  ├─ HIGhest ────────┤
                  └─ LOWest ─────────┘
   ┌────────────────────────────────────────────────────────────────────────┐
 ►─▼─┬──────────────────────────────────────────────────────────────────────┴─►─
     └─ DC options ─┬─ is ──┬─────────────────────────────────────────────────
                    └─ are ─┘
  ───────────────────────────────────────────────────────────────────┐
─►────────────────────────────────────────────────────────────────┬──┴───────►
         ┌────────────────────────────────────────────────┐       │
  ─┬───┬─▼──┬─┬─ CONcurrent ◄ ──┬───────────────────────┬─┴─┬───┬─┘
   └ ( ┘    │ └─ NONCONcurrent ─┘                       │   └ ) ┘
            ├─ DUMp threshold is ─┬─ 0 ◄ ────────┬──────┤
            │                     └─ dump-count ─┘      │
            ├─┬─ ENAbled ◄ ─┬───────────────────────────┤
            │ └─ DISabled ──┘                           │
            ├─ ERRor threshold is ─┬─ 5 ◄ ─────────┬────┤
            │                      └─ error-count ─┘    │
            ├─ ISA size is ─┬─ 0 ◄ ──────────────────┬──┤
            │               └─ initial-storage-size ─┘  │
            ├─ LANguage is ─┬─ COBOL ◄ ───┬─────────────┤
            │               ├─ ASSembler ─┤             │
            │               ├─┬─ PL1 ──┬──┤             │
            │               │ ├─ PLI ──┤  │             │
            │               │ ├─ PL/1 ─┤  │             │
            │               │ └─ PL/I ─┘  │             │
            │               └─┬─ ADSo ──┬─┘             │
            │                 └─ ADS/O ─┘               │
            ├─┬─ NONRESident ◄ ─┬───────────────────────┤
            │ └─ RESident ──────┘                       │
            ├─┬─ PROtect ────┬──────────────────────────┤
            │ └─ NONPROtect ─┘                          │
            ├─┬─ OVErlayable ◄ ──┬──────────────────────┤
            │ └─ NONOVErlayable ─┘                      │
            ├─┬─ PROgram ◄ ───────┬─────────────────────┤
            │ ├─ MAP ─────────────┤                     │
            │ ├─ map HELp ────────┤                     │
            │ ├─ SUBSChema ───────┤                     │
            │ ├─ TABle ───────────┤                     │
            │ ├─ ads DIAlog ──────┤                     │
            │ ├─ ads APPlication ─┤                     │
            │ ├─ AM ──────────────┤                     │
            │ ├─ ACCess module ───┤                     │
            │ └─ RCM ─────────────┘                     │
            ├─┬─ QUAsireentrant ◄ ──┬───────────────────┤
            │ ├─ REEntrant ─────────┤                   │
            │ └─ NONREEntrant ──────┘                   │
            ├─┬─ REUsable ◄ ───┬────────────────────────┤
            │ └─ NONREUsable ──┘                        │
            └─┬─ SAVearea ◄ ─┬──────────────────────────┘
              └─ NOSavearea ─┘
 ►─┬───────────────────────────────────────┬──────────────────────────────────►
   └─ SEQUENce from begin-sequence-number ─┘

   ┌───────────────────────────────────────────────────────────────┐
 ►─▼─┬───────────────────────────────────────────────────────────┬─┴──────────►
     │                            ┌────────────────────┐         │
     └─ EDIt ─┬─ COMments ────┬───▼─ edit-instruction ─┴─ QUIT ──┘
              ├─ DEFinition ──┤
              ├─ REMarks ─────┤
              └─ comment-key ─┘

   ┌──────────────────────────────────────────────────┐
 ►─▼─┬─────────────────────────────────────────────┬──┴───────────────────────►◄
     └─┬─ COMments ─────┬── is ─┬─ NULl ─────────┬─┘
       ├─ DEFinition ───┤       └─ comment-text ─┘
       ├─ REMarks ──────┤
       └─ comment-key ──┘

DISPLAY/PUNCH PROGRAM Statement (for a single program)

►►─┬─ DISplay ─┬─ PROgram name is program-name ───────────────────────────────►
   └─ PUNch ───┘

 ►─┬───────────────────────────────────┬──────────────────────────────────────►
   └─ Version is ─┬─ version-number ─┬─┘
                  ├─ HIGhest ────────┤
                  └─ LOWest ─────────┘

 ►─┬───────────────────────────────────────────────────┬──────────────────────►
   └─ PREpared by user-id ─┬─────────────────────────┬─┘
                           └─ PASsword is password ──┘
  ┌─────────────────────────────────────────────────────────┐
►─▼─┬─────────────────────────────────────────────────────┬─┴─────────────────►
    │                  ┌────────────────────────────────┐ │
    └─┬─ WITh ──────┬──▼─┬─ ALL ─────────────────────┬──┴─┘
      ├─ ALSo WITh ─┤    ├─ ALL COMment TYPes ───────┤
      └─ WITHOut ───┘    ├─ AREas ───────────────────┤
                         ├─ ATTributes ──────────────┤
                         ├─ COMments ────────────────┤
                         ├─ DEFinitions ─────────────┤
                         ├─ DETails ─────────────────┤
                         ├─ ENTRy points ────────────┤
                         ├─ FILes ───────────────────┤
                         ├─ HIStory ─────────────────┤
                         ├─ LRs ─────────────────────┤
                         ├─ MAPs ────────────────────┤
                         ├─ MODules ─────────────────┤
                         ├─ NONe ────────────────────┤
                         ├─ PROgrams ────────────────┤
                         ├─ PROgrams CALled ─────────┤
                         ├─ RECords ─────────────────┤
                         ├─ REMarks ─────────────────┤
                         ├─ REPorts ─────────────────┤
                         ├─ TASks ───────────────────┤
                         ├─ TRAnsactions ────────────┤
                         ├─ SAMe AS ─────────────────┤
                         ├─ SETs ────────────────────┤
                         ├─ SUBSChemas ──────────────┤
                         ├─┬─ SYStems ─────┬─────────┤
                         │ └─ SUBSYstems ──┘         │
                         ├─ USErs ───────────────────┤
                         ├─┬─ USEr DEFINED COMments ─┤
                         │ └─ UDCs ──────────────────┤
                         ├─┬─ USEr DEFINED NESts ─┬──┤
                         │ └─ UDNs ───────────────┘  │
                         └─ WHEre USED ──────────────┘
 ►─┬──────────────────────────────────────────────────────────────────────────►─
   └─ TO ─┬─ SYSpch ──────────────────────────────────────────────────────────
          └─ MODule module-name ─┬───────────────────────────────────┬────────
                                 └─ Version is ─┬─ version-number ─┬─┘
                                                ├─ HIGhest ────────┤
                                                └─ LOWest ─────────┘

─►──────────────────────────────────────────────────────────────────────────┬─►
  ─────────────────────────────────────────────────────────────────────────┬┘
  ─┬──────────────────────┬┬──────────────────────────────────────────────┬┘
   └ LANguage is language ┘└ PREpared by user-id ┬───────────────────────┬┘
                                                 └ PASsword is password ─┘

 ►─┬──────────────────────┬──┬─────────────────────┬──────────────────────────►◄
   └─ VERB ─┬─ DISplay ─┬─┘  └─ AS ─┬─ SYNtax ───┬─┘
            ├─ PUNch ───┤           └─ COMments ─┘
            ├─ ADD ─────┤
            ├─ MODify ──┤
            ├─ REPlace ─┤
            └─ DELete ──┘

DISPLAY/PUNCH PROGRAM Statement (for multiple programs)

►►─── DISplay ──┬─ ALL ──────────────────────────┬─ PROgrams ─────────────────►
                └─┬─ FIRst ─┬─┬─ 1 ◄ ──────────┬─┘
                  ├─ NEXt ──┤ └─ entity-count ─┘
                  ├─ LASt ──┤
                  └─ PRIor ─┘

 ►─┬──────────────────────────────────────────────────┬───────────────────────►
   └─ PREpared by user-id ─┬────────────────────────┬─┘
                           └─ PASsword is password ─┘

 ►─┬─────────────────────────────────┬────────────────────────────────────────►
   └─ WHEre conditional-expression ──┘

(for complete conditional-expression syntax, see WHERE clause)
 ►─┬──────────────────┬───────────────────────────────────────────────────────►
   └─ BY ─┬─ SET ◄ ─┬─┘
          └─ AREa ──┘

 ►─┬──────────────────────────────────────────────────────────────────────────►─
   └─ TO ─┬─ SYSpch ──────────────────────────────────────────────────────────
          └─ MODule module-name ─┬───────────────────────────────────┬────────
                                 └─ Version is ─┬─ version-number ─┬─┘
                                                ├─ HIGhest ────────┤
                                                └─ LOWest ─────────┘
─►──────────────────────────────────────────────────────────────────────────┬─►
  ─────────────────────────────────────────────────────────────────────────┬┘
  ─┬──────────────────────┬┬──────────────────────────────────────────────┬┘
   └ LANguage is language ┘└ PREpared by user-id ┬───────────────────────┬┘
                                                 └ PASsword is password ─┘

 ►─┬──────────────────────┬──┬──────────────────────────────────────┬─────────►◄
   └─ VERB ─┬─ DISplay ─┬─┘  └─ AS ─┬─ SYNtax ───┬──┬─────────────┬─┘
            ├─ PUNch ───┤           └─ COMments ─┘  └─ RECursive ─┘
            ├─ ADD ─────┤
            ├─ MODify ──┤
            ├─ REPlace ─┤
            └─ DELete ──┘

Parameters

PROgram name is program-name

Identifies a new program to be established in the dictionary, or an existing program to be modified, replaced, deleted, displayed, or punched. PROGRAM statements cannot modify, replace, or delete programs that participate in DC/UCF systems. Program-name must be a 1- through 8-character alphanumeric value.

SAMe as PROgram program-name

Copies all entries associated with a previously defined program except the name, WITHIN SYSTEM, SUBSCHEMA, AREA, RECORD, SET, and LOGICAL RECORD specifications.

NEW NAMe is new-program-name

Specifies a new name for the named program. This clause changes only the name of the program; it does not alter or delete any relationships in which the program participates. Subsequent references to the program must specify the new name.

New-program-name must be a 1- through 8-character alphanumeric value. The new program name and version number must not duplicate that of an existing program. If a version number is not specified, the version number associated with the original name is used. Note that the NEW NAME clause is not valid if the program participates in a DC/UCF system or if the program was created by the system generation compiler.

NEW Version is new-version-number/NEXt HIGhest/NEXt LOWest

Specifies a new version number for the named program. The program name and new version number must not duplicate that of an existing program.

ESTimated LINes are source-line-count

Documents the estimated number of source lines in the program. Source-line-count must be an integer in the range 1 through 2,147,483,647.

within SYStem/SUBSYstem system-name

Associates (INCLUDE) the program with or disassociates (EXCLUDE) it from the specified system or subsystem. System-name must be the 1- to 32-character name of an existing system. The WITHIN SYSTEM specification is documentation only, unless the system generation compiler COPY facility is to be used to copy program definitions from an IDD-built system. If the COPY facility is not used, all functional program/system relationships are established and maintained by the system generation compiler.

PROgram CALled is subprogram-name

Associates (INCLUDE) a subprogram with or disassociates (EXCLUDE) it from the program. Subprogram-name must reference an existing program and can be repeated to specify multiple program/subprogram relationships.

ENTRy point name is entry-point-name

Associates (INCLUDE) an entry point with or disassociates (EXCLUDE) it from the program. Entry-point-name must be a 1- through 8-character name; a new entry-point occurrence is created whenever entry-point-name does not identify an existing entry point in the dictionary.

MODule USEd is module-name

Defines (INCLUDE) or disassociates (EXCLUDE) a module to be used or copied by the program. If the named module is not unique in the dictionary, or if it has a version of HIGHEST or LOWEST and is qualified by a language, the optional LANGUAGE IS language parameter must be specified; language must reference an attribute within the LANGUAGE class.

MAP USEd is map-name

Establishes a documentation relationship between the named program and one or more maps. The CA ADS compilers build connections between programs and maps automatically.

RECord COPied is record-synonym

Associates (INCLUDE) or disassociates (EXCLUDE) the name of a record or record synonym to be copied by the program. Record-synonym must be a 1- to 32-character alphanumeric value that identifies an existing record or record synonym.

VIEw ID is view-identifier

Qualifies the supplied name with a view identifier. Record views are established via the VIEW ID substatement, described under RECORD (REPORT/TRANSACTION) later in this chapter.

RECord USEd is record-synonym

Documents the program's use of a record or record synonym by specifying the number of times the program references and modifies the record. Record-synonym must be a 1- to 32-character alphanumeric value that identifies an existing record or record synonym. If the VERSION IS clause is not specified, the DDDL compiler searches for the correct record-synonym name in the following order:

  1. A record name used in a file opened by the program
  2. A record copied by the program
  3. Any record synonym with the specified name; that is, the most recently added record synonym
REFerenced function-count time

Specifies the number of times the named record is referenced by the program.

MODified function-count times

Specifies the number of times the named record is modified by the program. Function-count must be an integer in the range 0 through 32,767. This clause is produced by the Dictionary Loader when it processes a COBOL program.

ELement is element-synonym

Documents the program's use of an element or element synonym by specifying the number of times the element is referenced and modified by the program. Element-synonym must be a 1- through 32-character value that references an existing element or element synonym.

OF ELement primary-element-name/OF RECord record-name

Qualifies the element-synonym name with a primary element name or record name or record synonym name. If neither option is specified, the DDDL compiler searches for the correct element-synonym name in the following order:

  1. An element within a record in a file opened by the program
  2. An element in any record; that is, the most recently added element synonym
  3. Any element with the specified name
REFerenced function-count times

Specifies the number of times the named element is referenced by a program. Function-count must be an integer in the range 0 through 32,767.

MODIfied function-count times

Specifies the number of times the program modifies the element. Function-count must be an integer in the range 0 through 32,767.

INPut/I-O/OUTput/EXTend FILe is file-name

Documents the program's use of a file or file synonym and optionally specifies whether the program is to open the file for input, input and output, or output.

open-count times

Documents the number of OPEN statements in the program. Open-count must be an integer in the range 0 through 32,767.

EXTernal NAMe is ddname/file-id

Predefines the 1- through 32-character name by which the file is referenced in JCL statements.

SUBSChema is subschema-name

Specifies a subschema to be used by the program. Subschema-name must be the 1- to 8-character name of an existing subschema.

of SCHema schema-name

Identifies the schema with which the named subschema is associated.

If the subschema definition includes the AUTHORIZATION IS ON option, this clause is required to register the program with the subschema before DML precompilers can precompile the program against the named subschema. However, if the SET OPTIONS statement specifies SECURITY FOR IDMS IS ON, the user must be assigned the proper authority to issue this clause.

AREa area-name

Specifies a database area to be accessed by the program and establishes how the program is to use the area. Area-name must be the name of an area associated with the schema referenced in the SUBSCHEMA parameter.

OBJect OF

Specifies the number of times that the named area will be the object of an area sweep. One of the following functions must be specified: FIND, FIND KEEP, KEEP, OBTAIN, or OBTAIN KEEP.

REAdied FOR

Specifies the number of times that the program will ready the named area in the specified usage mode. One of the following usage modes must be specified: RETRIEVAL, PROTECTED RETRIEVAL, EXCLUSIVE RETRIEVAL, UPDATE, PROTECTED UPDATE, or EXCLUSIVE UPDATE.

CURrency ACCepted

Specifies the number of times that the database key of the current record in the named area will be accepted by the DML precompilers

function-count times

Specifies the number of times the named function is performed. Function-count must be an integer in the range 0 through 32,767.

RECord record-name

Documents the program's use of a database record by specifying the frequency of record use by major DML function. One of the following DML functions must be specified: BIND, CONNECT, DISCONNECT, STORE, ERASE, MODIFY, FIND, FIND KEEP, GET, KEEP, OBTAIN, OBTAIN KEEP, or CURRENCY ACCEPTED. Record-name must be a 1- through 16-character value that identifies a record defined in the subschema named in the SUBSCHEMA clause.

function-count times

Specifies the number of times the named function is performed. Function-count must be an integer in the range 0 through 32,767.

SET set-name

Documents the program's use of a database set by specifying the frequency of set use by major function. One of the following functions must be specified: IF, CONNECT, DISCONNECT, FIND, FIND KEEP, CURRENCY ACCEPTED, KEEP, OBTAIN, OBTAIN KEEP, or RETURN. Set-name must be a 1- through 16-character value that identifies a set associated with the subschema named in the SUBSCHEMA clause.

function-count times

Specifies the number of times the function is to be performed. Function-count must be an integer in the range 0 through 32,767.

LOGical RECord (LR) logical-record-name

Documents a program's use of logical records by specifying the frequency of logical record use by DML function. One of the following DML functions must be specified: OBTAIN, MODIFY, STORE, ERASE, or COPY. Logical-record-name must be a 1- through 16-character value that identifies a logical record associated with the subschema named in the SUBSCHEMA clause.

function-count times

Specifies the number of times the function is to be performed; Function-count must be an integer in the range 1 through 32,767.

DC options is/are

Assigns one or more DC/UCF options to the named program (DC/UCF programs only).

CONcurrent

Permits more than one task to use the program concurrently. CONCURRENT is the default.

NONCONcurrent

Indicates that only one task at a time can use the program.

DUMp threshold is 0/dump-count

Specifies the number of dumps to be taken for program check errors that occur in the program. A memory dump is taken for each program check error, up to and including the specified dump count; additional errors cause the program to terminate abnormally with no memory dump. Dump-count must be an integer in the range 0 through 255; the default for ADD is 0.

ENAbled

Automatically enables the program at system startup. ENABLED is the default.

DISabled

Disables the program until it is enabled explicitly by an operator command during system execution.

ERRor threshold is 5/error-count

Specifies the number of program check errors that can occur before the program is disabled. The program will continue executing until reaching the specified error threshold; thereafter, the program will not be executed, and tasks attempting to use it will be terminated abnormally. Error-count must be an integer in the range 1 through 255; the default for ADD is 5.

ISA size is 0/initial-storage-size

Specifies the size in bytes of the initial storage area (ISA) allocated before each execution of the program (ASSEMBLER programs only). Initial-storage-size is an integer in the range 0 through 16,777,215; the default for ADD is 0.

LANguage is COBol/ASSembler/PL1/ADSo

Documents the source language of the named program; the default for ADD is COBOL.

Note: This clause does not affect the program's relationship to attributes within the LANGUAGE class.

NONRESident

Specifies that the program is not resident but will be loaded into the program pool as needed. NONRESIDENT is the default.

RESident

Specifies that the program is made resident automatically when the system starts up.

PROtect

Specifies that the storage protection feature is in effect. PROTECT is the default.

NONPROtect

Specifies that the storage protection feature is not in effect.

OVErlayable

Permits the program to be overlaid in the program pool. Specify OVERLAYABLE for executable programs invoked by DC/UCF mechanisms such as LINK and XCTL. OVERLAYABLE is the default.

NONOVErlayable

Prevents the program from being overlaid in the program pool. Specify NONOVERLAYABLE to prevent tables in use from being overwritten in the program pool.

PROgram/MAP/map HELp/SUBSChema/TABle/ads DIAlog/ads APPlication/AM/ACCess module/RCM

Specifies whether the named program is a DC/UCF user program, map, map help, subschema, table, CA ADS dialog, CA ADS application, access module (AM), or relational command module (RCM); the default for ADD is PROGRAM.

REEntrant

Identifies a fully reentrant program that can be executed repeatedly and can be executed before a prior execution has completed. REENTRANT is the default.

QUAsireentrant

Identifies a quasireentrant program that can be executed repeatedly and can be executed before a prior execution has completed. Quasireentrant programs differ from fully reentrant programs in their use of save areas and status information.

NONREEntrant

Identifies a nonreentrant program that can be used by only one DC/UCF task at a time.

REUsable

Identifies the program as reusable. Reusable programs can be executed repeatedly; instructions modified during program execution are returned to their initial state when the program completes execution. Reentrant programs are always reusable, but reusable programs are not necessarily reentrant. REUSABLE is the default.

NONREUsable

Identifies the program as nonreusable. Nonreusable programs modify instructions and do not return them to their initial state after execution. Nonreusable programs must be reloaded each time they are needed.

SAVearea

Acquires a save area automatically before each execution of the program. Specify SAVEAREA if the program uses normal IBM calling conventions and starts by saving registers in a save area. SAVEAREA is the default.

NOSavearea

Does not acquire a save area automatically before each execution of the program.

SEQUENce from begin-sequence

Specifies the starting sequence number for an CA ADS Batch transaction if the transaction is to be sequenced. Begin-sequence must be an integer in the range 0 through 96,800; zero indicates that no sequence numbers are kept. For further details, refer to the CA ADS User Guide.

WITh/ALSo WITh/WITHOut

Includes or excludes the specified options when the named program is displayed or punched. Detailed information for each DISPLAY/PUNCH option is under SET OPTIONS Syntax. The options that are listed below present special considerations for this entity type.

DETails

Includes the DESCRIPTION, ESTIMATED LINES, DC OPTION, and SEQUENCE FROM specifications.

PROgrams

Includes the SAME AS and PROGRAMS CALLED specifications and user-defined nests.

Usage

How SET OPTIONS affects PROGRAM statement usage

The SET OPTIONS statement affects PROGRAM statement usage, as follows:

If you specify REPLACE

If you specify REPLACE, the DDDL compiler initializes to defaults and/or excludes the following options:

The following relationships are not affected:

Example

In the following example, the ADD statement defines the program STCKUPDT, relates the program to the attribute ASSEMBLER within the class LANGUAGE, and supplies comment text using the comment key RECOVERY PROCEDURE. The MODIFY statement adds a DC OPTION clause to the definition of STCKUPDT to associate a language with the program for the purpose of documenting its system generation definition for use by the system generation compiler.

add program stckupdt
    program description is 'stock update'
    within system inventory
    language is assembler
    'recovery procedure' is 'restart at step 2'.

modify program stckupdt
    dc option is language is assembler.