The following four types of DDI statements specify your VSAM files, record indexes, and COBOL record descriptions.
| Statement Type | Description andSyntax |
|---|---|
| *DDI VSM | Specifies the VSAM file external ddname. Identifies VSAM file attributes. |
*DDI VSM DDN=extddn, TYPE=K|E|R,
VSPREFIX=fileprefix,
[CYL|TRK|REC(size)],
CISZ(cntlintrvalsize),
VOL(volname), CAT=catname,
[idcamskeywrds]
|
|
| *DDI REC | Specifies the copybook record name with the longest MAXLEN. Each copybook record must have a *DDI REC statement. |
*DDI REC NAME=recname,
SHORT=shrtrecname, COPY=mbrname,
SOURCE=P|C|, MAXLEN=maxreclen,
AVGLEN=avgreclen
|
|
| *DDI IDX | Required for keyed files. Specifies the keyed field name and copybook file name. Must immediately follow the *DDI REC statement. Write overlapping record keys as ordinary DDI IDX statements. AMB generates IDCAMS KEYS keywords according to the OFFSET and KEYLEN keywords on the DDI IDX statement. |
*DDI IDX NAME=cpylibreckeyfldname,
[ALIAS=redefinefld],
TYPE=P|U|D, KEYLEN=keyfldlen,
OFFSET=position,
DDN=indxddname,
PIC=number,[idcamskeywrds]
|
|
| *DDI SUB | Specifies the copybook record name(s) used by AMB programs, record processing, batch options, and VSAM file external ddname.
Defines a data view for the VSAM file.
Note: To define a data view with multiple VSAM files, assign DDI SUB statement parameters for each VSAM file.
|
*DDI SUB NAME=subschemaname,
RECORD=recname,
PROCOPT=A|G|I|D|R,
[ACCESS=opt], [BLOCK=0],
[LABEL=STANDARD],
[ASSIGN=extddname
|
| DDI Statement | Argument | Value | Len | Req | Default |
|---|---|---|---|---|---|
| *DDI VSM | DDN | File external ddname | 8 | yes | none |
| TYPE | K(eyed)E(ntry)R(elative) | 1 | yes | K | |
| VSPREFIX | File prefix | NA | yes | none | |
| CYL,TRK or REC | Choose one | NA | yes | none | |
| CISZ | ControlInterval Size | NA | yes | 4096 | |
| VOL | Volume name | NA | yes | none | |
| CAT | Catalog name | NA | yes | none | |
| Other IDCAMS keywords | IDCAMS syntax | NA | no | none | |
| *DDI REC | NAME | Recname | 30 | yes | none |
| SHORT | Shrtrecname | 8 | yes | ||
| COPY | Membername | 8 | yes | ||
| SOURCE | Method used to put copybook members in program. P=via an %INCLUDE statement; C=via COBOL COPY command | 1 | yes | none | |
| MAXLEN | Maximum record length | NA | yes | none | |
| AVGLEN | Average record length | NA | yes | MAXLEN | |
| *DDI IDX | NAME | copybook record key field name | 30 | yes | none |
| ALIAS | File that uses multiple copybook records. The name of the field that redefines NAME | 30 | no | none | |
| TYPE | Index type--P(rimary) first index must be P; U(nique);D(uplicate) | 1 | yes | none | |
| KEYLEN | Length of key field | 4 | yes | none | |
| OFFSET | Offset position of the field relative to the beginning of the record. The first position is 0 | 4 | yes | none | |
| DDN | Ddname of the index | 24 | yes | Primary=ddname | |
| PIC | Ddname of the index | 24 | yes | alphanumeric | |
| IDCAMS overrides | IDCAMS syntax | NA | no | none | |
| *DDI SUB | NAME | Unique data view name | 8 | yes | none |
| RECORD | Value of the first (or only) DDI REC statement NAME keyword | 30 | yes | none | |
| PROCOPT | Process control optionsA(ll)G(et)I(nsert)D(elete)R(eplace) | 1 | no | A | |
| ACCESS or ACC | Batch access options | NA | no | dynamic for KSDS files; sequential for ESDS/RRDS | |
| BLOCK | 0 | NA | no | 0 | |
| LABEL | STANDARD | NA | no | STANDARD | |
| ASSIGN or AS | VSAM file external ddname | 8 | no | value of DDN parm in the DDI VSM statement |
*DDI VSM DDN=EMPLOYEE *DDI TYPE=K,VSPREFIX=VQAC6550.APS17X, *DDI TRK(100 10),CISZ(8192),VOL(SAGE03), *DDI REPLICATE,FSPC(15 15),SHR(1 3),NOIMBED *DDI REC NAME=EMPLOYEE-RECORD,SHORT=EMPL, *DDI COPY=EMPLOYEE,SOURCE=P, *DDI MAXLEN=56 *DDI IDX NAME=EMPL-EMP-NUM,TYPE=P,KEYLEN=6,OFFSET=0, *DDI DDN=EMPLOYEE,TRK(5 5),VOL(SAGE03) *DDI IDX NAME=EMPL-SOURCE-CODE,TYPE=D, *DDI KEYLEN=6,OFFSET=30,DDN=EMPLOYE1, *DDI TRK(3 3),VOL(SAGE03),NOIMBED *DDI IDX NAME=EMPL-SALARY,TYPE=D, *DDI KEYLEN=4,OFFSET=36,DDN=EMPLOYEZ, *DDI PIC=9(7)COMP-3,TRK(3 3),VOL(SAGE03) *DDI SUB NAME=SAMPPGM,RECORD=EMPLOYEE-RECORD,PROCOPT=A, *DDI LABEL=STANDARD,BLOCK=200,ASSIGN=EMPLOYEE
% * CICS RECORDS ARE REDEFINED FOR WORKING-STORAGE.
% * Z/OS RECORDS NOT REDEFINED;ARE PLACED DIRECTLY UNDER FD.
% IF &APS-MDC = "CICS-TP"
&VSSUF = " REDEFINES ORDER-RECORD"
% ELSE
&VSSUF = ""
01 ORDER-RECORD.
05 ORDER-KEY PIC X(05).
05 ORDER-RECORD-TYPE PIC X(01).
05 ORDER-CUST-NUMBER PIC X(07).
05 ORDER-PART-NUMBER PIC X(07).
05 ORDER-QUANTITY-ORDERED PIC 9(05).
05 ORDER-QUANTITY-TYPE PIC X(10).
05 ORDER-ORDER-AMOUNT PIC 9(05)V99.
05 ORDER-ORDER-STATUS PIC X(04).
01 ORDER-PART-RECORD &VSSUF.
05 FILLER PIC X(06).
05 PART-NAME PIC X(05).
05 PART-DESCRIPTION PIC X(25).
05 PART-SUPPLIER-NBR PIC X(07).
05 PART-SUPPLIER-NAME PIC X(25).
01 ORDER-DELV-RECORD &VSSUF.
05 FILLER PIC X(06).
05 DELV-CONTACT-NAME PIC X(30).
05 DELV-CONTACT-PHONE PIC X(12).
05 DELV-ADDRESS PIC X(35).
05 DELV-SPECIAL-INSTRUCTIONS PIC X(50).
*DDI VSM DDN=ORDER *DDI REC NAME=ORDER-RECORD,SHORT=ORDER,COPY=ORDER,SOURCE=P, *DDI MAXLEN=133,AVGLEN=46 *DDI IDX NAME=ORDER-KEY,TYPE=P,KEYLEN=5,OFFSET=0,DDN=ORDER *DDI REC NAME=ORDER-PART-RECORD,SHORT=PART,MAXLEN=68 *DDI REC NAME=ORDER-DELV-RECORD,SHORT=DELV,MAXLEN=133 *DDI SUB NAME=ORDERSS, *DDI RECORD=ORDER-RECORD,PROCOPT=A, *DDI LABEL=STANDARD,BLOCK=0,ASSIGN=ORDER
*DDI VSM DDN=PERSON *DDI TYPE=K,VSPREFIX=VAPS6550, *DDI CISZ(4096),VOL(PDVL02),TRK(5 5) *DDI REC NAME=PERSONNEL-RECORD,SHORT=PERSONEL, *DDI COPY=PERSONEL,SOURCE=P,MAXLEN=80,PREFIX=PER *DDI IDX NAME=SSA,ALIAS=SSA-X,TYPE=P,KEYLEN=9, *DDI OFFSET=0,DDN=PERSON, *DDI TRK(5,5),VOL(PDVL02) *DDI IDX NAME=LAST-NAME,TYPE=D,KEYLEN=15, *DDI OFFSET=9,DDN=PERSON1, *DDI TRK(5,5),REUSE,VOL(PDVL02) *DDI IDX NAME=TITLE,TYPE=D,KEYLEN=15, *DDI OFFSET=24,DDN=PERSON2, *DDI TRK(5,5),REUSE,VOL(PDVL02) *DDI SUB NAME=SAMPLE,RECORD=PERSONNEL-RECORD, *DDI PROCOPT=A
*DDI VSM DDN=DMOPART
*DDI TYPE=K,VSPREFIX=CTSAPS.DEMO,TRK(10 10),VOL(WIN004),
*DDI CISZ(4096)
*DDI REC NAME=PART-MASTER-REC,SHORT=DMOPART,COPY=DMOPART
*DDI SOURCE=P,MAXLEN=80
*DDI IDX NAME=PM-PART-NO,TYPE=P,KEYLEN=8,OFFSET=0,
DDN=DMOPART,TRK(1,1)
*DDI VSM DDN=DMOSTCK
*DDI TYPE=K,VSPREFIX=CTSAPS.DEMO,TRK(10 10),VOL(WIN004),
*DDI CISZ(4096)
*DDI REC NAME=PART-STOCK-REC,SHORT=DMOSTCK,COPY=DMOSTCK
*DDI SOURCE=P,MAXLEN=80
*DDI IDX NAME=PS-STOCK-KEY,TYPE=P,KEYLEN=20,OFFSET=0,
*DDI DDN=DMOSTCK,TRK(1,1)
*DDI IDX NAME=PS-PART-NO,TYPE=D,KEYLEN=8,OFFSET=0,
*DDI DDN=DMOSTCKX,TRK(1,1)
*DDI SUB NAME=DMVMNU,RECORD=PART-MASTER-REC,PROCOPT=G,
*DDI ACC=DYNAMIC,AS=DMOPART
*DDI SUB NAME=DMVINQ,RECORD=PART-MASTER-REC,PROCOPT=A,
*DDI ACC=DYNAMIC,AS=DMOPART
*DDI SUB NAME=DMVUPD,RECORD=PART-MASTER-REC,PROCOPT=A,
*DDI ACC=DYNAMIC,AS=DMOPART
*DDI SUB NAME=DMVLST,RECORD=PART-STOCK-REC,PROCOPT=A,
*DDI ACC=DYNAMIC,AS=DMOSTCK
*DDI RECORD=PART-MASTER-REC,PROCOPT=A,ACC=DYNAMIC,
*DDI AS=DMOPART