PROGRAM

PROGRAM statements are used to document user application programs and CA ADS Batch transactions.
idmscu19
PROGRAM statements are used to document user application programs and CA ADS Batch transactions.
More information: For more information, refer to the
CA ADS Using section
for special considerations that apply to defining programs for use in the CA ADS Batch environment.
Optional PROGRAM clauses:
  • Relate programs to occurrences of the USER, SYSTEM (SUBSYSTEM), PROGRAM, ENTRY POINT, MODULE, RECORD, and FILE entity types, to subschemas, and to areas, sets, records, and logical records
  • Control the participation of programs in attribute/entity relationships
  • Maintain documentation entries
  • Establish CA IDMS/DC system generation information and CA IDMS/DB database statistics
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 Administrating section
.
When a DML program requests activity logging, the DML precompiler updates the dictionary. The following program options are established and/or updated:
  • ESTIMATED LINES
  • FILE
  • PROGRAM CALLED
  • AREA
  • ENTRY POINT
  • RECORD
  • MODULE USED
  • SET
  • MAP USED
  • LOGICAL RECORD
  • RECORDS COPIED
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 section.
  • 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.
    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 Using section
    .
  • 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 the SET OPTIONS statement specifies SECURITY FOR IDD IS ON, the user must be assigned the proper authority to issue PROGRAM statements.
  • If the SET OPTIONS statement specifies SECURITY FOR IDMS IS ON, the user must be assigned the proper authority to register a program with a subschema.
  • If the SET OPTIONS statement specifies AUTHORIZATION IS ON, DML precompilers will not process a program unless the program has been defined in the dictionary.
If you specify REPLACE
If you specify REPLACE, the DDDL compiler initializes to defaults and/or excludes the following options:
  • DESCRIPTION
  • FILE IS
  • ESTIMATED LINES
  • ELEMENT IS
  • USER REGISTERED FOR
  • SUBSCHEMA IS
  • PUBLIC ACCESS
  • AREA IS
  • WITHIN SYSTEM
  • RECORD IS
  • PROGRAM CALLED
  • SET IS
  • ENTRY POINT
  • LOGICAL-RECORD IS
  • MODULE USED
  • DC OPTION
  • MAP USED
  • SEQUENCE
  • RECORD COPIED
  • Related programs
  • RECORD USED
  • Related attributes
  • COMMENTS/DEFINITION/
    comment-key
The following relationships are not affected:
  • Programs that call the named program
  • Systems in which the named program participates
  • Tasks that invoke the named program
  • Relationships defined by means of the CA IDMS/DC system generation compiler
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.