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 isprogram-name───────────────────────────────► ├─ MODify ──┤ ├─ REPlace ─┤ └─ DELete ──┘ ►─┬────────────────────────────────────────────┬─────────────────────────────► └─ Version is ─┬─version-number──────────┬─┘ └─┬─────────┬─┬───────────┬─┘ └─ NEXt ──┘ ├─ HIGhest ─┤ └─ LOWest ──┘ ►─┬────────────────────────────────────────────────────────┬─────────────────► └─┬────────────┬─ byuser-id─┬────────────────────────┬─┘ ├─ PREpared ─┤ └─ PASsword ispassword─┘ └─ REVised ──┘ ┌────────────────────────────────────────────────────────────────────────┐ ►─▼┬──────────────────────────────────────────────────────────────────────┬┴─► └─ SAMe as PROgramprogram-name─┬───────────────────────────────────┬─┘ └─ Version is ─┬─version-number─┬─┘ ├─ HIGhest ────────┤ └─ LOWest ─────────┘ ┌────────────────────────────────────────────────────────────────────────── ►─▼─┬────────────────────────────────────────────────────────────────────────►─ └─ COPy ─┬─ ALL COMments TYPes ─┬─ FROm programprogram-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 isnew-program-name─┬──────────────────────────────────────┬─┘ └ Version is ─┬─version-number─────┬─┘ └─ NEXt ─┬─ HIGhest ─┬─┘ └─ LOWest ──┘ ►─┬───────────────────────────────────────────┬──────────────────────────────► └─ NEW Version is ─┬─new-version-number─┬─┘ └─ NEXt ─┬─ HIGhest ─┬─┘ └─ LOWest ──┘ ►─┬────────────────────────────────────────────┬─────────────────────────────► └─ program DEScription isdescription-text──┘ ►─┬──────────────────────────────────────────┬───────────────────────────────► └─ ESTimated LINes aresource-line-count──┘ ┌─────────────────────────────────────────────────────────────────┐ ►─▼─┬─────────────────────────────────────────────────────────────┬─┴────────► └─┬─ INClude ◄ ─┬─ USEr isuser-id──┬──────────────────────┬─┘ └─ EXClude ───┘ └─user-specification─┘ (for completeuser-specificationsyntax, 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 isuser-text──┘ ├─ HIGhest ────────┤ └─ LOWest ─────────┘ ►─┬──────────────────────────────────────────────────────────────────────────►─ │ ┌────────────────────────────────── └─┬─ INClude ◄ ─┬─ PROgram CALled is ( ▼subprogram-name───────────────── └─ EXClude ───┘ ─►────────────────────────────────────────────────────────────────────────┬───► ─────────────────────────────────────────────────────────────────┐ │ ──┬───────────────────────────────────┬──┬─────────────────────┬─┴─ ) ──┘ └─ Version is ─┬─version-number─┬─┘ └─ TEXt isuser-text─┘ ├─ HIGhest ────────┤ └─ LOWest ─────────┘ ┌────────────────────────────────────────────────────────────────────────── ►─▼─┬────────────────────────────────────────────────────────────────────────►─ └┬ INClude ◄ ┬ ENTRy point name isentry-point-name───────────────────── └ EXClude -─┘ ───────────────────────────┐ ─►─────────────────────────┬─┴────────────────────────────────────────────────► ─┬─────────────────────┬─┘ └─ TEXt isuser-text─┘ ┌────────────────────────────────────────────────────────────────────────── ►─▼─┬────────────────────────────────────────────────────────────────────────►─ └─┬─ INClude ◄ ─┬─ MODule USEd is ─────────────────────────────────────── └─ EXClude ───┘ ──────────────────────────────────────────────────────────────────────────── ─►────────────────────────────────────────────────────────────────────────────►─ ┌─────────────────────────────────────────────────────────────────────── - ( ▼module-name─┬──────────────────────────────┬┬──────────────────────┬─ └ Version is ┬version-number┬┘└ LANguage islanguage┘ ├ HIGhest ───────┤ └ LOWest ────────┘ ──────────────────────────────────┐ ─►────────────────────────────────┬─┴─────────────────────────────────────────► ──────────────────────────┐ │ ───┬─────────────────────┬▼─ ) ─┘ └─ TEXt isuser-text─┘ ┌────────────────────────────────────────────────────────────────────────── ►─▼─┬────────────────────────────────────────────────────────────────────────►─ └─┬─ INClude ◄ ─┬─ MAP USEd ismap-name───────────────────────────────── └─ EXClude ───┘ ─────────────────────────────────────────────────────────────────────┐ ─►──────────────────────────────────────────────────────────────────┬──┴──────► ──┬───────────────────────────────────┬──┬──────────────────────┬─┘ └─ Version is ─┬─version-number─┬─┘ └─ TEXt isuser-text──┘ ├─ HIGhest ────────┤ └─ LOWest ─────────┘ ┌────────────────────────────────────────────────────────────────────────── ►─▼─┬────────────────────────────────────────────────────────────────────────►─ └─┬─ INClude ◄ ─┬─ RECord COPied isrecord-synonym-name───────────────── └─ EXClude ───┘ ──────────────────────────────────────────────────────────────────────────── ─►────────────────────────────────────────────────────────────────────────────►─ ──┬───────────────────────────────────┬──┬──────────────────────┬─────────── └─ Version is ─┬─version-number─┬─┘ └─ TEXt isuser-text──┘ ├─ HIGhest ────────┤ └─ LOWest ─────────┘ ────────────────────────────────────────┐ ─►─────────────────────────────────────┬──┴───────────────────────────────────► ──┬───────────────────────────────┬──┘ └─ VIEw ID isview-identifier──┘ ┌────────────────────────────────────────────────────────────────────────── ►─▼─┬────────────────────────────────────────────────────────────────────────►─ └─┬─ INClude ◄ ─┬─ RECord USEd isrecord-synonym-name─────────────────── └─ EXClude ───┘ ──────────────────────────────────────────────────────────────────────────── ─►────────────────────────────────────────────────────────────────────────────►─ ──┬───────────────────────────────────┬───────────────────────────────────── └─ Version is ─┬─version-number─┬─┘ ├─ HIGhest ────────┤ └─ LOWest ─────────┘ ─────────────────────────────────────────────────────────────────────────┐ ─►───────────────────────────────────────────────────────────────────────┬─┴──► ─┬─────────────────────────────────┬┬────────────────────────────────┬─┘ └ REFerencedfunction-counttimes ┘└ MODifiedfunction-counttimes ─┘ ┌────────────────────────────────────────────────────────────────────────── ►─▼─┬────────────────────────────────────────────────────────────────────────►─ └─┬─ INClude ◄ ─┬─ ELement iselement-synonym-name────────────────────── └─ EXClude ───┘ ──────────────────────────────────────────────────────────────────────────── ─►────────────────────────────────────────────────────────────────────────────►─ ─┬────────────────────────────────────────────────────────────────────────┬─ ├─ OF ELementprimary-element-name─┬───────────────────────────────────┬┤ │ └─ Version is ─┬─version-number─┬─┘│ │ ├─ HIGhest ────────┤ │ │ └─ LOWest ─────────┘ │ └─ OF RECordrecord-name─┬───────────────────────────────────┬──────────┘ └─ Version is ─┬─version-number─┬─┘ ├─ HIGhest ────────┤ └─ LOWest ─────────┘ ─────────────────────────────────────────────────────────────────────────┐ ─►───────────────────────────────────────────────────────────────────────┬─┴──► ─┬─────────────────────────────────┬┬────────────────────────────────┬─┘ └ REFerencedfunction-counttimes ┘└ MODifiedfunction-counttimes ─┘ ┌────────────────────────────────────────────────────────────────────────── ►─▼─┬────────────────────────────────────────────────────────────────────────►─ └─┬─ INClude ◄ ─┬─┬──────────┬─ FILe isfile-name─────────────────────── └─ EXClude ───┘ ├─ INPut ──┤ ├─ I-O ────┤ ├─ OUTput ─┤ └─ EXTend ─┘ ──────────────────────────────────────────────────────────────────────────── ─►────────────────────────────────────────────────────────────────────────────►─ ─┬───────────────────────────────────┬─┬─────────────────────┬────────────── └─ Version is ─┬─version-number─┬─┘ └─open-counttimes ──┘ ├─ HIGhest ────────┤ └─ LOWest ─────────┘ ─────────────────────────────────────────┐ ─►──────────────────────────────────────┬──┴──────────────────────────────────► ─┬──────────────────────────────────┬─┘ └─ EXTernal NAMe is ─┬─ddname──┬─┘ └─file-id─┘ ►─┬──────────────────────────────────────────────────────────────────────────►─ └─┬─ INClude ◄ ─┬─ SUBSChema issubschema-name──────────────────────────── └─ EXClude ───┘ ─►──────────────────────────────────────────────────────────────────┬─────────► ─── of SCHemaschema-name──┬───────────────────────────────────┬─┘ └─ Version is ─┬─version-number─┬─┘ ├─ HIGhest ────────┤ └─ LOWest ─────────┘ ┌────────────────────────────────────────────────────────────────────────── ►─▼─┬────────────────────────────────────────────────────────────────────────►─ └─┬─ INClude ◄ ─┬─ AREaarea-name─────────────────────────────────────── └─ EXClude ───┘ ──────────────────────────────────────────────────────────────────────────┐ ─►────────────────────────────────────────────────────────────────────────┬─┴─► ─┬─ OBJect OF ──┬─ FINd ────────┬───────────┬─┬────────────────────────┬┘ │ ├─ FINd KEEp ───┤ │ └─function-counttimes ─┘ │ ├─ KEEp ────────┤ │ │ ├─ OBTain ──────┤ │ │ └─ OBTain KEEp ─┘ │ ├─ REAdied FOR ─┬─ RETrieval ───────────┬──┤ │ ├─ PROtected RETrieval ─┤ │ │ ├─ EXClusive RETrieval ─┤ │ │ ├─ UPDate ──────────────┤ │ │ ├─ PROtected UPDate ────┤ │ │ └─ EXClusive UPDate ────┘ │ └─ CURrency ACCepted ──────────────────────┘ ┌────────────────────────────────────────────────────────────────────────── ►─▼─┬────────────────────────────────────────────────────────────────────────►─ └─┬─ INClude ◄ ─┬─ RECordrecord-name─────────────────────────────────── └─ EXClude ───┘ ───────────────────────────────────────────────────────┐ ─►────────────────────────────────────────────────────┬──┴────────────────────► ─┬─ BINd ──────────────┬─┬────────────────────────┬─┘ ├─ CONnect ───────────┤ └─function-counttimes ─┘ ├─ DISconnect ────────┤ ├─ STOre ─────────────┤ ├─ ERAse ─────────────┤ ├─ MODify ────────────┤ ├─ FINd ──────────────┤ ├─ FINd KEEp ─────────┤ ├─ GET ───────────────┤ ├─ KEEp ──────────────┤ ├─ OBTain ────────────┤ ├─ OBTain KEEp ───────┤ └─ CURrency ACCepted ─┘ ┌────────────────────────────────────────────────────────────────────────── ►─▼─┬────────────────────────────────────────────────────────────────────────►─ └─┬─ INClude ◄ ─┬─ SETset-name───────────────────────────────────────── └─ EXClude ───┘ ──────────────────────────────────────────────────────┐ ─►────────────────────────────────────────────────────┬─┴─────────────────────► ─┬─ IF ────────────────┬─┬────────────────────────┬─┘ ├─ DISconnect ────────┤ └─function-counttimes ─┘ ├─ FINd ──────────────┤ ├─ FINd KEEp ─────────┤ ├─ CURrency ACcepted ─┤ ├─ KEEp ──────────────┤ ├─ OBTain ────────────┤ ├─ OBTain KEEp ───────┤ └─ RETurn ────────────┘ ┌────────────────────────────────────────────────────────────────────────── ►─▼─┬────────────────────────────────────────────────────────────────────────►─ └─┬─ INClude ◄ ─┬─┬─ LOGical RECord ─┬─logical-record-name───────────── └─ EXClude ───┘ └─ LR ─────────────┘ ────────────────────────────────────────────┐ ─►──────────────────────────────────────────┬─┴───────────────────────────────► ─┬─ OBtain ─┬──┬────────────────────────┬─┘ ├─ MODify ─┤ └─function-counttimes ─┘ ├─ STOre ──┤ ├─ ERAse ──┤ └─ COPy ───┘ ┌────────────────────────────────────────────────────────────────────────┐ ►─▼┬──────────────────────────────────────────────────────────────────────┬┴─► └┬─INClude ◄ ┬┬ LANguage ──┬ isattribute-name─┬─────────────────────┬┘ └ EXClude ──┘├ MODE ──────┤ └─ TEXt isuser-text─┘ └class-name┘ ┌────────────────────────────────────────────────────────────────────────── ►─▼─┬────────────────────────────────────────────────────────────────────────►─ └─┬─ INClude ◄ ─┬─relational-keyis ─┬─program-name─┬───────────────── └─ EXClude ───┘ └─module-name──┘ ────────────────────────────────────────────────────────────────────┐ ─►──────────────────────────────────────────────────────────────────┬─┴───────► ─┬────────────────────────────────────┬─┬──────────────────────┬──┘ └─ Version is ─┬─version-number─┬──┘ └─ TEXt isuser-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 frombegin-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 isprogram-name───────────────────────────────► └─ PUNch ───┘ ►─┬───────────────────────────────────┬──────────────────────────────────────► └─ Version is ─┬─version-number─┬─┘ ├─ HIGhest ────────┤ └─ LOWest ─────────┘ ►─┬───────────────────────────────────────────────────┬──────────────────────► └─ PREpared byuser-id─┬─────────────────────────┬─┘ └─ PASsword ispassword──┘ ┌─────────────────────────────────────────────────────────┐ ►─▼─┬─────────────────────────────────────────────────────┬─┴─────────────────► │ ┌────────────────────────────────┐ │ └─┬─ 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 ────────────────────────────────────────────────────────── └─ MODulemodule-name─┬───────────────────────────────────┬──────── └─ Version is ─┬─version-number─┬─┘ ├─ HIGhest ────────┤ └─ LOWest ─────────┘ ─►──────────────────────────────────────────────────────────────────────────┬─► ─────────────────────────────────────────────────────────────────────────┬┘ ─┬──────────────────────┬┬──────────────────────────────────────────────┬┘ └ LANguage islanguage┘└ PREpared byuser-id┬───────────────────────┬┘ └ PASsword ispassword─┘ ►─┬──────────────────────┬──┬─────────────────────┬──────────────────────────►◄ └─ 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 byuser-id─┬────────────────────────┬─┘ └─ PASsword ispassword─┘ ►─┬─────────────────────────────────┬────────────────────────────────────────► └─ WHEreconditional-expression──┘ (for completeconditional-expressionsyntax, see WHERE clause) ►─┬──────────────────┬───────────────────────────────────────────────────────► └─ BY ─┬─ SET ◄ ─┬─┘ └─ AREa ──┘ ►─┬──────────────────────────────────────────────────────────────────────────►─ └─ TO ─┬─ SYSpch ────────────────────────────────────────────────────────── └─ MODulemodule-name─┬───────────────────────────────────┬──────── └─ Version is ─┬─version-number─┬─┘ ├─ HIGhest ────────┤ └─ LOWest ─────────┘ ─►──────────────────────────────────────────────────────────────────────────┬─► ─────────────────────────────────────────────────────────────────────────┬┘ ─┬──────────────────────┬┬──────────────────────────────────────────────┬┘ └ LANguage islanguage┘└ PREpared byuser-id┬───────────────────────┬┘ └ PASsword ispassword─┘ ►─┬──────────────────────┬──┬──────────────────────────────────────┬─────────►◄ └─ VERB ─┬─ DISplay ─┬─┘ └─ AS ─┬─ SYNtax ───┬──┬─────────────┬─┘ ├─ PUNch ───┤ └─ COMments ─┘ └─ RECursive ─┘ ├─ ADD ─────┤ ├─ MODify ──┤ ├─ REPlace ─┤ └─ DELete ──┘
Parameters
- PROgram name isprogram-nameIdentifies 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-namemust be a 1- through 8-character alphanumeric value.
- SAMe as PROgramprogram-nameCopies all entries associated with a previously defined program except the name, WITHIN SYSTEM, SUBSCHEMA, AREA, RECORD, SET, and LOGICAL RECORD specifications.
- NEW NAMe isnew-program-nameSpecifies 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-namemust 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 isnew-version-number/NEXt HIGhest/NEXt LOWestSpecifies 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 aresource-line-countDocuments the estimated number of source lines in the program.Source-line-countmust be an integer in the range 1 through 2,147,483,647.
- within SYStem/SUBSYstemsystem-nameAssociates (INCLUDE) the program with or disassociates (EXCLUDE) it from the specified system or subsystem.System-namemust 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 issubprogram-nameAssociates (INCLUDE) a subprogram with or disassociates (EXCLUDE) it from the program.Subprogram-namemust reference an existing program and can be repeated to specify multiple program/subprogram relationships.
- ENTRy point name isentry-point-nameAssociates (INCLUDE) an entry point with or disassociates (EXCLUDE) it from the program.Entry-point-namemust be a 1- through 8-character name; a new entry-point occurrence is created wheneverentry-point-namedoes not identify an existing entry point in the dictionary.
- MODule USEd ismodule-nameDefines (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 ISlanguageparameter must be specified;languagemust reference an attribute within the LANGUAGE class.
- MAP USEd ismap-nameEstablishes 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 isrecord-synonymAssociates (INCLUDE) or disassociates (EXCLUDE) the name of a record or record synonym to be copied by the program.Record-synonymmust be a 1- to 32-character alphanumeric value that identifies an existing record or record synonym.
- VIEw ID isview-identifierQualifies 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 isrecord-synonymDocuments the program's use of a record or record synonym by specifying the number of times the program references and modifies the record.Record-synonymmust 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:
- A record name used in a file opened by the program
- A record copied by the program
- Any record synonym with the specified name; that is, the most recently added record synonym
- REFerencedfunction-counttimeSpecifies the number of times the named record is referenced by the program.
- MODifiedfunction-counttimesSpecifies the number of times the named record is modified by the program.Function-countmust 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 iselement-synonymDocuments 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-synonymmust be a 1- through 32-character value that references an existing element or element synonym.
- OF ELementprimary-element-name/OF RECordrecord-nameQualifies 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:
- An element within a record in a file opened by the program
- An element in any record; that is, the most recently added element synonym
- Any element with the specified name
- REFerencedfunction-counttimesSpecifies the number of times the named element is referenced by a program.Function-countmust be an integer in the range 0 through 32,767.
- MODIfiedfunction-counttimesSpecifies the number of times the program modifies the element.Function-countmust be an integer in the range 0 through 32,767.
- INPut/I-O/OUTput/EXTend FILe isfile-nameDocuments 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-counttimesDocuments the number of OPEN statements in the program.Open-countmust be an integer in the range 0 through 32,767.
- EXTernal NAMe isddname/file-idPredefines the 1- through 32-character name by which the file is referenced in JCL statements.
- SUBSChema issubschema-nameSpecifies a subschema to be used by the program.Subschema-namemust be the 1- to 8-character name of an existing subschema.
- of SCHemaschema-nameIdentifies 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.
- AREaarea-nameSpecifies a database area to be accessed by the program and establishes how the program is to use the area.Area-namemust be the name of an area associated with the schema referenced in the SUBSCHEMA parameter.
- OBJect OFSpecifies 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 FORSpecifies 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 ACCeptedSpecifies the number of times that the database key of the current record in the named area will be accepted by the DML precompilers
- function-counttimesSpecifies the number of times the named function is performed.Function-countmust be an integer in the range 0 through 32,767.
- RECordrecord-nameDocuments 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-namemust be a 1- through 16-character value that identifies a record defined in the subschema named in the SUBSCHEMA clause.
- function-counttimesSpecifies the number of times the named function is performed.Function-countmust be an integer in the range 0 through 32,767.
- SETset-nameDocuments 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-namemust be a 1- through 16-character value that identifies a set associated with the subschema named in the SUBSCHEMA clause.
- function-counttimesSpecifies the number of times the function is to be performed.Function-countmust be an integer in the range 0 through 32,767.
- LOGical RECord (LR)logical-record-nameDocuments 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-namemust be a 1- through 16-character value that identifies a logical record associated with the subschema named in the SUBSCHEMA clause.
- function-counttimesSpecifies the number of times the function is to be performed;Function-countmust be an integer in the range 1 through 32,767.
- DC options is/areAssigns one or more DC/UCF options to the named program (DC/UCF programs only).
- CONcurrentPermits more than one task to use the program concurrently. CONCURRENT is the default.
- NONCONcurrentIndicates that only one task at a time can use the program.
- DUMp threshold is 0/dump-countSpecifies 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-countmust be an integer in the range 0 through 255; the default for ADD is 0.
- ENAbledAutomatically enables the program at system startup. ENABLED is the default.
- DISabledDisables the program until it is enabled explicitly by an operator command during system execution.
- ERRor threshold is 5/error-countSpecifies 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-countmust be an integer in the range 1 through 255; the default for ADD is 5.
- ISA size is 0/initial-storage-sizeSpecifies the size in bytes of the initial storage area (ISA) allocated before each execution of the program (ASSEMBLER programs only).Initial-storage-sizeis an integer in the range 0 through 16,777,215; the default for ADD is 0.
- LANguage is COBol/ASSembler/PL1/ADSoDocuments 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.
- NONRESidentSpecifies that the program is not resident but will be loaded into the program pool as needed. NONRESIDENT is the default.
- RESidentSpecifies that the program is made resident automatically when the system starts up.
- PROtectSpecifies that the storage protection feature is in effect. PROTECT is the default.
- NONPROtectSpecifies that the storage protection feature is not in effect.
- OVErlayablePermits 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.
- NONOVErlayablePrevents 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/RCMSpecifies 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.
- REEntrantIdentifies a fully reentrant program that can be executed repeatedly and can be executed before a prior execution has completed. REENTRANT is the default.
- QUAsireentrantIdentifies 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.
- NONREEntrantIdentifies a nonreentrant program that can be used by only one DC/UCF task at a time.
- REUsableIdentifies 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.
- NONREUsableIdentifies 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.
- SAVeareaAcquires 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.
- NOSaveareaDoes not acquire a save area automatically before each execution of the program.
- SEQUENce frombegin-sequenceSpecifies the starting sequence number for an CA ADS Batch transaction if the transaction is to be sequenced.Begin-sequencemust be an integer in the range 0 through 96,800; zero indicates that no sequence numbers are kept. For further details, refer to theCA ADS Using section.
- WITh/ALSo WITh/WITHOutIncludes 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.
- DETailsIncludes the DESCRIPTION, ESTIMATED LINES, DC OPTION, and SEQUENCE FROM specifications.
- PROgramsIncludes 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.