Access Descriptors for IMS

AcctDBD Database Access Descriptor

This section describes the MyLib.Account access descriptor for the AcctDBD database that is used in the examples. This section provides the statements used to create the Account access descriptor in batch, interactive line, or noninteractive mode. The AcctDBD database is described in detail in IMS Essentials.
JCL statements;
proc access dbms=ims;
  create mylib.account.access;
    dbd=acctdbd dbtype=hdam;
    record='customer_record' sg=customer sl=225;
      item=soc_sec_number lv=2  dbf=$11. 
                          key=u
                          se=ssnumber;
      item=customer_name  lv=2  dbf=$40. 
                          se=custname;
      item='address info' lv=2;
      item=addr_line_1    lv=3  dbf=$30. 
                          se=custadd1;
      item=addr_line_2    lv=3  dbf=$30. 
                          se=custadd2;
      item=city           lv=3  dbf=$28. 
                          se=custcity;
      item=state          lv=3  dbf=$2.  
                          se=custstat;
      item=country        lv=3  dbf=$20. 
                          se=custland;
      item=zip_code       lv=3  dbf=$10. 
                          se=custzip;
      item=home_phone     lv=2  dbf=$12. 
                          se=custhphn;
      item=office_phone   lv=2  dbf=$12. 
                          se=custophn;

    record='checking_account_record' sg=chckacct 
         sl=40;
      item=check_account_number lv=2  dbf=12. 
                                key=u 
                                se=acnumber;
      item=check_amount         lv=2  dbf=pd5.2 
                                se=stmtamt    
                                dbc=l;
      item=check_date           lv=2  dbf=6.0 
                                fmt=date7.
                                se=stmtdate
                                dbc=mmddyy6.;
      item=filler1              lv=2  dbf=$2.;
      item=check_balance        lv=2  dbf=pd5.2
                                se=stmtbal
                                dbc=l;

    record='checking_debit_record' sg=chckdebt sl=80;
      item=check_debit_amount   lv=2  dbf=pd5.2 
                                key=y
                                se=debtamt
                                dbc=l;
      item=check_debit_date     lv=2  dbf=6.0
                                fmt=date7.
                                se=debtdatd
                                dbc=mmddyy6.;
      item=filler2              lv=2  dbf=$2.;
      item=check_debit_time     lv=2  dbf=$8.
                                se=debttime;
      item=check_debit_desc     lv=2  dbf=$59.
                                se=debtdesc;

    record='checking_credit_record' sg=chckcrdt sl=80;
      item=check_credit_amount  lv=2  dbf=pd5.2 
                                key=y
                                se=crdtamt
                                dbc=l;
      item=check_credit_date    lv=2  dbf=6.0
                                fmt=date7.
                                se=crdtdate
                                dbc=mmddyy6.;
      item=filler3              lv=2  dbf=$2.;
      item=check_credit_time    lv=2  dbf=$8.
                                se=crdttime;
      item=check_credit_desc    lv=2  dbf=$59.
                                se=crdtdesc;

    record='savings_account_record' sg=saveacct sl=40;
      item=savings_account_number lv=2 dbf=12. 
                                key=y
                                se=acnumber;
      item=savings_amount       lv=2  dbf=pd5.2 
                                se=stmtamt
                                dbc=l;
      item=savings_date         lv=2  dbf=6.0
                                fmt=date7.
                                se=stmtdate
                                dbc=mmddyy6.;
      item=filler4              lv=2  dbf=$2.;
      item=savings_balance      lv=2  dbf=pd5.2 
                                se=stmtbal
                                dbc=l;

    record='savings_debit_record' sg=savedebt sl=80;
      item=savings_debit_amount lv=2  dbf=pd5.2 
                                key=y
                                se=debtamt
                                dbc=l;
      item=savings_debit_date   lv=2  dbf=6.0
                                fmt=date7.
                                se=debtdate
                                dbc=mmddyy6.;
      item=filler5              lv=2  dbf=$2.;
      item=savings_debit_time   lv=2  dbf=$8.
                                se=debttime;
      item=savings_debit_desc   lv=2  dbf=$59.
                                se=debtdesc;

    record='savings_credit_record' sg=savecrdt sl=80;
      item=savings_credit_amount lv=2 dbf=pd5.2 
                                 key=y
                                 se=crdtamt
                                 dbc=l;
      item=savings_credit_date   lv=2  dbf=6.0   
                                 fmt=date7.
                                 se=crdtdate
                                 dbc=mmddyy6.;
      item=filler6               lv=2  dbf=$2.;
      item=savings_credit_time   lv=2  dbf=$8.
                                 se=crdttime;
      item=savings_credit_desc   lv=2  dbf=$59.  
                                 se=crdtdesc;
  list all;
run;

EmplInf2 Database Access Descriptor

This section describes the MyLib.Employee access descriptor for the EmplInf2 database that is used in the examples and provides the statements that are used to create the Employee access descriptor in batch, interactive line, or non-interactive mode.
proc access dbms=ims;
  create mylib.employee.access;
    database=emplinf2 dbtype=hidam;
    record='employee record' segment=employee 
                             seglng=150;
      item=employee_id      lv=2  dbf=pd3.0 
                            key=u
                            se=empid;
      item=last_name        lv=2  dbf=$10.  
                            se=lastname;
      item=first_name       lv=2  dbf=$20.
                            se=frstname;
      item=hire_date        lv=2  dbf=6.0   
                            fmt=date7.
                            se=hiredate
                            dbc=mmddyy6.;
      item=birthday         lv=2  dbf=7.0   
                            fmt=date7.
                            se=birthday
                            dbc=mmddyy6.;
      item=ssn              lv=2  dbf=$11. 
                            se=ssn;
      item=gender           lv=2  dbf=$6. 
                            se=gender;
      item=status           lv=2  dbf=$9.
                            se=status;
      item=phone_extension  lv=2  dbf=$9.
                            se=phone;
      item=vacation         lv=2  dbf=ib4.
                            se=vacation
                            dbc=l;
      item=department       lv=2  dbf=zd6.0 
                            se=deptment;
      item=zip_code         lv=2  dbf=$5.
                            se=zipcode;
      item=city_and_state   lv=2  dbf=$15.
                            se=citystat;
      item=street           lv=2  dbf=$20.
                            se=street;
      item=security         lv=2  dbf=rb4.
                            fmt=10.0
                            se=security
                            dbc=l;
      item=sick_leave       lv=2  dbf=6.2  
                            se=sicklv
                            dbc=l;
  list all;

WireTran Database Access Descriptor

This section describes the MyLib.WireTran access descriptor for the WireTran database that is used in examples and provides the statements that are used to create the WireTran access descriptor in batch, interactive line, or noninteractive mode. The WireTran database is described in detail in Defining SAS/ACCESS Descriptor Files.
proc access dbms=ims;
  create mylib.wiretrn.access;
    database=wiretrn dbtype=hdam;
    record='wire transaction' segment=wiretran 
                              seglng=100;
      item='ssn - account'    lv=2  dbf=$23.  
                              se=ssnacc
                              key=y;
      item='account type'     lv=2  dbf=$1.   
                              se=accttype;
      item='wire date'        lv=2  dbf=$8.   
                              se=wiredate;
      item='wire time'        lv=2  dbf=$8.   
                              se=wiretime;
      item='wire amount'      lv=2  dbf=pd5.2 
                              se=wireammt
                              dbc=l;
      item='wire description' lv=2  dbf=$40. 
                              se=wiredesc;
   an=y;
  list all;

run;