Google
 

Trailing-Edge - PDP-10 Archives - decuslib10-11 - 43,50534/v05doc.mem
There is 1 other file named v05doc.mem in the archive. Click here to see a list.


                             PREFACE


This document is primarily intended  to  provide  non-programmers
with  the  information  necessary  to set-up and manage their own
data base.  The level of discussion assumes that the user  has  a
basic  understanding  of the host operating system and is divided
into  10  chapters:   Chapter  1  contains  general  introductory
information;   Chapters 2 through 10 describe each component that
comprises the CSSDBM system.  It  is  strongly  recommended  that
this  document  be  read  in  its  entirety  before attempting to
implement any portion of the CSSDBM system.


                              NOTE

               CSSDBM runs on the DECsystem-10 and
               DECsystem-20,    as    all   CSSDBM
               processing must  occur  on  a  disk
               type device.











                           CHAPTER 1

                          INTRODUCTION



1.1  GENERAL DESCRIPTION

CSSDBM is a general applications data processing system,  written
in  COBOL,  which enables the non-programmer to input and extract
data.  It is  designed  to  handle  many  applications  with  one
package of programs.  Further, it employs the standard DEC "ISAM"
(Indexed  Sequential  Access  Mode)  package,  which  provides  a
basically  simple but efficient means of data storage with a very
rapid   data   retrieval   rate.    Figure   1-1   provides   the
non-programmer  with  a  basic  understanding  of data processing
terms and concepts used in this manual.
                                                         Page 1-2




















































            Figure 1-1 - Basic Data Processing Terms
                                                         Page 1-3


The normal course of events necessary to go from data  input  and
storage  to  reporting on that data usually requires a minimum of
two programs:

     1.  A program to take data entered on a terminal  and  store
         it  on  the  disk,  which  also  facilitates  changes or
         updates to the file.

     2.  A program which selects, sorts and formats the data as a
         useful report.
















               Figure 1-2 - CSSDBM Basic Data Flow


Because CSSDBM was designed as a tool for users with little or no
programming   background,   the  system  generates  each  program
necessary to accomplish the  required  task  (Figure  1-2).   The
generation  of  these  programs are achieved by a simple question
and answer dialog.


There are two types of programs used in CSSDBM:

        Primary Programs    Those programs which prompt (request)
                            the information necessary to satisfy
                            the requirement.

        Secondary Programs  Those programs generated by
                            the Primary programs which
                            actually manipulate the data.
                                                         Page 1-4


There are four Primary programs to CSSDBM:

        CSSDBW              A program which asks for specific
                            information to be stored,
                            who is to gain access to this
                            information, and an opportunity
                            to request CSSDBM options. 

        CSSTOT              A program which asks for equations
                            to be performed on each record
                            in the file.

        CSSRPT              A program which asks how the
                            file data should be formatted,
                            sorted and selected to satisfy
                            a particular report requirement.

        CSSCNG              A program which asks for a new
                            record layout.  It is used when
                            the record's field arrangement
                            changes.


There are two Utility programs:

        DBMDMP              Generates a listing of field
                            names and field sizes. It also
                            produces a report generation
                            work sheet.

        CSSVLD              Generates an optional file used
                            by the data input program to
                            test for certain character values.



1.2  SYSTEM FUNCTION AND FEATURES

There are two general levels to this system.  The first  is  used
when  the  data  base  is initialized;  the second is used by the
standard Data Base Handler to input the data.  Initialization  is
performed  by  the  person  who is responsible for the data:  the
system  administrator.   The  system  administrator  must  define
fields  of  data  and select all the basic parameters of the data
base.  He must also determine who is to gain access to  the  data
and to what extent.  Further, his responsibilities include report
generation, creation of  mathematical  statistics,  and  physical
field changes to the data base.  The Data Base Handler is used by
the terminal operator responsible for data  input,  its  accuracy
and updating functions.
                                                         Page 1-5


CSSDBM allows the system user  to  create  a  COBOL  source  code
program via a series of simple question and answer dialogs.  Once
the output program is created, compiled, loaded,  and  saved,  it
can  be  run as often as required.  The user needs to only define
the program once.

Besides providing non-programmers with the  skills  to  manage  a
data  processing system, CSSDBM also minimizes the amount of time
required to train data entry personnel.  The on-line operation is
exactly  the  same  for  one file as it is for another.  Only the
field prompting information, used by the data entry personnel, is
different.



1.2.1  Unique Characteristics

CSSDBM was developed as needs were presented, thus certain unique
characteristics  arose.   These  characteristics are discussed in
the following paragraph and it is suggested that users be familar
with them before creating any data base.

CSSDBM is designed to run primarily on Digital  video  terminals.
These  are  relativily high speed terminals lending to impressive
record displays.  As a record is  updated,  it  is  displayed  in
pages.  A page is defined during the initial CSSDBW dialog and is
completely controlled by the system administrator.   The  maximum
record  size  is 4096 characters, which can be broken down into a
maximum of 50 pages.  Data  placed  on  page  zero  can  only  be
accessed  by a user with the correct privilege.  For this reason,
page zero is a good place for statistical storage or  proprietary
sections of a record.



1.2.2  OVERLAY Feature

Occasionally, situations may occur where certain  items  will  be
related  to  several  other items.  For example, a purchase order
number may relate to several items on  the  purchase  order.   To
avoid  the  redundency of inputting several records with the same
purchase order number, simply place the  purchase  order  number,
vendor  and  other  common data on one of the first pages of your
record.  The individual items and their related fields would then
be  placed  on  different pages:  specifically, the last pages of
your record which, as overlay pages, are exactly  the  same  size
and  contain  exactly the same fields.  This situation is clearly
illustrated in Chapters 2 and 3.
                                                         Page 1-6


1.2.3  Key Field

Within the data to be collected, there should  be  one  field  of
information  which  is  unique  to  distinguish  one  record from
another.  This field is defined as the KEY field.



1.2.4  Data Base Version Number

An important CSSDBM feature to be  aware  of  is  the  data  base
version number, which changes when the data base field definition
or size is altered.  When, and if, the system administrator makes
such  changes, he must also recreate the reports as their version
number would no longer match the data base  version  number,  and
none of the CSSDBM programs would read the files correctly.
                                                         Page 1-7


1.3  DATA BASE LAYOUT

Before starting out, it is essential to prepare a  list,  similar
to  the  format shown below, of information required to construct
your data base.  Number the fields sequentially, determine  their
names  and  sizes, decide if decimal places are wanted on numeric
fields (and if so, how many).  Leave Validation and Report Writer
Output  sections  blank  for now, but return and complete them as
soon as you determine your  requirements  for  them.   (Refer  to
Chapters  4  and  9,  respectively.)  Next, establish a Key Field
(Paragraph 1.2.3) and, finally, test your plan to  the  following
limit rules of CSSDBM:

       50 Pages maximum.
       32 Characters per field.              Refer to Chapter 3,
      150 Total fields.                      Pages 3-4 & 3-5.
     4096 Total characters in the record.

NOTE:  A photocopy of this page would prove invaluable to  anyone
constructing or changing a data base.

































                  Table 1-1 - Data Base Layout
                                                                                       Page 1-8


1.4  CSSDBM EXAMPLE

The following example contains sample items and their field character sizes which will be  used
throughout this document for demonstration purposes:





FIELD     FIELD                 PAGE     FIELD     DECIMAL     VALIDATION:     REPORT WRITER
NO.       NAME                  NO.      SIZE      PLACES      (A, X, N, SP,   OUTPUT:
                                                               SPEC. CHAR.)    (A, N, D)
-----     -----                 ----     -----     -------     -------------   -------------

1.        CREATION DATE         0        6         0              REFER           REFER
2.        ACCESS DATE           0        6         0                TO              TO
3.        ANNUAL SALARY         0        7         2             CHAPTER         CHAPTER 
4.        TOTAL WEEKLY INS DED  0        5         2                4               9
5.        BADGE NUMBER          1        5         0
6.        LAST NAME             1        20        0
7.        FIRST NAME            1        15        0
8.        MIDDLE INITIAL        1        2         0
9.        WAGE CLASS            1        1         0
10.       COST CENTER           1        3         0
11.       PHONE EXTENSION       1        5         0
12.       HOURLY PAY RATE       1        4         2
13.       MAIL STOP             1        3         0
14.       LOCATION CODE         1        6         0
15.       AUTO REGISTRATION     2        6         0
16.       AUTO MAKE             2        10        0
17.       REGISTRATION DATE     2        6         0
18.       WEEKLY INSUR. DED.    2        5         2


                                             NOTE

               In the above example, we have selected  field  number  5,  "BADGE
               NUMBER", as the KEY field.
                                                         Page 1-9


1.5  FILE LOOK-UP PATH SUGGESTIONS

CSSDBM may reside almost anywhere on  a  particular  system.   It
could  be  placed  on  device  SYS, NEW, PUB etc., or it could be
maintained within a particular  PPN.   This  is  totally  at  the
discretion of the system proprietor.

Once you determine where CSSDBM resides on your system,  a  great
deal  of time, confusion and redundancy can be saved by running a
system program called SETSRC.  SETSRC tells the monitor where  to
look  for  a file (such as a library) if that file is not in your
user area.  In the following example, [Proj,Prog] is the area  on
which  CSSDBM  resides.  For more information on these procedures
and other ways in which this can be  done,  consult  your  system
proprietor.



1.5.1  SETSRC Example


.R SETSRC

*A /LIB:[PROJ,PROG]

*^C











                           CHAPTER 2

                CSSDBM DATA BASE WRITER (CSSDBW)



2.1  GENERAL DESCRIPTION

The CSSDBM program that creates the Data Base Handler  is  called
CSSDBW.   No  additional  files  are  required on your disk area;
simply assign a three letter file code for your  system  such  as
"TST",  which  is used in the following example.  Unless an ASCII
sequential file already exists, CSSDBW will output the  following
files:

          DBMTST.FMT       Variable data format file
                           used by the CSSDBM programs.

          DBMTST.CBL       Source program which, when
                           compiled, loaded and saved,
                           will become your Data Base
                           Handler program.

          DBMTST.SEQ       A temporary sequential file
                           required by ISAM to create
                           your indexed sequential file.

Besides the creation of your data base, CSSDBW also performs  two
additional utility functions:

     1.  The changing of existing data base fields.

     2.  The updating of an existing  data  base  to  add  future
         features of CSSDBM.




2.2  USE OF EXISTING DATA

An existing data file can be converted into a CSSDBM data base if
it is in 7-bit ASCII form and is sorted by the KEY field on disk.
This is done  by  indicating  at  initialization  time  that  you
already have an existing sequential file.
                                                         Page 2-2


2.3  CSSDBW INITIALIZATION

There are three features to to  be  aware  of  during  data  base
initialization:

     1.  On-line Validation.

     2.  Record Creation and Access Dates.

     3.  Data Base Audit Trail.




2.3.1  On-line Validation


Because CSSDBM is a general purpose system, it is impractical  to
provide  a  sophisticated  data  editor  as each record is input.
However, it is possible  to  check  each  character  for  certain
properties, represented by the following:

          A - Requires an alpha character.
          N - Requires a numeric character.
          X - Requires any alpha or numeric character.


                              NOTE

               Any other character  requires  that
               the  character  of  the  same ASCII
               value be input.



The On-line Validation  feature  will  be  explained  in  greater
detail  in  Chapter  4, but you should be aware of the feature at
this time.



2.3.2  Record Creation and Access Dates

Another CSSDBM feature to be aware of at initialization  time  is
the  option  to  have  the  Record  Creation Date placed in field
number one, and the last  Record  Access  Date  placed  in  field
number two by the Data Base Handler.  Use of this option requires
that  fields  one  and  two  be   six   characters   in   length,
respectively.  The dates will have the standard YrMoDa format.
                                                         Page 2-3


2.3.3  Data Base Audit Trail

The Audit Trail option is available for those who wish to  record
all of the data base activity as it takes place.  This feature is
particularly  useful  when  there  are  a  number  of   personnel
maintaining  your  data base, and the capability to monitor their
activity is desireable.  A  detailed  description  of  the  Audit
Trail is explained in Chapter 6.



2.4  INITIALIZATION DIALOG

The following dialog represents the initialization of a data base
using  the sample data illustrated in Chapter 1.  Each segment of
information that CSSDBW prompts is followed  by  a  colon;   what
follows the colon is the user's response.

The first item  requested  is  (NEW  OR  OLD).   Since,  in  this
example,  we  are  creating  a  new  data  base,  the word NEW is
inserted.  The program then requests a three character file  code
to distinguish one data base from another.  This code becomes the
last three letters of the file  name  for  each  file  output  by
CSSDBW.   The program now requests that the user indicate whether
or not he  has  an  existing  sequential  file.   Following  this
response,  the  field  definition loop is entered, which requests
three items:

     1.  A twenty or less character prompt,  or  field  name,  is
         typed  in.   During  data  entry  time,  this  prompt is
         displayed to  the  data  entry  person  requesting  that
         corresponding field of information.

     2.   The size of the field (32 characters maximum).

     3.  The number of assumed decimal places from the right most
         position  of  the  field.  A carriage return response to
         this question defaults to zero  decimal  places.   Enter
         decimal  positions  in the numeric fields only;  results
         are unpredictable otherwise.

To exit from this routine, type "STOP" followed by a <CR>.


                              NOTE

               If you intend to use overlay  pages
               in your report, see "OVERLAY NOTES"
               just  prior  to  Paragraph  2.10.1.
               Following that, return to Paragraph
               2.4.1  to  begin  your  data   base
               construction.
                                                         Page 2-4


2.4.1  Initialization Example

.RUN CSSDBW

CSS DATA BASE WRITER(V05)

NEW OR OLD:  NEW
TYPE IN A 3 CHARACTER FILE CODE:  TST
DO YOU ALREADY HAVE A SEQUENTIAL FILE:  NO

1...FIELD NAME:     BADGE NUMBER
....SIZE OF FIELD:  5
....NUMBER OF DECIMAL PLACES FROM RIGHT:  <CR>

2...FIELD NAME:     NAME
....SIZE OF FIELD:  25
....NUMBER OF DECIMAL PLACES FROM RIGHT:  <CR>

3...FIELD NAME:     WAGE CLASS
....SIZE OF FIELD:  1
....NUMBER OF DECIMAL PLACES FROM RIGHT:  <CR>

4...FIELD NAME:     COST CENTER
....SIZE OF FIELD:  3
....NUMBER OF DECIMAL PLACES FROM RIGHT:  <CR>

5...FIELD NAME:     PHONE EXTENSION
....SIZE OF FIELD:  5
....NUMBER OF DECIMAL PLACES FROM RIGHT:  <CR>

6...FIELD NAME:     HOURLY RATE
....SIZE OF FIELD:  4
....NUMBER OF DECIMAL PLACES FROM RIGHT:  2

7...FIELD NAME:     MAIL STOP
....SIZE OF FIELD:  3
....NUMBER OF DECIMAL PLACES FROM RIGHT:  <CR>

8...FIELD NAME:     LOCATION CODE
....SIZE OF FIELD:  4
....NUMBER OF DECIMAL PLACES FROM RIGHT:  <CR>

9...FIELD NAME:     AUTO REGISTRATION
....SIZE OF FIELD:  6
....NUMBER OF DECIMAL PLACES FROM RIGHT:  <CR>

10..FIELD NAME:     AUTO MAKE
....SIZE OF FIELD:  10
....NUMBER OF DECIMAL PLACES FROM RIGHT:  <CR>

11..FIELD NAME:     REGISTRATION DATE
....SIZE OF FIELD:  6
....NUMBER OF DECIMAL PLACES FROM RIGHT:  <CR>
                                                         Page 2-5


12..FIELD NAME:     WEEKLY INSUR. DED.
....SIZE OF FIELD:  5
....NUMBER OF DECIMAL PLACES FROM RIGHT:  2

13..FIELD NAME:     STOP



2.5  ACCESS CODES AND PRIVILEGES

Once  fields  of  information  are  defined,  the   next   CSSDBW
requirement  is  for  the  insertion  of passwords and privileges
necessary to gain data base access.  Up to 28 different passwords
of six characters or less may be entered at this time.  With each
password, the program will request a corresponding privilege code
to  be  entered.   A  privilege  code  of  "0"  allows  read only
privileges of the data base.  This may be useful if  there  is  a
need  to  gain  access  to  the  data, without making changes.  A
privilege  code  of  "1"  allows  reading  and  writing  of   all
information  in  the  data  base, except for fields on page zero.
Issuance of this privilege is usually  reserved  for  data  entry
personnel.   A  privilege  code of "2" allows reading and writing
(excluding page zero information) and report generation.  Caution
must be taken with the issuance of a privilege code of "3", since
it  allows  maximum  file  access   and   extensive   data   base
modification.   At  least  one password with a "3" privilege code
should be issued, generally to the system administrator, so  that
data base parameters may be changed.  To break this loop when all
desired passwords and privileges have been entered, type  "STOP",
followed by a <CR>.



2.5.1  Access Codes and Privileges Example



USER'S NAME:  SMITH  <--------NOTE:  Can be any six character
THIS USER'S PRIVILEGES:  0           and/or number combination.

USER'S NAME:  JONES
THIS USER'S PRIVILEGES:  1

USER'S NAME:  HARRIS
THIS USER'S PRIVILEGES:  2

USER'S NAME:  COLE
THIS USER'S PRIVILEGES:  3

USER'S NAME:  STOP
                                                         Page 2-6


2.6  PAGING

The program now asks that the user determine the total number  of
pages required in the data base.


                              NOTE

               Do not confuse data base pages with
               sequential  page  numbers  found in
               the  upper  right-hand  corner   of
               reports, or of this manual.


Since the program doesn't count Page zero (where Record  Creation
Date,  Access  Date, and other secure data would be located), the
number entered is:  one less than the total number of pages, with
Page zero elected;  the actual number of pages, without Page zero
elected.  Thus far, this data base does not contain a Page  zero.
The  user then indicates which line (or field number) begins each
page, as shown in the following example:



2.6.1  Paging Example

IN THE FOLLOWING DIALOG TYPE <CR> IF SETTING IS OK
OR A NEW NUMBER TO CHANGE IT.


NUMBER OF PAGES: 0 : 1
TOP LINE OF PAGE 1 : 0 :  1



2.7  VALIDATION - CREATION/ACCESS DATES - AUDIT TRAIL

If you desire the On-line Validation, Record Creation and  Access
Date  or  Audit  Trail  options, they are indicated at this time.
You will also be required to type in your  name,  which  will  be
written  into  the  author's  line  of  the  COBOL  source  file.
(Understand that this name request is in no  way  connected  with
the  previous  User's  Name  and  Privileges dialog.) Because the
system was designed to run on a video terminal  having  different
screen  sizes,  you  must also indicate what type of terminal you
expect to use.  Finally, you will be requested  to  type  in  the
field number representing the KEY field, if the field the program
selected is incorrect.  Remember, this is  the  unique  field  in
your data base used to distinguish one record from another.
                                                         Page 2-7


2.7.1  Options Example


DO YOU WANT ON-LINE VALIDATION (Y OR N) [ ]:  NO

DO YOU WANT RECORD CREATION + ACCESS DATES
PLACED IN FIELDS 1 AND 2 RESPECTIVELY [ ]:  NO

DO YOU WANT AN AUDIT TRAIL:  NO

TYPE IN YOUR NAME:  JOHN DOE

TERMINAL TYPE TO BE USED (VT05, VT50, VT52, VT61, OTHER):  VT52
KEY FIELD NUMBER IS:  0 :  1



2.8  ISAM PROMPTS

CSSDBW now types out all your data base characteristics  and  the
variable responses which will be required by the ISAM prompts.



2.8.1  ISAM Information Example



SOURCE IS CALLED :  DBMTSTCBL

FORMAT IS CALLED :  DBMTSTFMT

VERSION NUMBER   :  1

OVERLAY PAGE NO. :  0

I S A M  R E S P O N S E S  <---NOTE: Jot down on paper
- - - -  - - - - - - - - -            and save for input
                                      in Chapter 5.

MAXIMUM RECORD SIZE: 77

KEY DESCRIPTOR: X  1.  5

TOTAL RECORDS PER DATA BLOCK: 64

TOTAL ENTRIES PER INDEX BLOCK: 64

EXIT
                                                         Page 2-8


You should  now  have  at  least  the  following  files  in  your
directory;  type DIR <CR> to verify.

          LIB:[PROJ, PROG]    (See Paragraph 1.5)
          DBMTST.SEQ          (Data Base Sequential File)
          DBMTST.FMT          (Data Base Format File)
          DBMAUD.FMT          (Audit Trail Format File)
              (If Audit Trail option selected.)
          DBMTST.CBL          (Data Base COBOL File)

If there are no updates  (below),  or  changes  due  to  mistakes
(Paragraph 2-10), go to Chapter 3.



2.9  UPDATE

To minimize the amount of inconvenience necessary to  upgrade  an
existing  data  base  with any newly released features of CSSDBM,
simply execute an UPDATE operation  with  CSSDBW.   This  routine
reads  in  all  the characteristics of your data base Format file
and writes out a new COBOL source file with all the new  features
included.   However, this new source must be recompiled and saved
(refer to Chapter 5, Paragraph 5.2).   The  UPDATE  operation  is
also useful for recreating your COBOL source file, plus it allows
you to elect data base options  not  previously  selected.   This
includes  the  ability to select or de-select On-line Validation,
update the Record  Access  and  Creation  Dates,  and  select  or
de-select  the  Audit  Trail.   When  performing  any function of
CSSDBW other than the NEW function, you will be required to enter
a  password  which must contain a privilege code of 3.  Note that
the version number does not change when using the UPDATE command.

The  following  example  illustrates  the  addition  of   On-line
Validation.



2.9.1  UPDATE Example


.RUN CSSDBW

CSS DATA BASE WRITER CSSDBW(V05)

NEW OR OLD:  OLD

CHANGE OR UPDATE:  UPDATE
TYPE NAME OF FORMAT FILE:  DBMTST
PASSWORD:  COLE

DO YOU WANT ON- LINE VALIDATION (Y OR N) [N]:  YES
                                                         Page 2-9


DO YOU WANT RECORD CREATION + ACCESS DATES
PLACED IN FIELDS 1 AND 2 RESPECTIVELY [N]:  NO

DO YOU WANT AN AUDIT TRAIL:  NO

TYPE IN YOUR NAME:  JOHN DOE

TERMINAL TYPE TO BE USED (VT05, VT50, VT52, VT61, OTHER): VT52

KEY FIELD NUMBER IS : 1 :
SOURCE IS CALLED :  DBMTSTCBL
FORMAT IS CALLED :  DBMTSTFMT

VERSION NUMBER   :  1

OVERLAY PAGE NO. :  0

I S A M  R E S P O N S E S
- - - -  - - - - - - - - -

MAXIMUM RECORD SIZE: 77

KEY DESCRIPTOR: X   1.  5

TOTAL RECORDS PER DATA BLOCK: 64

TOTAL ENTRIES PER INDEX BLOCK:  64

EXIT

Note:  If you've made a mistake, go to CHANGE, below.



2.10  CHANGE

As  with  most  business  situations,  the  need  for  change  is
required.   Ordinarily,  drastically  changing  a data processing
application is a long, complicated, and tedious task.  Because of
this, a provision was made to CSSDBM to completely rearrange your
file layout and still retain your original data.


                              NOTE

               If you are just building your  data
               base  and  have  not  yet input any
               data, DO NOT run CSSCNG to  correct
               any   errors  you  may  have  made.
               Rather, run CSSDBW, answering "Old"
               and   "Change"  to  the  first  two
               questions the program asks you.


The entire change transition consists of a six step operation:
                                                        Page 2-10


        1. CSSCNG      Creates a program, via a dialog, to
                       rearrange your data (Chapter 10).

        2. CSSDBW      CHANGE routine to make the same
                       adjustments made in step 1 to
                       your format file.

        3. ISAM        "Build" function (/B) to rebuild
                       your new reformatted data base.

        4. CSSVLD      Recreates your Validation
                       file, if that option was selected.

        5. CSSTOT      Recreates the arithmetic
                       processor to correct version
                       inconsistencies, if that
                       option was selected.

        6. CSSRPT      Recreates the output reports
                       to correct version inconsistencies.


The second step of the CHANGE function requires a privilege  code
of  three.   It  is assumed that the data base administrator only
issues "3" privileges to those  with  enough  responsibility  and
knowledge  to  physically change the entire structure of the data
base.

The five basic commands to the CHANGE routine of CSSDBW are:


    <CR>     If OK as is.

    I        To insert a new field name before the currently
             displayed field.

    D        To delete the currently displayed field.

    O        To overwrite the currently display field.

    F        If all remaining fields are to stay the same.

    STOP     To terminate the record at this point.

    OVERLAY  To make all following overlay pages identical.

In the following example, each of these commands are illustrated.
Also   illustrated  is  the  option  that  automatically  creates
additional overlay pages (refer to  Chapter  1)  by  a  specified
number  to  eliminate  the  redundancy of inputting fields of the
same name on each overlay page.  If your data base is  configured
for  overlay page usage, execute the OVERLAY command any time you
physically  change  your  record  format.   Note  that,  in  this
example,  in  order to add fields beyond the last field, you must
go to the last field, re-insert the last field and insert all new
                                                        Page 2-11


fields  to be appended to your record with the "I" command.  When
this is done, delete the redundant last field  and  you  will  be
taken  out  of  this  loop.  CSSDBW, by default, breaks from this
loop when  no  more  fields  exist,  thus  the  reason  for  this
procedure.

in the following example, RECORD  CREATION  DATE,  RECORD  ACCESS
DATE,  ANNUAL  SALARY  and  TOTAL WEEKLY INS DED are all inserted
before BADGE NUMBER.  NAME is  deleted  and  replaced  with  LAST
NAME,   FIRST   NAME,  and  MIDDLE  INITIAL.   LOCATION  CODE  is
overwritten to change the field size  from  4  to  6  characters.
Finally, six overlay pages are created.


                          OVERLAY NOTES

Initial Creation:

     During  initial  creation,  the  "OVERLAY"  comand  must  be
     entered  on the first field of the second overlay page.  For
     an example, see the CSSDBM Data Base Format Dump in  Chapter
     3.   "OVERLAY"  would  have  been  entered in place of "AUTO
     REGISTRATION" for line number 19, since line  number  19  is
     the first field of the second overlay page:

          19...FIELD NAME:        OVERLAY.

CHANGE Command:

     When using the "CHANGE" command, "OVERLAY" may be  used  any
     time  during  the  field  prompt  modification.   See  "AUTO
     REGISTRATION" (line number 15) in the example below.
                                                        Page 2-12


2.10.1  CHANGE Example

.RUN CSSDBW

CSS DATA BASE WRITER CSSDBW(V05)

NEW OR OLD:  OLD

CHANGE OR UPDATE:  CHANGE
TYPE NAME OF FORMAT FILE:  DBMTST
PASSWORD:  COLE

IN THE FOLLOWING DIALOG ALL PROMPT INFORMATION
AND FIELD SIZES WILL BE DISPLAYED
TYPE <CR> IF OK AS IS
  I        TO INSERT A NEW FIELD NAME BEFORE THE CURRENTLY
           DISPLAYED FIELD
  D        TO DELETE THE CURRENTLY DISPLAYED FIELD
  O        TO OVERWRITE THE CURRENTLY DISPLAYED FIELD
  F        IF ALL REMAINING FIELDS ARE TO STAY THE SAME
  STOP     TO TERMINATE THE RECORD AT THIS POINT
  OVERLAY  TO MAKE ALL FOLLOWING OVERLAY PAGES IDENTICAL

1...BADGE NUMBER          5  :I
FIELD NAME:  RECORD CREATION DATE
SIZE OF FIELD:  6
NUMBER OF DECIMAL PLACES FROM RIGHT:  <CR>

2...BADGE NUMBER          5  :I
FIELD NAME:  RECORD ACCESS DATE
SIZE OF FIELD:  6
NUMBER OF DECIMAL PLACES FROM RIGHT:  <CR>

3...BADGE NUMBER          5  :I
FIELD NAME:  ANNUAL SALARY
SIZE OF FIELD:  7
NUMBER OF DECIMAL PLACES FROM RIGHT:  2

4...BADGE NUMBER          5  :I
FIELD NAME:  TOTAL WEEKLY INS DED
SIZE OF FIELD:  5
NUMBER OF DECIMAL PLACES FROM RIGHT:  2

5...BADGE NUMBER          5  :<CR>

6...NAME                  25  :D

6...WAGE CLASS            1  :I
FIELD NAME:  LAST NAME
SIZE OF FIELD:  20
NUMBER OF DECIMAL PLACES FROM RIGHT:  <CR>
                                                        Page 2-13


7...WAGE CLASS            1  :I
FIELD NAME:  FIRST NAME
SIZE OF FIELD:  15
NUMBER OF DECIMAL PLACES FROM RIGHT:  <CR>

8...WAGE CLASS            1  :I
FIELD NAME:  MIDDLE INITIAL
SIZE OF FIELD:  2
NUMBER OF DECIMAL PLACES FROM RIGHT:  <CR>

9...WAGE CLASS            1  :<CR>

10..COST CENTER           3  :<CR>

11..PHONE EXTENSION       5  :<CR>

12..HOURLY RATE           4  :<CR>

13..MAIL STOP             3  :<CR>

14..LOCATION CODE         4  :O
FIELD NAME:  LOCATION CODE
SIZE OF FIELD:  6
NUMBER OF DECIMAL PLACES FROM RIGHT:  <CR>

15..AUTO REGISTRATION     6  :OVERLAY


TYPE IN FIRST LINE NUMBER OF FIRST OVERLAY PAGE:  15

TYPE IN LAST LINE NUMBER OF FIRST OVERLAY PAGE:  18

TYPE IN FIRST OVERLAY PAGE NUMBER:  2

TYPE IN TOTAL NUMBER OF OVERLAY PAGES IN DATA BASE:  6



2.10.2  Altering Passwords and Privileges

Once you have exited from the record change routine, you will  be
given  the  opportunity to edit your table of data base passwords
and privileges.  If the change function was used  only  to  alter
passwords  and privileges, the data base version number (refer to
Chapter 1) did not change because you did  not  physically  alter
the  size  of  your  record.   You  do  not,  therefore,  need to
recompile,  load  and  save  all  of  your  data  base  programs.
Recompilation  will  be  required, however, along with re-running
the ISAM build function "/B" (Paragraphs 5.2.1  and  5.3.1.1)  if
any physical file changes did occur.

You may display the current contents of your data  base  password
table,  append  to  it,  or  delete from it.  To delete a current
password or change an existing entry, you must answer "NO" to the
question  concerning  keeping  present  codes.   Following  that,
                                                        Page 2-14


re-enter the old passwords and  privileges  you  wish  to  retain
along  with  any  new additions.  Upon completion, terminate this
loop by typing "STOP".

To simply view the current password table  without  changing  it,
answer  "YES" to the question concerning seeing current names and
privileges. To  the  next  question  concerning  keeping  present
codes,  answer "YES" , followed by "STOP" in answer to the dialog
beginning with "USER'S NAME".



2.10.2.1  Displaying Passwords and Privileges Example - 

DO YOU WANT TO SEE CURRENT NAMES + PRIVILEGES:  YES
SMITH :..0
JONES :..1
HARRIS:..2
COLE  :..3
DO YOU WANT TO KEEP PRESENT CODES:  YES
USER'S NAME:  STOP



2.10.3  Altering Data Base Page

You will now be given the option to alter  your  data  base  page
configuration.   CSSDBW  will  display  the current value of each
page parameter and you may change these settings by typing a  new
value.   A  <CR>  will  default  as  "no change" to the displayed
setting.  Note that when using the overlay page option, all  page
settings  starting  with  the  first  overlay page number will be
automatically adjusted and displayed at this time.  If you  typed
"OVERLAY"  during the field definition routine, DO NOT change any
of the page settings beyond the first overlay page.


                              NOTE

               In the following  example,  Page  1
               now  begins  with  field  number  5
               (Badge    Number).     Since    the
               program's incorrect response was 1,
               you must change it by entering  the
               correct   response  (5)  after  the
               colon.   By  doing  so,  you   have
               indicated   to   the  program  that
               fields 1 thru  4  are  on  page  0.
               Fields 1 and 2 (Record Creation and
               Access  Dates)  are   automatically
               filled in by the Data Base Handler;
               fields 3 and 4 will  be  maintained
               by   a   CSSTOT  generated  program
               (refer to Chapter 8).
                                                        Page 2-15


2.10.3.1  Altering Data Base Page Example - 

IN THE FOLLOWING DIALOG TYPE <CR> IF SETTING IS OK
OR A NEW NUMBER TO CHANGE IT.

NUMBER OF PAGES: 7 :  <CR>
TOP LINE OF PAGE 1 :  1 :  5
TOP LINE OF PAGE 2 : 15 :  <CR>
TOP LINE OF PAGE 3 : 19 :  <CR>
TOP LINE OF PAGE 4 : 23 :  <CR>
TOP LINE OF PAGE 5 : 27 :  <CR>
TOP LINE OF PAGE 6 : 31 :  <CR>
TOP LINE OF PAGE 7 : 35 :  <CR>



DO YOU WANT ON-LINE VALIDATION (Y OR N) [Y]:  YES

DO YOU WANT RECORD CREATION + ACCESS DATES
PLACED IN FIELDS 1 AND 2 RESPECTIVELY [N]: YES

DO YOU WANT AN AUDIT TRAIL:  YES

TYPE IN YOUR NAME:  JOHN DOE

TERMINAL TYPE TO BE USED (VT05, VT50, VT52, VT61, OTHER): VT52
KEY FIELD NUMBER IS: 1 :  5
SOURCE IS CALLED :  DBMTSTCBL

FORMAT IS CALLED :  DBMTSTFMT

VERSION NUMBER   :  2

OVERLAY PAGE NO. :  2

I S A M  R E S P O N S E S  <---NOTE: Jot down on paper
- - - -  - - - - - - - - -            and save for input
                                      in Chapter 5.

MAXIMUM RECORD SIZE: 250

KEY DESCRIPTOR: X  25.  5

TOTAL RECORDS PER DATA BLOCK: 17

TOTAL ENTRIES PER INDEX BLOCK: 64

EXIT











                           CHAPTER 3

              CSSDBM DATA BASE FORMAT DUMP (DBMDMP)



3.1  GENERAL DESCRIPTION

CSSDBM stores its data files in a 6-bit configuration,  which  is
the  most efficient method of storage on the 36-bit DECsystem-10.
Because of this, it was necessary to write a utility  program  to
output  a  readable  7-bit  ASCII representation of the data base
configuration and a work sheet portion to be used when generating
a  report.   The utility program that outputs this information is
called DBMDMP.  This program reads the data base format file  and
outputs  a  file  called DMPTST.LPT, which you then output to the
line printer.

If you're building your data base and you desire a  blank  report
work  sheet  with  your  data  base  description, enter <CR> when
"Report Name" is requested.  If  you  have  an  existing  report,
having  been  constructed by CSSRPT (Chapter 9), and you desire a
tangible work sheet outlining your report for your  files,  enter
the report filename.
                                                         Page 3-2


3.1.1  DBMDMP  Example

.RUN DBMDMP

TYPE NAME OF FORMAT FILE:  DBMTST

REPORT NAME OR <CR> IF NOT A REPORT DUMP:  RPT001

EXIT



3.2  SAMPLE DBMTST.LPT DATA

You have now added a line printer (LPT) file to  your  directory;
type DIR <CR> to verify.

The following example illustrates the sample  data  as  it  would
appear  in  DMPTST.LPT.   Output  this  file  with  the following
command, after which, the LPT file will automatically be deleted:

.PRINT DMPTST.LPT
                                                                                                                            Page 3-3


FIELD   FIELD                 FLD   DECIMAL                       OUTLINE OF REPORT:  RPT001
NUMBER  NAME                 SIZE    PLACES
                                                                  GENERATED FROM FILE:DBMTST
     1..RECORD CREATION DATE    6         0
     2..RECORD ACCESS DATE      6         0                       WRITTEN BY:  JOHN DOE
     3..ANNUAL SALARY           7         2
     4..TOTAL WEEKLY INS DED    5         2                       OUTPUT   INPUT  ALPHA   T  OUTPUT TOTAL   INPUT
                                                                  FIELD    FIELD   OR     O  FIELD  OUTPUT  FIELD
         P A G E :  1                                             NUMBER   NUMBER NUMERIC T  SIZE   CHAR.   BREAKDOWN
         - - - -                                                    1         5     A     -     5     6     ---:---:---:---:---:
                                                                    2         6     A     -    20    27       1: 19:---:---:---:
     5..BADGE NUMBER            5         0                         3         7     A     -    10    38      10:  5:---:---:---:
     6..LAST NAME              20         0                         4         8     A     -     2    41     ---:---:---:---:---:
     7..FIRST NAME             15         0                         5         1     D     -     9    51     ---:---:---:---:---:
     8..MIDDLE INITIAL          2         0                         6        10     A     -     3    55     ---:---:---:---:---:
     9..WAGE CLASS              1         0                         7         4     N     -     5    63     ---:---:---:---:---:
    10..COST CENTER             3         0                         8        17     D     -     9    73     ---:---:---:---:---:
    11..PHONE EXTENSION         5         0                         9        11     A     -     5    79     ---:---:---:---:---:
    12..HOURLY RATE             4         2                        10        15     A     -     6    86     ---:---:---:---:---:
    13..MAIL STOP               3         0                        11        16     A     -    10    97     ---:---:---:---:---:
    14..LOCATION CODE           6         0                        12        18     N     Y     5   105     ---:---:---:---:---:
                                                                   13       ---     -     -   ---   ---     ---:---:---:---:---:
         P A G E :  2                                              14       ---     -     -   ---   ---     ---:---:---:---:---:
         - - - -                                                   15       ---     -     -   ---   ---     ---:---:---:---:---:
                                                                   16       ---     -     -   ---   ---     ---:---:---:---:---:
    15..AUTO REGISTRATION       6         0                        17       ---     -     -   ---   ---     ---:---:---:---:---:
    16..AUTO MAKE              10         0                        18       ---     -     -   ---   ---     ---:---:---:---:---:
    17..REGISTRATION DATE       6         0                        19       ---     -     -   ---   ---     ---:---:---:---:---:
    18..WEEKLY INSUR. DED.      5         2                        20       ---     -     -   ---   ---     ---:---:---:---:---:
                                                                   21       ---     -     -   ---   ---     ---:---:---:---:---:
         P A G E :  3                                              22       ---     -     -   ---   ---     ---:---:---:---:---:
         - - - -                                                   23       ---     -     -   ---   ---     ---:---:---:---:---:
                                                                   24       ---     -     -   ---   ---     ---:---:---:---:---:
    19..AUTO REGISTRATION       6         0                        25       ---     -     -   ---   ---     ---:---:---:---:---:
    20..AUTO MAKE              10         0                        26       ---     -     -   ---   ---     ---:---:---:---:---:
    21..REGISTRATION DATE       6         0                        27       ---     -     -   ---   ---     ---:---:---:---:---:
    22..WEEKLY INSUR. DED.      5         2                        28       ---     -     -   ---   ---     ---:---:---:---:---:
                                                                   29       ---     -     -   ---   ---     ---:---:---:---:---:
         P A G E :  4                                              30       ---     -     -   ---   ---     ---:---:---:---:---:
         - - - -                                                   31       ---     -     -   ---   ---     ---:---:---:---:---:
                                                                   32       ---     -     -   ---   ---     ---:---:---:---:---:
    23..AUTO REGISTRATION       6         0                        33       ---     -     -   ---   ---     ---:---:---:---:---:
    24..AUTO MAKE              10         0                        34       ---     -     -   ---   ---     ---:---:---:---:---:
    25..REGISTRATION DATE       6         0                        35       ---     -     -   ---   ---     ---:---:---:---:---:
    26..WEEKLY INSUR. DED.      5         2                        36       ---     -     -   ---   ---     ---:---:---:---:---:
                                                                   37       ---     -     -   ---   ---     ---:---:---:---:---:
         P A G E :  5                                              38       ---     -     -   ---   ---     ---:---:---:---:---:
         - - - -                                                   39       ---     -     -   ---   ---     ---:---:---:---:---:
                                                                   40       ---     -     -   ---   ---     ---:---:---:---:---:
    27..AUTO REGISTRATION       6         0
    28..AUTO MAKE              10         0                       OVERLAY PAGE: (Y OR N): Y
    29..REGISTRATION DATE       6         0
    30..WEEKLY INSUR. DED.      5         2                       REPORT NAME: RPT001
                                                                                                                            Page 3-4


         P A G E :  6                                             TITLE:
         - - - -
                                                                  PERSONNEL INSURANCE DEDUCTION SUMMARY BY COST CENTER
    31..AUTO REGISTRATION       6         0
    32..AUTO MAKE              10         0                       SUPPRESS:
    33..REGISTRATION DATE       6         0
    34..WEEKLY INSUR. DED.      5         2                                      IF ITS
                                                                  INPUT SYMBOL:(=,NOT,<,>):  LITERAL:
         P A G E :  7                                             01.. 6INN1        =        01.. "F"
         - - - -                                                                             02.. "G"
                                                                                             03.. --------------------------------
    35..AUTO REGISTRATION       6         0                                                  04.. --------------------------------
    36..AUTO MAKE              10         0                                                  05.. --------------------------------
    37..REGISTRATION DATE       6         0                                                  06.. --------------------------------
    38..WEEKLY INSUR. DED.      5         2                                                  07.. --------------------------------
                                                                                             08.. --------------------------------
                                                                                             09.. --------------------------------
                                                                                             10.. --------------------------------

TOTAL NUMBER OF PAGES:    7                                                      IF ITS
                                                                  INPUT SYMBOL:(=,NOT,<,>):  LITERAL:
TOP LINE OF PAGE   1..  5                                         02.. 10INN        NOT      01.. /ENTER 3 COST CNTRS FOR RPT: /
TOP LINE OF PAGE   2.. 15                                                                    02.. //
TOP LINE OF PAGE   3.. 19                                                                    03.. //
TOP LINE OF PAGE   4.. 23                                                                    04.. --------------------------------
TOP LINE OF PAGE   5.. 27                                                                    05.. --------------------------------
TOP LINE OF PAGE   6.. 31                                                                    06.. --------------------------------
TOP LINE OF PAGE   7.. 35                                                                    07.. --------------------------------
                                                                                             08.. --------------------------------
                                                                                             09.. --------------------------------
                                                                                             10.. --------------------------------
KEY FIELD IS       :          5  BADGE NUMBER
                                                                                 IF ITS
VERSION NUMBER     :          2                                   INPUT SYMBOL:(=,NOT,<,>):  LITERAL:
                                                                  03.. -------      ---      01.. --------------------------------
OVERLAY PAGE NUMBER:          2                                                              02.. --------------------------------
                                                                                             03.. --------------------------------
I S A M  R E S P O N S E S                                                                   04.. --------------------------------
- - - -  - - - - - - - - -                                                                   05.. --------------------------------
                                                                                             06.. --------------------------------
MAXIMUM RECORD SIZE          :  0250                                                         07.. --------------------------------
                                                                                             08.. --------------------------------
KEY DESCRIPTOR               :  X25.5                                                        09.. --------------------------------
                                                                                             10.. --------------------------------
TOTAL RECORDS PER DATA BLOCK :  017
                                                                                 IF ITS
TOTAL ENTRIES PER INDEX BLOCK:  064                               INPUT SYMBOL:(=,NOT,<,>):  LITERAL:
                                                                  04.. -------      ---      01.. --------------------------------
                                                                                             02.. --------------------------------
                                                                                             03.. --------------------------------
                                                                                             04.. --------------------------------
                                                                                             05.. --------------------------------
                                                                                             06.. --------------------------------
                                                                                             07.. --------------------------------
                                                                                             08.. --------------------------------
                                                                                                                            Page 3-5


                                                                                             09.. --------------------------------
                                                                                             10.. --------------------------------

                                                                                 IF ITS
                                                                  INPUT SYMBOL:(=,NOT,<,>):  LITERAL:
                                                                  05.. -------      ---      01.. --------------------------------
                                                                                             02.. --------------------------------
                                                                                             03.. --------------------------------
                                                                                             04.. --------------------------------
                                                                                             05.. --------------------------------
                                                                                             06.. --------------------------------
                                                                                             07.. --------------------------------
                                                                                             08.. --------------------------------
                                                                                             09.. --------------------------------
                                                                                             10.. --------------------------------

                                                                                 IF ITS
                                                                  INPUT SYMBOL:(=,NOT,<,>):  LITERAL:
                                                                  06.. -------      ---      01.. --------------------------------
                                                                                             02.. --------------------------------
                                                                                             03.. --------------------------------
                                                                                             04.. --------------------------------
                                                                                             05.. --------------------------------
                                                                                             06.. --------------------------------
                                                                                             07.. --------------------------------
                                                                                             08.. --------------------------------
                                                                                             09.. --------------------------------
                                                                                             10.. --------------------------------

                                                                                 IF ITS
                                                                  INPUT SYMBOL:(=,NOT,<,>):  LITERAL:
                                                                  07.. -------      ---      01.. --------------------------------
                                                                                             02.. --------------------------------
                                                                                             03.. --------------------------------
                                                                                             04.. --------------------------------
                                                                                             05.. --------------------------------
                                                                                             06.. --------------------------------
                                                                                             07.. --------------------------------
                                                                                             08.. --------------------------------
                                                                                             09.. --------------------------------
                                                                                             10.. --------------------------------

                                                                                 IF ITS
                                                                  INPUT SYMBOL:(=,NOT,<,>):  LITERAL:
                                                                  08.. -------      ---      01.. --------------------------------
                                                                                             02.. --------------------------------
                                                                                             03.. --------------------------------
                                                                                             04.. --------------------------------
                                                                                             05.. --------------------------------
                                                                                             06.. --------------------------------
                                                                                             07.. --------------------------------
                                                                                             08.. --------------------------------
                                                                                             09.. --------------------------------
                                                                                             10.. --------------------------------
                                                                                                                            Page 3-6


                                                                                 IF ITS
                                                                  INPUT SYMBOL:(=,NOT,<,>):  LITERAL:
                                                                  09.. -------      ---      01.. --------------------------------
                                                                                             02.. --------------------------------
                                                                                             03.. --------------------------------
                                                                                             04.. --------------------------------
                                                                                             05.. --------------------------------
                                                                                             06.. --------------------------------
                                                                                             07.. --------------------------------
                                                                                             08.. --------------------------------
                                                                                             09.. --------------------------------
                                                                                             10.. --------------------------------

                                                                                 IF ITS
                                                                  INPUT SYMBOL:(=,NOT,<,>):  LITERAL:
                                                                  10.. -------      ---      01.. --------------------------------
                                                                                             02.. --------------------------------
                                                                                             03.. --------------------------------
                                                                                             04.. --------------------------------
                                                                                             05.. --------------------------------
                                                                                             06.. --------------------------------
                                                                                             07.. --------------------------------
                                                                                             08.. --------------------------------
                                                                                             09.. --------------------------------
                                                                                             10.. --------------------------------

                                                                  SORTING SEQUENCE: 10INN, 6INN, 7INN

                                                                  DO YOU WANT DOUBLE SPACING: (Y OR N): N

                                                                  DO YOU WANT A NEW PAGE ON THE BREAK:  N

                                                                  NUMBER OF LINES TO SKIP AFTER BREAK:  3


BADGE   LAST                   FIRST        MID  CREATION    COST  TOT WEEK  REGISTRAT.  PHONE   REGIST.  AUTO         WEEK INS
NUMBER  NAME                   NAME         INI    DATE      CNTR  INS DED      DATE     EXTEN.  NUMBER   MAKE         DEDUCT.

[END]











                           CHAPTER 4

               CSSDBM VALIDATION HANDLER (CSSVLD)



4.1  GENERAL DESCRIPTION

The  CSSVLD  handler  is  required  if  you  intend  to   perform
arithmetic calculations using CSSTOT (Chapter 8).

Although CSSDBM is not  a  sophisticated  data  editor,  it  does
provide  a character by character check for certain conditions at
input and update time.  By using a single record 6-bit data file,
it is possible to check each character for the following:

    A     Requires an alpha character.
    N     Requires a numeric character.
    X     Requires any alpha or numeric character.


                              NOTE

               Any other character requires that a
               character  of  the same ASCII value
               to be input, unless:

               1.  You space over said  characters
                   with the space bar.

               2.  You depress <CR> at that point.

               3.  You have depressed  <CR>  prior
                   to said character.






4.2  CSSVLD DIALOG

CSSVLD begins  by  requesting  your  data  base  file  name.   In
response  to  your answer, the program reads in your format file,
thus obtaining all of the data base parameters.  The program  now
requests "NEW OR OLD".  If you are creating a Validation File for
                                                         Page 4-2


the first time, type "NEW".  If  you  type  "OLD",  your  current
Validation  File  will  be  read in from the disk and you will be
able to alter it.  Next, you will enter a simple loop which  will
display:

     1.  The data base field name and your old validation field.

     2.  The data base field name, followed  by  the  field  size
         between colons.

     3.  The field name once more, plus a colon.

Now, type in your validation data.  Upon completion of all fields
in your data base, the program will exit back to the monitor.


                              NOTE

               Exceeding  the   field   delimiting
               colons results in the truncation of
               those characters.





4.3  CSSVLD OUTPUT FILES

The two files that CSSVLD outputs are:


        1. DBMTST.VLD   One record 6-bit Validation
                        File used by the Data Base
                        Handler program.

        2. VLDTST.LPT   7-bit readable ASCII repres-
                        entation of the 6-bit Validation
                        File which can be printed
                        for information purposes.




                              NOTE

               The "TST"  portion  of  the  output
               file's  name is the three character
               file name of your data base.
                                                         Page 4-3


4.4  NEW VALIDATION FILE EXAMPLE

The  following  example  illustrates  the  creation  of   a   new
Validation  File.   Note  that  typing  the  word "SPACES" in the
validation field causes  that  field  to  be  left  blank.   (See
Paragraph 4.5.1, Field 3.) If spaces are wanted in just a portion
of the field, simply depress  the  space  bar  when  setting  the
validation  for  that  portion.  Note that "Record Creation Date"
and "Record Access Date" (Fields 1 and 2 below) must be validated
as  "NNNNNN"  or  "SPACES".   You  will  also find that by typing
"OVERLAY", once you have completed the validation fields for your
first  overlay  page,  all  of  the  following overlay pages will
contain the same validation information.  (See Field 19, below.)


.RUN CSSVLD

CSSDBM VALIDATION ROUTINE CSSVLD(V05)

TYPE NAME OF FORMAT FILE:  DBMTST
(NEW OR OLD) VALIDATION FILE:  NEW
  1...RECORD CREATION DATE:      :
  1...RECORD CREATION DATE:------:
  1...RECORD CREATION DATE:NNNNNN
  2...RECORD ACCESS DATE  :      :
  2...RECORD ACCESS DATE  :------:
  2...RECORD ACCESS DATE  :NNNNNN
  3...ANNUAL SALARY       :       :
  3...ANNUAL SALARY       :-------:
  3...ANNUAL SALARY       :NNNNNNN
  4...TOTAL WEEKLY INS DED:     :
  4...TOTAL WEEKLY INS DED:-----:
  4...TOTAL WEEKLY INS DED:NNNNN
  5...BADGE NUMBER        :     :
  5...BADGE NUMBER        :-----:
  5...BADGE NUMBER        :NNNNN
  6...LAST NAME           :                    :
  6...LAST NAME           :--------------------:
  6...LAST NAME           :AAAAAAAAAAAAAAAAAAAA
  7...FIRST NAME          :               :
  7...FIRST NAME          :---------------:
  7...FIRST NAME          :AAAAAAAAAAAAAAA
  8...MIDDLE INITIAL      :  :
  8...MIDDLE INITIAL      :--:
  8...MIDDLE INITIAL      :XX
  9...WAGE CLASS          : :
  9...WAGE CLASS          :-:
  9...WAGE CLASS          :N
 10...COST CENTER         :   :
 10...COST CENTER         :---:
 10...COST CENTER         :XXX
 11...PHONE EXTENSION     :     :
 11...PHONE EXTENSION     :-----:
 11...PHONE EXTENSION     :NNNNN
                                                         Page 4-4


 12...HOURLY RATE         :    :
 12...HOURLY RATE         :----:
 12...HOURLY RATE         :NNNN
 13...MAIL STOP           :   :
 13...MAIL STOP           :---:
 13...MAIL STOP           :XXX
 14...LOCATION CODE       :      :
 14...LOCATION CODE       :------:
 14...LOCATION CODE       :XXXXXX
 15...AUTO REGISTRATION   :      :
 15...AUTO REGISTRATION   :------:
 15...AUTO REGISTRATION   :XXXXXX
 16...AUTO MAKE           :          :
 16...AUTO MAKE           :----------:
 16...AUTO MAKE           :XXXXXXXXXX
 17...REGISTRATION DATE   :      :
 17...REGISTRATION DATE   :------:
 17...REGISTRATION DATE   :78NNNN
 18...WEEKLY INSUR. DED.  :     :
 18...WEEKLY INSUR. DED.  :-----:
 18...WEEKLY INSUR. DED.  :L
#17
 17...REGISTRATION DATE   :78NNNN:
 17...REGISTRATION DATE   :------:
 17...REGISTRATION DATE   :7NNNNN
 18...WEEKLY INSUR. DED.  :     :
 18...WEEKLY INSUR. DED.  :-----:
 18...WEEKLY INSUR. DED.  :NNNNN
 19...AUTO REGISTRATION   :      :
 19...AUTO REGISTRATION   :------:
 19...AUTO REGISTRATION   :OVERLAY

EXIT


You have now added DBMTST.VLD (Data  Base  Validation  File)  and
VLDTST.LPT  (Data  Base  Validation  Line  Printer  File) to your
directory;  type DIR <CR> to verify.

To review the completed Validation File on the  terminal  screen,
type:   "TYPE  VLDTST.LPT" <CR>.  (The LPT file in your directory
will not be automatically deleted.) To  receive  a  line  printer
copy,  type  the  following command, after which, the LPT will be
deleted:

.PRINT VLDTST.LPT

If there are no changes to be made, proceed to Chapter 5.
                                                         Page 4-5


4.5  CHANGING OLD VALIDATION FILE

You may change the value of any validation  field  in  your  data
base by using the OLD dialog, if the physical size of your record
did not change;  by using the NEW dialog if it did.



4.5.1  Changing Old Validation File Example

It may be desireable to jump from one field to another  while  in
this  dialog,  particularly  if only one or two validation fields
require change.  For this reason you may type "L" (Line  Command)
<CR> at any time, and CSSVLD will respond with a # (number sign).
Your response will take you to the  field  number  specified  and
permit inputting to proceed from that point.


                              NOTE

               If the letter "L" is input as  data
               in  any  position  other  than  the
               first data character (such  as  the
               "l" in Charles), it will not invoke
               the Line Command.


The following example illustrates changes to  an  old  Validation
File.


.RUN CSSVLD

CSSDBM VALIDATION ROUTINE CSSVLD(V05)

TYPE NAME OF FORMAT FILE:  DBMTST
(NEW OR OLD) VALIDATION FILE:  OLD
  1...RECORD CREATION DATE:NNNNNN:
  1...RECORD CREATION DATE:------:
  1...RECORD CREATION DATE:L
# 3
  3...ANNUAL SALARY       :NNNNNNN:
  3...ANNUAL SALARY       :-------:
  3...ANNUAL SALARY       :SPACES
  4...TOTAL WEEKLY INS DED:NNNNN:
  4...TOTAL WEEKLY INS DED:-----:
  4...TOTAL WEEKLY INS DED:SPACES
  5...BADGE NUMBER        :NNNNN:
  5...BADGE NUMBER        :-----:
  5...BADGE NUMBER        :F

EXIT
                                                         Page 4-6


To observe the modified Validation File on  the  terminal  screen
(which  does  not  automatically  delete  the  LPT file from your
directory), type the following command:

.TYPE VLDTST.LPT
  1...RECORD CREATION DATE : NNNNNN
  2...RECORD ACCESS DATE   : NNNNNN
  3...ANNUAL SALARY        :
  4...TOTAL WEEKLY INS DED :
  5...BADGE NUMBER         : NNNNN
  6...LAST NAME            : AAAAAAAAAAAAAAAAAAAA
  7...FIRST NAME           : AAAAAAAAAAAAAAA
  8...MIDDLE INITIAL       : XX
  9...WAGE CLASS           : N
 10...COST CENTER          : XXX
 11...PHONE EXTENSION      : NNNNN
 12...HOURLY RATE          : NNNN
 13...MAIL STOP            : XXX
 14...LOCATION CODE        : XXXXXX
 15...AUTO REGISTRATION    : XXXXXX
 16...AUTO MAKE            : XXXXXXXXXX
 17...REGISTRATION DATE    : 7NNNNN
 18...WEEKLY INSUR. DED.   : NNNNN
 19...AUTO REGISTRATION    : XXXXXX
 20...AUTO MAKE            : XXXXXXXXXX
 21...REGISTRATION DATE    : 7NNNNN
 22...WEEKLY INSUR. DED.   : NNNNN
 23...AUTO REGISTRATION    : XXXXXX
 24...AUTO MAKE            : XXXXXXXXXX
 25...REGISTRATION DATE    : 7NNNNN
 26...WEEKLY INSUR. DED.   : NNNNN
 27...AUTO REGISTRATION    : XXXXXX
 28...AUTO MAKE            : XXXXXXXXXX
 29...REGISTRATION DATE    : 7NNNNN
 30...WEEKLY INSUR. DED.   : NNNNN
 31...AUTO REGISTRATION    : XXXXXX
 32...AUTO MAKE            : XXXXXXXXXX
 33...REGISTRATION DATE    : 7NNNNN
 34...WEEKLY INSUR. DED.   : NNNNN
 35...AUTO REGISTRATION    : XXXXXX
 36...AUTO MAKE            : XXXXXXXXXX
 37...REGISTRATION DATE    : 7NNNNN
 38...WEEKLY INSUR. DED.   : NNNNN











                           CHAPTER 5

               CSSDBM FINAL DATA BASE REQUIREMENTS



5.1  GENERAL DESCRIPTION

CSSDBM requires the completion of two final steps before the data
base is ready for input.

     1.  Compile, load, and save your Data Base Handler.

     2.  Create index and data files from  your  sequential  file
         using ISAM.




5.2  COMPILE, LOAD, AND SAVE

The compile, load and save operations are the same for all CSSDBM
generated  programs,  and  require  the  file  ECHO.REL,  a Macro
library of subroutines, to be loaded with each generated  program
as  shown  below.  Your program should always compile error free,
unless you've elected to use the Audit Trail option.  If so,  you
may  receive  four  warnings  at  compile  time,  but  do  not be
concerned as they do not effect the execution of your  Data  Base
Handler program.



5.2.1  Compile, Load, and Save Example

The following example illustrates  the  compile,  load  and  save
procedure of our test data base.


.LOAD DBMTST.CBL,ECHO
COBOL:  DBMTST  [DBMTST.CBL]

WARNINGS:

    0527  RIGHT-MOST TRUNCATION ON AUD-HOLD
    0550  RIGHT-MOST TRUNCATION ON AUD-NEW
    0663  RIGHT-MOST TRUNCATION ON AUD-OLD
                                                         Page 5-2


    0672  RIGHT-MOST TRUNCATION ON AUD-NEW
NO FATAL ERRORS, 4 WARNINGS
LINK:   Loading

EXIT

.SAVE
DBMTST SAVED



5.3  ISAM

The CSSDBM system  provides  all  the  ISAM  (Indexed  Sequential
Access   Mode)   responses   required   to  make  the  data  base
operational, thus keeping with  the  original  concept  to  avoid
technical  knowledge  of  either COBOL or ISAM.  All responses to
ISAM, therefore, which are not received  from  either  CSSDBW  or
DBMDMP  will  be identical to those used in this document.  For a
detailed description of ISAM, refer  to  the  DECsystem-10  COBOL
User's Guide, AA-0939B-TB.



5.3.1  ISAM Functions

The three basic functions of ISAM are:

        /B  -   Build

        /P  -   Packing

        /M  -   Maintenance

The /B function is used for initially creating a data  base.   In
doing  this,  an  indexed  sequential  file  is  created  from  a
sequential file.  The /P function  creates  an  ASCII  sequential
file  from  your  indexed  sequential  file,  and the /M function
aligns your index file with your data file.  Note that the /M and
/P functions are only used for utility purposes.
                                                         Page 5-3


5.3.1.1  /B Example - 

This example illustrates the creation of a test data  base.   All
responses   entered  are  either  zeroes,  which  are  parameters
maintained efficiently by  the  monitor,  or  variable  responses
calculated by either CSSDBW or DBMDMP.



                              NOTE

               In response to the ISAM querie  for
               "MAXIMUM NUMBER OF RECORDS FILE CAN
               BECOME", enter the estimated number
               of  records you feel your data base
               will grow to include.


.R ISAM


*=DBMTST.SEQ/B
MODE OF INPUT FILE: A
MODE OF DATA FILE: S
MAXIMUM RECORD SIZE: 250
KEY DESCRIPTOR: X25.5
RECORDS PER INPUT BLOCK: 0
TOTAL RECORDS PER DATA BLOCK: 17
EMPTY RECORDS PER DATA BLOCK: 0
TOTAL ENTRIES PER INDEX BLOCK: 64
EMPTY ENTRIES PER INDEX BLOCK: 0
PERCENTAGE OF DATA FILE TO LEAVE EMPTY: 0
PERCENTAGE OF INDEX FILE TO LEAVE EMPTY: 0
MAXIMUM NUMBER OF RECORDS FILE CAN BECOME: 10000

1 LEVEL OF INDEX
0 DATA RECORDS


*^C
                                                         Page 5-4


If you are creating a data base for the first  time,  proceed  to
the  directory  listing  at  the bottom of Paragraph 5.3.1.3, and
then to Chapter 6;  to Chapter 7 if the Audit  Trail  option  was
not selected.



5.3.1.2  /P Example - 

This ISAM example illustrates the /P function,  or  packing  your
indexed sequential data base back to an ASCII sequential file.

.R ISAM


*=DBMTST.IDX/P
MODE OF OUTPUT FILE: A
RECORDS PER OUTPUT BLOCK: 0

*^C



5.3.1.3  /M Example - 

This ISAM example illustrates the /M, or  maintenance  procedure,
which  should be performed periodically to realign your index and
data files.  Although nothing is ever  lost,  failure  to  comply
results  in  a  substantial increase in the overhead of your data
base.  In this dialog,  all  of  your  ISAM  parameters  will  be
displayed.   A <CR> response should always be used as it defaults
to the original setting.  An on-line message of "TOP INDEX  BLOCK
SPLIT,  FILE  SHOULD BE REORGANIZED" when running the CSSDBM Data
Base Handler (Chapter 7), will  indicate  that  the  /M  function
should be used.

.R ISAM

*=DBMTST.IDX/M
TOTAL RECORDS PER DATA BLOCK (17): <CR>
EMPTY RECORDS PER DATA BLOCK (0): <CR>
TOTAL ENTRIES PER INDEX BLOCK (64): <CR>
EMPTY ENTRIES PER INDEX BLOCK (0): <CR>
PERCENTAGE OF DATA FILE TO LEAVE EMPTY (0): <CR>
PERCENTAGE OF INDEX FILE TO LEAVE EMPTY (0): <CR>
MAXIMUM NUMBER OF RECORDS FILE CAN BECOME (10000): <CR>

1 LEVEL OF INDEX
0 DATA RECORDS


*^C
                                                         Page 5-5


Additional files have again been added to your  directory;   type
DIR <CR> to verify that the following are present:

          LIB:[PROJ,PROG]     (See Paragraph 1.5)
          DBMTST.SEQ          (Data Base Sequential File)
          DBMTST.FMT          (Data Base Format File)
          DBMAUD.FMT          (Audit Trail Format File)
              (If Audit Trail option selected.)
          DBMTST.CBL          (Data Base COBOL File)
          DBMTST.VLD          (Data Base Validation File)
              (If On-line Validation option selected.)
          DBMTST.REL          (Data Base Relocatable File)
          DBMTST.EXE          (Data Base Executable File)
          DBMTST.IDA          (Data Base Data File)
          DBMTST.IDX          (Data Base Index File)











                           CHAPTER 6

                    CSSDBM AUDIT TRAIL OPTION



6.1  GENERAL DESCRIPTION

The CSSDBM Audit Trail option was implemented to provide the data
base  administrator  with  a tool to totally monitor all activity
within his file.   Since  CSSDBM(V05)  allows  simultaneous  file
update,  the  need  to  monitor file activity has increased.  The
Audit Trail was designed to be nothing more than  another  CSSDBM
ISAM file, thus making it accessable by the CSSDBM report writer,
CSSRPT.  This is particularly useful if you  wish  to  qualify  a
particular event which may have taken place within your data base
without manually examining numerous pages of listings.


                              NOTE

               You can not have more than one data
               base  with  the  Audit Trail option
               for each PPN [Proj,Prog].
                                                         Page 6-2


6.2  AUDIT TRAIL RECORD FORMAT



FIELD          FIELD                    FIELD     COMMENTS
NUMBER         NAME                     SIZE

  1.           TRANSACTION DATE, TIME   15        KEY FIELD
               AND DATA BASE FIELD NUMBER

  2.           TRANSACTION CODE         1         0 = RECORD INSERTED
                                                  1 = RECORD CHANGED
                                                  2 = RECORD DELETED

  3.           PASSWORD USED            6         PASSWORD OF PERSON
                                                  UPDATING DATA BASE

  4.           RECORD KEY               32        DATA BASE KEY
                                                  FOR THE RECORD BEING
                                                  UPDATED.

  5.           FIELD NUMBER             3         THE FIELD NUMBER UPON
                                                  WHICH THE UPDATE TAKES
                                                  PLACE.

  6.           FIELD NAME               20        THE PROMPT FROM THE
                                                  FORMAT FILE FOR THIS
                                                  FIELD

  7.           OLD DATA                 32        THE DATA AS IT
                                                  APPEARED BEFORE THE
                                                  UPDATE TOOK PLACE.

  8.           NEW DATA                 32        THE DATA AS IT IS NOW
                                                  FOLLOWING THE UPDATE.




6.3  AUDIT TRAIL RECORDING SCHEME

When a record is inserted into your data base, an entry  is  made
in  the  Audit  Trail  for  each  field  containing  data.  While
changing a record in your data base, an Audit Trail entry is made
for  each  field  you  changed.  If you delete a record, an Audit
Trail entry will be made for each field  of  the  deleted  record
which contained data.
                                                         Page 6-3


6.4  IMPLEMENTATION PROCEDURE

If you requested the Audit Trail during the CSSDBW  routine,  the
Audit Trail's ISAM format file will be output to the disk as well
as your data base format file, and will contain the same password
table  as your data base format file.  If you intend to create an
Audit Trail report using CSSRPT (refer to Paragraph  6.5  and  to
Chapter 9), execute the following ISAM command file:



6.4.1  ISAM Command File Execution


.R ISAM

*@DBMAUD.CCL

1 LEVEL OF INDEX
0 DATA RECORDS

*^C



6.4.2  B E W A R E  !

Since the Audit Trail tracks ALL data base activity, the file  is
subject  to  become  very  large, very fast.  Re-execution of the
command file, as demonstrated above, will bring your Audit  Trail
down to zero entries without loosing your ISAM files on the disk.



6.5  AUDIT TRAIL REPORT EXAMPLE

The following is an example of  sequential  report  generated  by
CSSRPT (refer to Chapter 9) of the Audit Trail:
                                                                                                                            Page 6-4


                                             CSSDBM(V05) AUDIT TRAIL SEQUENTIAL SUMMARY                                     PAGE   1
                                                      RUN ON 31-MAY-78 AT 11:48

TRANS/TRANS   TR PASSWD  KEY    FLD  FIELD                 DATA BEFORE                       DATA AFTER
DATE /TIME    CD USED    FIELD       NAME                  TRANSACTION                       TRANSACTION

780531112011  1  JONES   1      010  COST CENTER           625                               201
780531112018  1  JONES   1      015  AUTO REGISTRATION                                       K22105
780531112021  1  JONES   1      016  AUTO MAKE                                               CHEVY
780531112028  1  JONES   1      017  REGISTRATION DATE                                       771201
780531112034  1  JONES   1      018  WEEKLY INSUR. DED.                                      232
780531112059  1  JONES   1      019  AUTO REGISTRATION                                       212320
780531112104  1  JONES   1      020  AUTO MAKE                                               HORNET
780531112113  1  JONES   1      021  REGISTRATION DATE                                       780205
780531112118  1  JONES   1      022  WEEKLY INSUR. DED.                                      450
780531112202  1  JONES   212    010  COST CENTER           403                               201
780531112208  1  JONES   212    015  AUTO REGISTRATION                                       712155
780531112212  1  JONES   212    016  AUTO MAKE                                               VOLVO
780531112221  1  JONES   212    017  REGISTRATION DATE                                       770917
780531112226  1  JONES   212    018  WEEKLY INSUR. DED.                                      517
780531112255  1  JONES   156    010  COST CENTER           327                               201
780531112300  1  JONES   156    015  AUTO REGISTRATION                                       557546
780531112306  1  JONES   156    016  AUTO MAKE                                               VOLVO
780531112315  1  JONES   156    017  REGISTRATION DATE                                       771114
780531112319  1  JONES   156    018  WEEKLY INSUR. DED.                                      445
780531112642  1  JONES   167    010  COST CENTER           519                               201
780531112650  1  JONES   167    015  AUTO REGISTRATION                                       356734
780531112654  1  JONES   167    016  AUTO MAKE                                               PONTIAC
780531112700  1  JONES   167    018  WEEKLY INSUR. DED.                                      387
780531112707  1  JONES   167    017  REGISTRATION DATE                                       780109
780531112754  1  JONES   190    010  COST CENTER           510                               201
780531112800  1  JONES   190    015  AUTO REGISTRATION                                       B59807
780531112802  1  JONES   190    016  AUTO MAKE                                               FORD
780531112808  1  JONES   190    017  REGISTRATION DATE                                       771002
780531112814  1  JONES   190    018  WEEKLY INSUR. DED.                                      650
780531112906  1  JONES   12     010  COST CENTER           211                               201
780531112911  1  JONES   12     015  AUTO REGISTRATION                                       596021
780531112917  1  JONES   12     016  AUTO MAKE                                               TRIUMPH
780531112923  1  JONES   12     017  REGISTRATION DATE                                       780101
780531112928  1  JONES   12     018  WEEKLY INSUR. DED.                                      512
780531113020  1  JONES   134    010  COST CENTER           625                               202
780531113028  1  JONES   134    015  AUTO REGISTRATION                                       250926
780531113037  1  JONES   134    016  AUTO MAKE                                               VOLKSWAGON
780531113052  1  JONES   134    017  REGISTRATION DATE                                       770212
780531113058  1  JONES   134    018  WEEKLY INSUR. DED.                                      323
780531113129  1  JONES   145    010  COST CENTER           252                               202
780531113135  1  JONES   145    015  AUTO REGISTRATION                                       460059
780531113139  1  JONES   145    016  AUTO MAKE                                               SUBARU
780531113144  1  JONES   145    017  REGISTRATION DATE                                       770912
780531113148  1  JONES   145    018  WEEKLY INSUR. DED.                                      240
780531113203  1  JONES   201    010  COST CENTER           650                               202
780531113216  1  JONES   201    015  AUTO REGISTRATION                                       513270
780531113220  1  JONES   201    016  AUTO MAKE                                               BMW
780531113224  1  JONES   201    017  REGISTRATION DATE                                       771206
780531113228  1  JONES   201    018  WEEKLY INSUR. DED.                                      1032
                                                                                                                            Page 6-5


                                             CSSDBM(V05) AUDIT TRAIL SEQUENTIAL SUMMARY                                     PAGE   2
                                                      RUN ON 31-MAY-78 AT 11:48

TRANS/TRANS   TR PASSWD  KEY    FLD  FIELD                 DATA BEFORE                       DATA AFTER
DATE /TIME    CD USED    FIELD       NAME                  TRANSACTION                       TRANSACTION

780531113255  1  JONES   189    010  COST CENTER           283                               202
780531113259  1  JONES   189    015  AUTO REGISTRATION                                       A15217
780531113304  1  JONES   189    016  AUTO MAKE                                               PONTIAC
780531113310  1  JONES   189    017  REGISTRATION DATE                                       770925
780531113314  1  JONES   189    018  WEEKLY INSUR. DED.                                      577
780531113321  1  JONES   189    019  AUTO REGISTRATION                                       N80275
780531113324  1  JONES   189    020  AUTO MAKE                                               CHEVY
780531113330  1  JONES   189    021  REGISTRATION DATE                                       780117
780531113338  1  JONES   189    022  WEEKLY INSUR. DED.                                      232
780531113407  1  JONES   123    010  COST CENTER           713                               203
780531113413  1  JONES   123    015  AUTO REGISTRATION                                       285141
780531113417  1  JONES   123    016  AUTO MAKE                                               DODGE
780531113421  1  JONES   123    017  REGISTRATION DATE                                       770505
780531113425  1  JONES   123    018  WEEKLY INSUR. DED.                                      585
780531113442  1  JONES   178    010  COST CENTER           292                               203
780531113447  1  JONES   178    015  AUTO REGISTRATION                                       353802
780531113454  1  JONES   178    016  AUTO MAKE                                               FORD
780531113503  1  JONES   178    017  REGISTRATION DATE                                       770115
780531113508  1  JONES   178    018  WEEKLY INSUR. DED.                                      623
780531113554  1  JONES   100    010  COST CENTER           385                               203
780531113558  1  JONES   100    015  AUTO REGISTRATION                                       596212
780531113608  1  JONES   100    016  AUTO MAKE                                               MG
780531113611  1  JONES   100    017  REGISTRATION DATE                                       770517
780531113614  1  JONES   100    018  WEEKLY INSUR. DED.                                      423
780531113620  1  JONES   100    019  AUTO REGISTRATION                                       522187
780531113623  1  JONES   100    020  AUTO MAKE                                               AUDI
780531113627  1  JONES   100    021  REGISTRATION DATE                                       780201
780531113630  1  JONES   100    022  WEEKLY INSUR. DED.                                      333
780531113702  1  JONES   111    010  COST CENTER           215                               203
780531113733  1  JONES   111    015  AUTO REGISTRATION                                       122574
780531113749  1  JONES   111    016  AUTO MAKE                                               DATSUN
780531113758  1  JONES   111    017  REGISTRATION DATE                                       771020
780531113801  1  JONES   111    018  WEEKLY INSUR. DED.                                      515
780531113811  1  JONES   111    019  AUTO REGISTRATION                                       208373
780531113813  1  JONES   111    020  AUTO MAKE                                               CORVETTE
780531113817  1  JONES   111    021  REGISTRATION DATE                                       770510
780531113820  1  JONES   111    022  WEEKLY INSUR. DED.                                      625
780531113957  0  JONES   1532   001  RECORD CREATION DATE  @RECORD INSERTED                  780531
780531113957  0  JONES   1532   002  RECORD ACCESS DATE    @RECORD INSERTED                  780531
780531113958  0  JONES   1532   005  BADGE NUMBER          @RECORD INSERTED                  1532
780531113958  0  JONES   1532   006  LAST NAME             @RECORD INSERTED                  HARVARD
780531113958  0  JONES   1532   007  FIRST NAME            @RECORD INSERTED                  JOHN
780531113958  0  JONES   1532   008  MIDDLE INITIAL        @RECORD INSERTED                  P.
780531113958  0  JONES   1532   009  WAGE CLASS            @RECORD INSERTED                  4
780531113958  0  JONES   1532   010  COST CENTER           @RECORD INSERTED                  672
780531113958  0  JONES   1532   011  PHONE EXTENSION       @RECORD INSERTED                  82754
780531113958  0  JONES   1532   012  HOURLY RATE           @RECORD INSERTED                  1320
780531113958  0  JONES   1532   013  MAIL STOP             @RECORD INSERTED                  S21
780531113958  0  JONES   1532   014  LOCATION CODE         @RECORD INSERTED                  PK3-2
                                                                                                                            Page 6-6


                                             CSSDBM(V05) AUDIT TRAIL SEQUENTIAL SUMMARY                                     PAGE   3
                                                      RUN ON 31-MAY-78 AT 11:48

TRANS/TRANS   TR PASSWD  KEY    FLD  FIELD                 DATA BEFORE                       DATA AFTER
DATE /TIME    CD USED    FIELD       NAME                  TRANSACTION                       TRANSACTION

780531113958  0  JONES   1532   015  AUTO REGISTRATION     @RECORD INSERTED                  N22187
780531113958  0  JONES   1532   016  AUTO MAKE             @RECORD INSERTED                  OLDSMOBILE
780531113958  0  JONES   1532   017  REGISTRATION DATE     @RECORD INSERTED                  770917
780531113959  0  JONES   1532   018  WEEKLY INSUR. DED.    @RECORD INSERTED                  528
780531114013  2  JONES   1532   001  RECORD CREATION DATE  780531                            @RECORD DELETED
780531114013  2  JONES   1532   002  RECORD ACCESS DATE    780531                            @RECORD DELETED
780531114013  2  JONES   1532   005  BADGE NUMBER          1532                              @RECORD DELETED
780531114013  2  JONES   1532   006  LAST NAME             HARVARD                           @RECORD DELETED
780531114014  2  JONES   1532   007  FIRST NAME            JOHN                              @RECORD DELETED
780531114014  2  JONES   1532   008  MIDDLE INITIAL        P.                                @RECORD DELETED
780531114014  2  JONES   1532   009  WAGE CLASS            4                                 @RECORD DELETED
780531114014  2  JONES   1532   010  COST CENTER           672                               @RECORD DELETED
780531114014  2  JONES   1532   011  PHONE EXTENSION       82754                             @RECORD DELETED
780531114014  2  JONES   1532   012  HOURLY RATE           1320                              @RECORD DELETED
780531114014  2  JONES   1532   013  MAIL STOP             S21                               @RECORD DELETED
780531114014  2  JONES   1532   014  LOCATION CODE         PK3-2                             @RECORD DELETED
780531114014  2  JONES   1532   015  AUTO REGISTRATION     N22187                            @RECORD DELETED
780531114014  2  JONES   1532   016  AUTO MAKE             OLDSMOBILE                        @RECORD DELETED
780531114014  2  JONES   1532   017  REGISTRATION DATE     770917                            @RECORD DELETED
780531114014  2  JONES   1532   018  WEEKLY INSUR. DED.    528                               @RECORD DELETED


                      Additional files have again been added to your directory;   type
                      DIR <CR> to verify that the following are present:

                                LIB:[PROJ,PROG]     (See Paragraph 1.5)
                                DBMTST.SEQ          (Data Base Sequential File)
                                DBMTST.FMT          (Data Base Format File)
                                DBMAUD.FMT          (Audit Trail Format File)
                                    (If Audit Trail option selected.)
                                DBMTST.CBL          (Data Base COBOL File)
                                DBMTST.VLD          (Data Base Validation File)
                                    (If On-line Validation option selected.)
                                DBMTST.REL          (Data Base Relocatable File)
                                DBMTST.EXE          (Data Base Executable File)
                                DBMTST.IDA          (Data Base Data File)
                                DBMTST.IDX          (Data Base Index File)
                                DBMAUD.IDA          (Audit Trail Data File)*
                                DBMAUD.IDX          (Audit Trail Index File)*
                                    *(If Audit Trail option selected.)











                           CHAPTER 7

                CSSDBM DATA BASE HANDLER (DBMTST)



7.1  GENERAL DESCRIPTION

The data input portion of CSSDBM can now be  implemented  if  the
Data  Base  Handler  has  been  compiled,  loaded,  and saved per
instructions in Chapter 5.  Note that the Handler also  fills  in
the  "Record  Creation  Date"  and  "Record  Access  Date" fields
automatically, if that option was previously selected.



7.2  DBMTST DIALOG

Program execution occurs by typing  "RUN  DBMTST".   The  program
will  then  request a password, which, for security reasons, will
not be echoed back to the terminal.  If the password  corresponds
to one of the codes entered by the data base administrator during
initializtion, the program will respond with its name and it will
then  request  "LONG  OR SHORT DIALOG".  Response to this inquiry
depends upon the type of terminal you're using.  When using a low
speed,  hard  copy terminal, a great deal of teletype chatter can
be eliminated by typing "SHORT" in answer to this question.
                                                         Page 7-2


7.2.1  DBMTST Dialog Example

.RUN DBMTST

PASSWORD:  JONES
CSS DATA BASE MANAGEMENT SYSTEM CSSDBM(V05)

LONG OR SHORT DIALOG:  LONG



7.3  DBMTST COMMANDS

The program is now ready to receive commands, which is  indicated
by  an  asterisk.   Typing  anything  other  than  a recognizable
command at this time results in the  program  responding  with  a
short help key, and returning with an asterisk.




                              NOTE

               All references to  the  data  being
               displayed  after a command are only
               effective if  the  LONG  dialog  is
               used.  When using the SHORT dialog,
               inserting a "T" command  (Paragraph
               7.3.2)  displays  the first page of
               the record.





7.3.1  DBMTST Commands Example

*HELP
C  TO CHANGE
D  TO DELETE
F  TO CLOSE OUT FILE
I  TO INSERT
N  FOR NEXT RECORD
P  FOR NEXT PAGE
S  TO SEARCH
T  TO TYPE CURRENT RECORD



7.3.2  Type Command (T)

Typing "T" causes Page 1 of the current record to  be  displayed.
Note  that  this is the only way to display the record if the the
short dialog was selected at the beginning of the  program  above
(Paragraph 7.2).
                                                         Page 7-3


7.3.2.1  Type Command Example - 

*T
  5  BADGE NUMBER          :123
  6  LAST NAME             :DOE
  7  FIRST NAME            :JOHN
  8  MIDDLE INITIAL        :P.
  9  WAGE CLASS            :4
 10  COST CENTER           :54C
 11  PHONE EXTENSION       :43214
 12  HOURLY RATE           :250
 13  MAIL STOP             :
 14  LOCATION CODE         :



7.3.3  Insert Command (I)

Typing an "I" at this time sets the program to the  Insert  mode.
The  program remains in this mode until an "F" (Finish) is typed,
to allow one record  after  another  to  be  input  with  minimal
communication with the program.

While inserting, the program will display the size of each  field
(or  the  optional  validation data, if used) between two colons.
This will be followed by the field name on the next line.


                              NOTE

               When inputting, do not be concerned
               if   all  of  the  fields  are  not
               displayed.  Possibly, you have  not
               been   granted   the  privilege  to
               access those lines which are not.





7.3.3.1  Insert Command Example - 

In the following example, note that  the  data  field  input  for
field  11  did  not validate against the validation field, and is
flagged as a data error.  There  may  be  an  exception  to  your
validation  field  which would necessitate overriding this error.
For example, if you input a rejected  field  twice,  exactly  the
same  way  for  a total of three times, the error will be flagged
again but the data will be accepted.  This condition  exists  for
both the input and record change routines.  Observe also, the use
of the "L" command in field 13 to skip to a desired  record  line
while in Insert mode.  (Refer to Paragraph 4.5.1.)
                                                         Page 7-4


*I
  5                        :NNNNN:
  5  BADGE NUMBER          :123
  6                        :AAAAAAAAAAAAAAAAAAAA:
  6  LAST NAME             :DOE
  7                        :AAAAAAAAAAAAAAA:
  7  FIRST NAME            :JOHN
  8                        :XX:
  8  MIDDLE INITIAL        :P.
  9                        :N:
  9  WAGE CLASS            :4
 10                        :XXX:
 10  COST CENTER           :54C
 11                        :NNNNN:
 11  PHONE EXTENSION       :43A1D
 11                        :NNNNN:
 11  PHONE EXTENSION       :43A1D
DATA E R R O R                ^ ^
 11                        :NNNNN:
 11  PHONE EXTENSION       :43214
 12                        :NNNN:
 12  HOURLY RATE           :250
 13                        :XXX:
 13  MAIL STOP             :L
#16
 16                        :XXXXXXXXXX:
 16  AUTO MAKE             :FORD
 17                        :7NNNNN:
 17  REGISTRATION DATE     :770201
 18                        :NNNNN:
 18  WEEKLY INSUR. DED.    :520
 19                        :XXXXXX:
 19  AUTO REGISTRATION     :A55121
 20                        :XXXXXXXXXX:
 20  AUTO MAKE             :DODGE
 21                        :7NNNNN:
 21  REGISTRATION DATE     :780423
 22                        :NNNNN:
 22  WEEKLY INSUR. DED.    :250



7.3.3.2  Insert Command Options - 

The following Insert command options are available:

1.       Once you have input as much data  as  desired,  you  can
         write  out  the  current  record  and  begin the next by
         typing "F".  If the LONG  dialog  is  requested  at  the
         beginning  of the program, page 1 will be displayed each
         time you complete a record.
                                                         Page 7-5


EXAMPLE:

 23                        :XXXXXX:
 23  AUTO REGISTRATION     :F
  5  BADGE NUMBER          :123
  6  LAST NAME             :DOE
  7  FIRST NAME            :JOHN
  8  MIDDLE INITIAL        :P.
  9  WAGE CLASS            :4
 10  COST CENTER           :54C
 11  PHONE EXTENSION       :43214
 12  HOURLY RATE           :250
 13  MAIL STOP             :
 14  LOCATION CODE         :


2.       Typing an "F" in the first  field  of  your  data  base,
         while  in  the  Insert  mode,  will take you out of this
         loop;  the program will return  with  the  asterisk  and
         wait for your next command.

EXAMPLE:

  5                        :NNNNN:
  5  BADGE NUMBER          :F
*



7.3.4  Search Command (S)

The Search command is represented by an "S".  When searching  for
a  record  within  your  data  base,  search for the unique field
defined as the data base Key Field.  In  this  example,  the  Key
Field  is "BADGE NUMBER".  If the program successfully finds your
record, it will display Page  1  provided  the  LONG  dialog  was
selected;  the SHORT dialog causes the program to respond with an
asterisk, with the "T" command required to display the record.
                                                         Page 7-6


7.3.4.1  Search Command Example - 

*S
TYPE IN THE KEY YOU ARE SEARCHING FOR:  123
  5  BADGE NUMBER          :123
  6  LAST NAME             :DOE
  7  FIRST NAME            :JOHN
  8  MIDDLE INITIAL        :P.
  9  WAGE CLASS            :4
 10  COST CENTER           :54C
 11  PHONE EXTENSION       :43214
 12  HOURLY RATE           :250
 13  MAIL STOP             :
 14  LOCATION CODE         :


If your record is not found in the data base,  the  program  will
respond with "NO SUCH KEY".

EXAMPLE:

*S
TYPE IN THE KEY YOU ARE SEARCHING FOR:  25172
NO SUCH KEY



7.3.5  Change Command (C)

The "C" command provides the capability  to  change  the  current
record.   Prior to using it, however, either the Search or Insert
commands must have previously been used.  Once  "C"  is  entered,
the  first  page  of the current record will be displayed and the
line numbers to be changed will be requested.  These line numbers
may  be  entered in any order.  Follow each entry with a <CR> and
terminate your selection by typing either  a  zero  or  an  extra
<CR>.   Note  that  the  same  validation rules hold true for the
Change routine as for the Insert routine, provided the validation
option is used.  The difference between the Change and the Insert
command using the Validation File, is that the data to be changed
is displayed instead of the validation information.  A blank data
field will display the blanks.
                                                         Page 7-7


7.3.5.1  Change Command Example - 

*C
  5  BADGE NUMBER          :123
  6  LAST NAME             :DOE
  7  FIRST NAME            :JOHN
  8  MIDDLE INITIAL        :P.
  9  WAGE CLASS            :4
 10  COST CENTER           :54C
 11  PHONE EXTENSION       :43214
 12  HOURLY RATE           :250
 13  MAIL STOP             :
 14  LOCATION CODE         :
TYPE IN LINE NUMBERS YOU WISH TO CHANGE
TERMINATE WITH A 0 OR EXTRA <CR>
*13
*14
*0

The program  will  then  request  that  the  fields  selected  be
rewritten.   Upon  completion,  Page 1 of the record just changed
will be shown.

EXAMPLE:

 13  MAIL STOP             :   :
 13                        :A23
 14  LOCATION CODE         :      :
 14                        :PK-1
  5  BADGE NUMBER          :123
  6  LAST NAME             :DOE
  7  FIRST NAME            :JOHN
  8  MIDDLE INITIAL        :P.
  9  WAGE CLASS            :4
 10  COST CENTER           :54C
 11  PHONE EXTENSION       :43214
 12  HOURLY RATE           :250
 13  MAIL STOP             :A23
 14  LOCATION CODE         :PK-1
                                                         Page 7-8


7.3.6  Next Command (N)

The "N" command allows advancement to the next  record  from  the
current  record.   You  will  be shown Page 1 the next record and
then returned to the asterisk.



7.3.6.1  Next Command Example - 

*N
  5  BADGE NUMBER          :145
  6  LAST NAME             :JONES
  7  FIRST NAME            :JOHN
  8  MIDDLE INITIAL        :P.
  9  WAGE CLASS            :2
 10  COST CENTER           :521
 11  PHONE EXTENSION       :33421
 12  HOURLY RATE           :555
 13  MAIL STOP             :P22
 14  LOCATION CODE         :PK-3


A number placed after the "N" causes the program  to  advance  by
that  number of records;  you will be shown that record, followed
by asterisk.  The maximum number that can be used with  the  Next
command  is  99;   advancement beyond the limitations of the file
results in the program typing "END OF FILE".

EXAMPLE:

*N20
END OF FILE



7.3.7  Page Command (P)

The "P" command causes the requested page  to  be  displayed.   A
non-existent  page  request  will  display Page 1.  The format is
"Pn", where "n" is the page number you wish to see.
                                                         Page 7-9


7.3.7.1  Page Comand Example - 

*P2
 15  AUTO REGISTRATION     :
 16  AUTO MAKE             :FORD
 17  REGISTRATION DATE     :770201
 18  WEEKLY INSUR. DED.    :520



7.3.8  Delete Command (D)

The "D" command allows deletion  of  an  entire  record.   Having
typed  "D",  you  will  be  requested  to  type  in the key field
corresponding to the specific record to be deleted.   Page  1  of
that  record will be displayed and the program will ask:  "DELETE
THIS RECORD...ARE YOU SURE?" Any response other than "YES" or "Y"
will cause the record to remain intact.



7.3.8.1  Delete Command Example - 

*D
TYPE KEY TO BE DELETED:  123
  5  BADGE NUMBER          :123
  6  LAST NAME             :DOE
  7  FIRST NAME            :JOHN
  8  MIDDLE INITIAL        :P.
  9  WAGE CLASS            :4
 10  COST CENTER           :54C
 11  PHONE EXTENSION       :43214
 12  HOURLY RATE           :250
 13  MAIL STOP             :A23
 14  LOCATION CODE         :PK-1

DELETE THIS RECORD...ARE YOU SURE?  Y



7.3.9  Finish Command (F)

The "F" command at this level causes the program to exit  to  the
monitor.



7.3.9.1  Finish Command Example - 

*F

EXIT

.
                                                        Page 7-10


7.4  DBMTST OVERVIEW

The following example, using the Next ("N") Command,  illustrates
what  the  user  would  see  had  he  the privilege to access all
information in the file:

.RUN DBMTST

PASSWORD:  COLE
CSS DATA BASE MANAGEMENT SYSTEM CSSDBM(V05)

LONG OR SHORT DIALOG:  L
*N
  1  RECORD CREATION DATE  :780516
  2  RECORD ACCESS DATE    :780516
  3  ANNUAL SALARY         :
  4  TOTAL WEEKLY INS DED  :
  5  BADGE NUMBER          :145
  6  LAST NAME             :JONES
  7  FIRST NAME            :JOHN
  8  MIDDLE INITIAL        :P.
  9  WAGE CLASS            :2
 10  COST CENTER           :521
 11  PHONE EXTENSION       :33421
 12  HOURLY RATE           :555
 13  MAIL STOP             :P22
 14  LOCATION CODE         :PK-3





*F

EXIT


The files you now have in your directory are the  same  as  those
previously  listed  at  the  end of Chapter 6, with the exception
that both the .IDA (Data) and .IDX (Index) files  have  increased
somewhat in size;  type DIR <CR> to verify.











                           CHAPTER 8

              CSSDBM ARITHEMETIC PROCESSOR (CSSTOT)



8.1  GENERAL DESCRIPTION

CSSTOT was written to provide non-programmers with the  means  of
converting  mathematical  logic  into an acceptable program via a
simple on-line dialog.

Once data has been entered into your file, it may be desirable to
generate statistical information within each record for analysis.
To do this, CSSTOT  creates  a  COBOL  source  file  which,  when
executed,   reads   each   record   in  your  file  and  performs
mathematical operations on it.  The  record  is  then  rewritten.
Some  advance  consideration  (Paragraph  8.1.1)  should be given
before running CSSTOT to avoid confusion.



8.1.1  Special CSSTOT Parameters

Because of the high volume  of  data  accessed  by  CSSTOT,  some
precautions were taken during its development.

     1.  A privilege code of 3 is required to run  CSSTOT  and  a
         privilege  code  of 2 is required to execute the program
         output by CSSTOT.

     2.  Users must  have  a  data  base  Validation  File.   The
         program uses this file to ensure that all fields in your
         mathematical  operation  are  numeric.   The  validation
         fields  must  either  contain  "N's"  or spaces.  If you
         create a validation field  containing  all  spaces,  the
         data entry routine (DBMTST in this document) will accept
         nothing in that field.  This prevents  data  from  being
         entered  into  a  field which will be overwritten by the
         Arithmetic Processor, CSSTOT.

     3.  If you have modified your data base with CSSCNG (Chapter
         10),  it  may  be  necessary  for  you  to  change  your
         Validation File (DBMTST.VLD) with CSSVLD (Paragraph 4.5)
         before this Arithmetic Processor will work.
                                                         Page 8-2


8.2  INPUT FORMAT

Input to CSSTOT should be in the  form  of  an  equation  not  to
exceed  72  characters.   Each equation must be terminated with a
period, followed by a <CR>.  Items in each equation can be either
field symbols or integers, and parenthesis may be used to qualify
your operation.  The only format restrictions are:

     1.  Spaces must be placed between each item or  integer  and
         the operational sign.

     2.  The destination  of  the  calculations  must  always  be
         specified first.

     3.  All field references must be followed by a delimiter  of
         "INN";   the intended field number will be recognized as
         an integer, otherwise.




8.2.1  CSSTOT Example

The following  example  illustrates  the  arithemetic  operations
required  to  produce  the report illustrated in Chapter 9, after
Paragraph 9.7.2.  Note that most  error  conditions  are  flagged
when  you  input  your  equation;   entry  errors  can  be easily
corrected by jumping back to the  error  with  the  "L"  command,
Paragraph 4.5.1.

Observe the special symbol "@", following  the  "INN"  delimiter,
below  in  equation 2.  This symbol represents the collective sum
for each corresponding item on all following overlay  pages,  and
will  be rejected, obviously, if your file is not configured with
overlay pages.

Compiler warnings may occur if the output field size is less than
the  input  field  size.  These warnings won't prevent execution,
but understand what they are telling you.  Fatal errors,  on  the
otherhand,  prevent  CSSTOT  form  operating and will not let you
continue unitl the problem has been corrected.
                                                         Page 8-3


Once all equations have been entered, type an extra <CR> to write
your  program  onto  the  disk.   Next,  the  program  should  be
compilied, loaded with ECHO.REL, as shown below, and saved.  Once
this  is  done, it can be run as often as a re-computation within
your file is necessary.


                              NOTE

               The 3 character  indentifier  asked
               for can be any 3 characters of your
               choosing, but it is recomended that
               they,  in  some  way,  identify the
               data base for which CSSTOT has been
               written.



Mathematical Symbols:

         +    ADD
         -    SUBTRACT
         *    MULTIPLY
         /    DIVIDE


.RUN CSSTOT

TYPE NAME OF INPUT FORMAT FILE: DBMTST
PASSWORD:  COLE

CSS ARITHMETIC PROCESSOR CSSTOT(V05)

TYPE A 3 CHARACTER IDENTIFIER FOR THIS APPLICATION:  001

TYPE IN YOUR NAME:  JOHN DOE
TYPE IN UP TO 30 EQUATIONS; TERMINATE EACH WITH A PERIOD. 

  1 : 3INN = 1
WRONG NUMBER OF PERIODS IN STATEMENT
  1 : 7INN = 1.
7INN IS NOT NUMERIC IN THE VALIDATION FILE
  1 : 3INN = (12INN * 40) * 52).
WRONG NUMBER OF PARENTHESIS
  1 : 3INN = (12INN * 40).
  2 : L
# 1
  1 : 3INN = ((12INN * 40) * 52).
  2 : 4INN = 18INN@.
  3 : <CR>
    CREATING TOT001.CBL  ...
EXIT
                                                         Page 8-4


.LOAD TOT001.CBL,ECHO
COBOL:  TOT001  [TOT001.CBL]

WARNINGS:

    0177  MOST SIGNIFICANT DIGITS TRUNCATED ON 3INN
NO FATAL ERRORS, 1 WARNING
LINK:   Loading

EXIT

.SAVE
TOT001 SAVED



.RUN TOT001

PASSWORD:  HARRIS


EXIT
                                                         Page 8-5


A check of your directory will show that you  have  added  3  new
files:

     TOT001.CBL          (Arithmetic Process COBOL File)
     TOT001.REL          (Arithmetic Process Relocatable File)
     TOT001.EXE          (Arithmetic Process Executable File)

As several of these files are no longer required and  are  taking
up valuable space, they can, and should, be deleted.  Those files
are:

     DBMTST.SEQ          (Data Base Sequential File)
     DBMTST.CBL          (Data Base COBOL File)
     DBMTST.REL          (Data Base Relocatable File)
     TOT001.CBL          (Arithmetic Process COBOL File)
     TOT001.REL          (Arithmetic Process Relocatable File)

When completed,  your  directory  should  contain  the  following
files.  Verify by typing DIR <CR>.

     LIB:[PROJ,PROG]     (See Paragraph 1.5)
     DBMTST.FMT          (Data Base Format File)
     DMBAUD.FMT          (Audit Trail Format File)
         (If Audit Trail option selected.)
     DBMTST.VLD          (Data Base Validation File)
         (If On-line Validation option selected.)
     DBMTST.EXE          (Data Base Executable File)
     DBMTST.IDA          (Data Base Data File)
     DBMTST.IDX          (Data Base Index File)
     DBMAUD.IDA          (Audit Trail Data File)*
     DBMAUD.IDX          (Audit Trail Index File)*
         *(If Audit Trail option selected.)
     TOT001.EXE          (Arithmetic Process Executable File)











                           CHAPTER 9

                  CSSDBM REPORT WRITER (CSSRPT)



9.1  GENERAL DESCRIPTION

Once the data  input  phase  of  CSSDBM  is  complete,  the  data
extraction   process   can   begin.    The  CSSDBM  program  that
acomplishes  this  task  is  called  the  CSSDBM  Report   Writer
(CSSRPT).    CSSRPT   has   the   facilities  to  sort,  arrange,
selectively extract, and total data to suit each user's  specific
needs.   Before  attempting to generate a report, the user should
reference the work sheet provided by DBMDMP (Paragraph 3.2).

To minimize error, the Report Writer was designed to present  the
entire  dialog  in  as simple and foolproof a manner as possible.
Significant thought, however, should go into the  desired  output
format  before  running  CSSRPT.   As  with  most general purpose
systems, some restrictions exist and should be understood  before
attempting  to  generate  reports.   These  restrictions  are  as
follows:

     1.  Output is limited to 132 characters when using the  line
         printer (a printer restriction).

     2.  CSSRPT will only run on files created with CSSDBW.

     3.  Output is limited to 72 characters when using  the  user
         terminal (TTY).



                              NOTE

               Because many system users  wish  to
               keep  some data confidential, it is
               recommended that  the  same  person
               who initialized the system generate
               its output.
                                                         Page 9-2


9.2  REPORT GENERATION AND ACCESS PRIVILEGE

To begin report generation, type "RUN CSSRPT".  The program  will
then request the name of the format file from which the report is
to be generated.  If the report is of your Audit Trial,  "DBMAUD"
is  the  correct  response.  (See Paragraph 6.5.) Prompts for the
Project, Programmer number on which the data base and format file
reside  are asked for next.  If these reside on your user area, a
<CR> response will cause CSSRPT to reference your area.

From the format file,  CSSRPT  reads  the  table  of  users,  and
requests   a   password.    One  of  the  codes  entered  by  the
administrator upon initialization of the system  must  be  typed.
If done successfully, the program responds with its name.  If the
password is invalid, the program will exit  to  the  monitor.   A
privilege  code  of  2  or 3 is required to run the report writer
(CSSRPT);  a code equal to or  greater  than  the  one  given  in
answer  to  the  question  "ENTER  PRIVILEGE REQUIRED TO RUN THIS
REPORT:" will be allowed to run the report, once built.  Typing a
<CR> defaults to a privilege level of 2.

The program then asks "NEW OR OLD:".  With this feature, you  may
change  values  in  existing reports, as illustrated later in the
chapter.  In the following example, we will be creating  a  "NEW"
report.

Once it is established that the user will be  allowed  to  access
the  data,  the  program  will ask "DO YOU WANT TO SEE YOUR INPUT
BEFORE PROCEEDING (Y OR N):".  Users not completely familiar with
the  input  configuration,  should answer "YES" to this question.
Preferably, this should be done on a hard copy terminal  so  that
the  field  description  can be retained.  The DBMDMP program, as
described in Chapter 3, should be used  as  a  worksheet  in  the
generation of the report.



9.2.1  CSSRPT Example

.RUN CSSRPT

TYPE NAME OF INPUT FORMAT FILE: DBMTST

ENTER DATA BASE PROJECT PROGRAMMER NUMBER
OR <CR> IF DATA BASE IS ON THIS AREA
PPN:  <CR>
PASSWORD:  HARRIS

CSS REPORT GENERATOR CSSRPT(V05)

NEW OR OLD:  NEW
                                                              Page 9-3


DO YOU WANT TO SEE YOUR INPUT BEFORE PROCEEDING
(Y OR N):  YES

  FLD FIELD                FIELD  :  FLD FIELD                FIELD  :
  NUM NAME                  SIZE  :  NUM NAME                  SIZE  :

   1..RECORD CREATION DATE..   6  :   2..RECORD ACCESS DATE  ..   6  :
   3..ANNUAL SALARY       ..   7  :   4..TOTAL WEEKLY INS DED..   5  :
   5..BADGE NUMBER        ..   5  :   6..LAST NAME           ..  20  :
   7..FIRST NAME          ..  15  :   8..MIDDLE INITIAL      ..   2  :
   9..WAGE CLASS          ..   1  :  10..COST CENTER         ..   3  :
  11..PHONE EXTENSION     ..   5  :  12..HOURLY RATE         ..   4  :
  13..MAIL STOP           ..   3  :  14..LOCATION CODE       ..   6  :
  15..AUTO REGISTRATION   ..   6  :  16..AUTO MAKE           ..  10  :
  17..REGISTRATION DATE   ..   6  :  18..WEEKLY INSUR. DED.  ..   5  :
  19..AUTO REGISTRATION   ..   6  :  20..AUTO MAKE           ..  10  :
  21..REGISTRATION DATE   ..   6  :  22..WEEKLY INSUR. DED.  ..   5  :
  23..AUTO REGISTRATION   ..   6  :  24..AUTO MAKE           ..  10  :
  25..REGISTRATION DATE   ..   6  :  26..WEEKLY INSUR. DED.  ..   5  :
  27..AUTO REGISTRATION   ..   6  :  28..AUTO MAKE           ..  10  :
  29..REGISTRATION DATE   ..   6  :  30..WEEKLY INSUR. DED.  ..   5  :
  31..AUTO REGISTRATION   ..   6  :  32..AUTO MAKE           ..  10  :
  33..REGISTRATION DATE   ..   6  :  34..WEEKLY INSUR. DED.  ..   5  :
  35..AUTO REGISTRATION   ..   6  :  36..AUTO MAKE           ..  10  :
  37..REGISTRATION DATE   ..   6  :  38..WEEKLY INSUR. DED.  ..   5  :



9.3  AUTHOR'S NAME AND OUTPUT DEVICE SELECTION

The program now requests that the user enter his name, which will
be written into the author's line of the COBOL source file.

CSSRPT also features a means of outputting a very select  segment
of  information  to a user terminal (TTY) for quick reference.  A
<CR>  defaults  to  "device  disk"   (DSK),   unless   "TTY"   is
specifically  typed.   If  "TTY" is entered, the program will ask
"OUTPUT TO A VT05:".  A "YES" response pages every 20  lines;   a
"NO" response causes each page of output to contain 58 lines.



9.3.1  Privilege, Author and Output Device Example

ENTER PRIVILEGE REQUIRED TO RUN THIS REPORT:  1

TYPE IN YOUR NAME:  JOHN DOE

OUTPUT DEVICE (DSK OR TTY):  DSK
WILL OUTPUT TO DSK
                                                         Page 9-4


9.4  OUTPUT DEFINITION

9.4.1  Long or Short Dialog

Output definition begins by the program  asking  "LONG  OR  SHORT
DIALOG:".   Users  not  totally  familiar  with  the input should
select the long dialog as it  is  more  explanatory.   The  short
dialog  is  designed  for  users familiar with their input and/or
running on a low speed terminal.



9.4.2  Input to Output Field Correspondence

The program now  enters  a  loop  which  completely  defines  the
report's  output  appearance.  The first question asked is "INPUT
FIELD NUMBER:".  In response, the  user  types  the  input  field
number which will be placed in the first column, or field, of the
output.  Typing a field number which has  already  been  selected
results in CSSRPT responding with "FIELD USED BEFORE.  PROCEED (Y
OR N):".  If "Y" is typed, the program will continue  to  process
this field as if it had not been previously selected.  Otherwise,
it will loop back to display "INPUT FIELD  NUMBER:"  again.   The
program  will  verify  your  choice  by  displaying  the selected
field's number, its name and size.


                              NOTE

               If a  field  is  output  more  than
               once, it can only be broken down on
               the  first   occurance   (Paragraph
               9.4.5).
                                                         Page 9-5


9.4.3  Field Alpha, Numeric or Date Characteristics

The program loop continues by displaying "FIELD ALPHA, NUMERIC OR
DATE  (A,  N  OR  D):".   Typing  a  <CR>  or  an  "A" assumes an
alpha-numeric field.  If an "N" is typed (numeric),  the  program
will  display  "DO  YOU  WANT  TO  TOTAL  THIS  FIELD:".  A "YES"
response produces subtotals for these fields on  each  change  of
the  first sort, and grand totals at the report's conclusion.  If
totals are requested for a field, or if  the  field  has  decimal
positions,  you  will not be allowed to reduce the field, because
integers cannot be broken down.  If  the  "D"  (date)  option  is
specified,  the  input field, which must be six characters of the
form "YYMMDD" (780927),  will  be  displayed  on  the  report  as
"DD-MON-YY"  (27-SEP-78).   This conversion occurs only after all
sorting and suppression takes place.

To use the Date Suppression feature  (Paragraph  9.6.4)  however,
the field must be defined as either "N" or "D" at this time.



9.4.4  Output Field Size

The next step in the input loop requests the user to "TYPE  TOTAL
OUTPUT  FIELD SIZE:" into which the input field will be moved.  A
<CR> for this response will use the input field size as  default.
Conservative  users  may  decide  that adequate informaton can be
obtained from the first 15 characters of  a  25  character  input
field.   The system displays the cummulative total of characters,
plus minimum spacing in your output  record,  to  keep  the  user
aware  of  the  132  character  limit, or 72 character limit when
output device selected was TTY.


                              NOTE

               The total characters displayed  are
               equal  to  one plus the input field
               size.  If  specified  numeric,  and
               not  broken down, one will be added
               for a possible "-" minus  sign  and
               another for the decimal point if it
               applies.    On   dates,   plan   on
               allowing  10 characters to be added
               to the running total.
                                                         Page 9-6


9.4.5  Field Breakdown

Finally, the program allows the user to break a field into two or
more  smaller  fields,  to  permit access to these sub-fields, by
asking:  "FIELD BREAKDOWN EXTRA <CR> WHEN DONE".  If no breakdown
is  wanted,  simply  enter  a  <CR>.   Having selected all output
fields, this loop is broken by typing  "STOP"  when  the  program
next displays "INPUT FIELD NUMBER:".
                                                         Page 9-7


9.4.5.1  Field Breakdown Example - 

LONG OR SHORT DIALOG:  L

ANSWER THE FOLLOWING ABOUT YOUR OUTPUT:

INPUT FIELD NUMBER: 5

  FLD FIELD                FIELD  :
  NUM NAME                  SIZE  :

   5..BADGE NUMBER        ..   5  :
FIELD ALPHA, NUMERIC OR DATE (A, N OR D): <CR>

TYPE TOTAL OUTPUT FIELD SIZE:  <CR>
FIELD BREAKDOWN EXTRA <CR> WHEN DONE
*<CR>
6 CHARACTERS APPROXIMATELY

INPUT FIELD NUMBER: 6

  FLD FIELD                FIELD  :
  NUM NAME                  SIZE  :

   6..LAST NAME           ..  20  :
FIELD ALPHA, NUMERIC OR DATE (A, N OR D): <CR>

TYPE TOTAL OUTPUT FIELD SIZE:  <CR>
FIELD BREAKDOWN EXTRA <CR> WHEN DONE
*1
*19
*<CR>
27 CHARACTERS APPROXIMATELY

INPUT FIELD NUMBER: 7

  FLD FIELD                FIELD  :
  NUM NAME                  SIZE  :

   7..FIRST NAME          ..  15  :
FIELD ALPHA, NUMERIC OR DATE (A, N OR D): <CR>

TYPE TOTAL OUTPUT FIELD SIZE:  10
FIELD BREAKDOWN EXTRA <CR> WHEN DONE
*<CR>
38 CHARACTERS APPROXIMATELY
                                                         Page 9-8


INPUT FIELD NUMBER: 8

  FLD FIELD                FIELD  :
  NUM NAME                  SIZE  :

   8..MIDDLE INITIAL      ..   2  :
FIELD ALPHA, NUMERIC OR DATE (A, N OR D): <CR>

TYPE TOTAL OUTPUT FIELD SIZE:  <CR>
FIELD BREAKDOWN EXTRA <CR> WHEN DONE
*<CR>
41 CHARACTERS APPROXIMATELY

INPUT FIELD NUMBER: 1

  FLD FIELD                FIELD  :
  NUM NAME                  SIZE  :

   1..RECORD CREATION DATE..   6  :
FIELD ALPHA, NUMERIC OR DATE (A, N OR D): D
51 CHARACTERS APPROXIMATELY

INPUT FIELD NUMBER: 10

  FLD FIELD                FIELD  :
  NUM NAME                  SIZE  :

  10..COST CENTER         ..   3  :
FIELD ALPHA, NUMERIC OR DATE (A, N OR D): <CR>

TYPE TOTAL OUTPUT FIELD SIZE:  <CR>
FIELD BREAKDOWN EXTRA <CR> WHEN DONE
*<CR>
55 CHARACTERS APPROXIMATELY

INPUT FIELD NUMBER: 4

  FLD FIELD                FIELD  :
  NUM NAME                  SIZE  :

   4..TOTAL WEEKLY INS DED..   5  :
FIELD ALPHA, NUMERIC OR DATE (A, N OR D): N
DO YOU WANT TO TOTAL THIS FIELD:N
63 CHARACTERS APPROXIMATELY

INPUT FIELD NUMBER: 17

  FLD FIELD                FIELD  :
  NUM NAME                  SIZE  :

  17..REGISTRATION DATE   ..   6  :
FIELD ALPHA, NUMERIC OR DATE (A, N OR D): D
73 CHARACTERS APPROXIMATELY
                                                         Page 9-9


INPUT FIELD NUMBER: 11

  FLD FIELD                FIELD  :
  NUM NAME                  SIZE  :

  11..PHONE EXTENSION     ..   5  :
FIELD ALPHA, NUMERIC OR DATE (A, N OR D): <CR>

TYPE TOTAL OUTPUT FIELD SIZE:  <CR>
FIELD BREAKDOWN EXTRA <CR> WHEN DONE
*<CR>
79 CHARACTERS APPROXIMATELY

INPUT FIELD NUMBER: 15

  FLD FIELD                FIELD  :
  NUM NAME                  SIZE  :

  15..AUTO REGISTRATION   ..   6  :
FIELD ALPHA, NUMERIC OR DATE (A, N OR D): <CR>

TYPE TOTAL OUTPUT FIELD SIZE:  <CR>
FIELD BREAKDOWN EXTRA <CR> WHEN DONE
*<CR>
86 CHARACTERS APPROXIMATELY

INPUT FIELD NUMBER: 16

  FLD FIELD                FIELD  :
  NUM NAME                  SIZE  :

  16..AUTO MAKE           ..  10  :
FIELD ALPHA, NUMERIC OR DATE (A, N OR D): <CR>

TYPE TOTAL OUTPUT FIELD SIZE:  <CR>
FIELD BREAKDOWN EXTRA <CR> WHEN DONE
*<CR>
97 CHARACTERS APPROXIMATELY

INPUT FIELD NUMBER: 18

  FLD FIELD                FIELD  :
  NUM NAME                  SIZE  :

  18..WEEKLY INSUR. DED.  ..   5  :
FIELD ALPHA, NUMERIC OR DATE (A, N OR D): N
DO YOU WANT TO TOTAL THIS FIELD:Y
105 CHARACTERS APPROXIMATELY

INPUT FIELD NUMBER: STOP
                                                        Page 9-10


9.5  INPUT DATA FIELD REPRESENTATION

To allow  for  efficient  data  manipulation  within  the  report
writer,  it  was  necessary to establish a symbol to be used as a
representation of a data field.  This symbol indicates all of the
information  necessary  to  process data from this point.  It has
the form:

                              6INN2

Where:

          6    =  The input field number.

          INN  =  The symbols used to seperate the two integers.

          2    =  The occurrence of a subdivision of that
                  input field which was caused when the field
                  was broken down during the definition of
                  the output.

References to input fields,  throughout  the  remainder  of  this
document, will be made with these symbols.



9.6  OUTPUT FORMAT DIALOG

9.6.1  Overlay and Header Option

Users that had their data base designed with an overlay page with
CSSDBM  will  be  asked  "OVERLAY PAGE (Y OR N):".  A response of
"NO" causes the file to be output exactly as  each  input  record
appears.   A "YES" response, however, causes all of the requested
information on the pages preceeding the first overlay page to  be
processed  as  many  times  as  there  are  filled overlay pages.
Several output records, therefore, can be obtained from the  same
input record.

The program will now  determine  if  you  want  the  common  data
printed  with  each  overlay  page  by asking "DO YOU WANT HEADER
FIELDS AFTER FIRST  PRINTING:".   A  "YES"  response  causes  the
output  record  to contain exactly the same header information as
did the previous output record, with each overlay  page  printed.
If the answer is "NO", all related pages following the first will
have the header fields blanked out.   This  feature  is  included
only  for the ease of reading the report.  Note, however, that if
you elect to total a header field, a "NO" answer is  required  or
the total will be grossly in error.
                                                        Page 9-11


9.6.1.1  Overlay and Header Option Example - 

OVERLAY PAGE (Y OR N):  YES
DO YOU WANT HEADER FIELDS AFTER FIRST PRINTING:  NO



9.6.2  Report File Code Name

CSSRPT now  responds  with  "TYPE  3  CHAR  REPORT  FILE  CODE:".
Respond  with  your  own  disk filename for both the output COBOL
source file and the report itself, each beginning with RPT.  This
distinguishes  report  programs  from  others produced by CSSRPT.
Ensure that the filename chosen does not already exist  on  disk,
unless you intend to overwrite it.



9.6.2.1  Report File Code Name Example - 
TYPE 3 CHAR REPORT FILE CODE:  001



9.6.3  Report Title

The program now displays "TYPE REPORT  TITLE  (FOR  TOP  OF  EACH
PAGE").   The response to this question is centered and placed at
the top of each of the report pages, and can be a maximum  of  64
characters in length.



9.6.3.1  Report Title Example - 
TYPE REPORT TITLE (FOR TOP OF EACH PAGE)
*PERSONNEL INSURANCE DEDUCTION SUMMARY BY COST CENTER



9.6.4  Data Suppression Feature

To minimize unnecessary output,  CSSRPT  contains  a  feature  to
suppress  unwanted  record  information,  thus preventing it from
appearing in your report.   This  loop  consists  of  the  symbol
representing   the   input   field  containing  the  data  to  be
suppressed, a sign, and from one to ten literals.  If  the  field
data  is  equal  to  the data to be suppressed, the entire record
will be omitted.  A maximum of  ten  fields  can  be  tested  for
suppression,  but  each field can only be used with the same sign
once.  Finally, the field specified for suppression  can  be  any
field  in  the data base, yet does not have to be included in the
output report.

The user responds to the question "INPUT SYMBOL:" with  a  "<CR>"
if  no  suppression  is  wanted.   Otherwise, the user inputs the
field number, followed by "INN" and the sub-field number, if  the
                                                        Page 9-12


field  was  broken  down  during input.  The next request in this
loop is for "SIGN:".  Response is either "=", "NOT", ">" or "<".

     1.  If "=" is typed, input will be left out of the report if
         the  corresponding  input  field  equals  one of the ten
         literals specified in the next step;  i.e., it won't  be
         printed.

     2.  If "NOT" is typed, any  occurence  of  one  of  the  ten
         literals  will not be suppressed from the report;  i.e.,
         it will be printed.

     3.  The  ">"  sign  will  cause  the  input  record  to   be
         suppressed if field is greater than any occurance of one
         of the ten literals.

     4.  The "<" sign will cause suppression if the field is less
         than the specified literals.



                              NOTE

               Use of either "<" or  ">"  requires
               that  these  fields  be  defined as
               numeric during the input definition
               of the report.



If a literal is placed between two "/"(slashes), the literal will
be  used as a prompt to the user for a variable input at the time
the report is run.  An entry  of  "//"(slashes)  to  the  literal
querie will cause the prompts at run time to appear as asterisks.
This avoids the redundancy of the same prompts appearing for each
related variable to be entered.

The maximum size for each prompt is 32 characters, excluding  the
slashes.   It  is  advisable  to  allow  one  space following the
prompt, before the last backslash, for clarity when the report is
run later.



9.6.4.1  Data Suppression Example - 

SUPPRESS: <CR> IF NONE OR WHEN SELECTION IS COMPLETE

INPUT SYMBOL:  6INN1
6..LAST NAME
SIGN:  =
LITERAL:  F
LITERAL:  G
LITERAL:  <CR>
                                                        Page 9-13


INPUT SYMBOL:  10INN
10..COST CENTER
SIGN:  NOT
LITERAL:  /ENTER 3 COST CNTRS FOR RPT: /
LITERAL:  //
LITERAL:  //
LITERAL:  <CR>

INPUT SYMBOL:  <CR>




9.6.5  Sorting Sequence

The report's sorting  sequence  is  now  selected.   If  desired,
reports  may be sorted on a field not selected for output.  These
fields are referenced by the field number  and  followed  by  the
symbol  INN.  CSSRPT will display "TYPE SORT SEQUENCE (<CR> IF NO
SORT)";  a single <CR> response would generate the report  sorted
only  by  the  data  base  key.  The sort sequence is selected by
means of input symbols separated by commas and  terminated  by  a
<CR>.   The  input  buffer  limit  for  all  sort  symbols  is 32
characters, therefore, the number of fields on which you can sort
will  depend  on  the size of the input symbols.  As shown in the
following example, the total number of  characters  in  the  sort
input  line,  including  spaces,  is  17.  As the data break only
occurs when a sort is selected, it will  occur  when  information
changes in the field defined as the first sort.



9.6.5.1  Sorting Sequence Example - 


TYPE SORT SEQUENCE (<CR> IF NO SORT)
*10INN, 6INN, 7INN
WILL BREAK ON COST CENTER



9.6.6  Spacing, Paging, and Line Skipping

The program now asks three  brief  questions.   The  first  is  a
request  for double spacing, to which a "YES" or "NO" response is
required.  "NO", or <CR>, will result in single spacing, which is
default.   If  a  sort has been selected, the program will ask if
you want a new page on the break, i.e.  everytime the first field
sorted changes, a line-printer top-of-form will result.  Finally,
if a new page on the break was not requested,  it  will  ask  how
many lines to skip after each break;  Default is one line.
                                                        Page 9-14


9.6.6.1  Spacing, Paging, and Line Skipping Example - 

DO YOU WANT DOUBLE SPACING:  NO
 
DO YOU WANT A NEW PAGE ON THE BREAK:  NO

TYPE NUMBER OF LINES TO SKIP AFTER A BREAK:  3



9.6.7  Column Headings

The final phase of report generation involves the creation of the
small  field,  or  column  headings,  above  each  of your output
fields.  The program provides as much space as possible for these
headings  while  ensuring  that  they  do not overrun each other.
Therefore, if the field size is small and the  number  of  spaces
between  each  field  is  small,  extensive  abbreviation  may be
required.  The user will be shown the exact number of  characters
allowed   for   field  headings  between  colons,  and  also  the
corresponding field name it represents.  This sequence will occur
twice,  thereby  allowing  two  lines of heading over each output
column.  Reports will appear neater to read if alpha  fields  are
titled to the left of the space allowed.  Numeric fields, because
they are right justified, are more  legible  if  the  titles  are
shifted to the right side of the space allowed.

When these headings are completed, the program  will  generate  a
COBOL  source file, which when executed, will produce the report.
Once the report is deemed satisfactory, it can be  loaded,  saved
and run at will.  The user need only run through CSSRPT once.


9.6.7.1 Column Headings Example

OUTPUT FIELD COLUMN INFORMATION

                      :------:
BADGE NUMBER          :BADGE
                      :------:
BADGE NUMBER          :NUMBER
                      :---------------------:
LAST NAME             :LAST
                      :---------------------:
LAST NAME             :NAME
                      :-----------:
FIRST NAME            :FIRST
                      :-----------:
FIRST NAME            :NAME
                      :---:
MIDDLE INITIAL        :MID
                      :---:
MIDDLE INITIAL        :INI
                                                        Page 9-15


                      :----------:
RECORD CREATION DATE  :CREATION
                      :----------:
RECORD CREATION DATE  :  DATE
                      :----:
COST CENTER           :COST
                      :----:
COST CENTER           :CNTR
                      :--------:
TOTAL WEEKLY INS DED  :TOT WEEK
                      :--------:
TOTAL WEEKLY INS DED  :INS DED
                      :----------:
REGISTRATION DATE     :REGISTRAT.
                      :----------:
REGISTRATION DATE     :   DATE
                      :------:
PHONE EXTENSION       :PHONE
                      :------:
PHONE EXTENSION       :EXTEN.
                      :-------:
AUTO REGISTRATION     :REGIST.
                      :-------:
AUTO REGISTRATION     :NUMBER
                      :-----------:
AUTO MAKE             :AUTO
                      :-----------:
AUTO MAKE             :MAKE
                      :--------:
WEEKLY INSUR. DED.    :WEEK INS
                      :--------:
WEEKLY INSUR. DED.    :DEDUCT.
    CREATING RPT001.CBL ...
EXIT



9.7  OUTPUT PROGRAM

The COBOL source file just written onto the disk by  CSSRPT  will
output  the  report.   This  program  can be loaded and saved, as
shown below, to obtain this report more than once.  It  can  also
be  executed  if it is a "once-only" report, in which case delete
the  report  source  ("CBL"  and  "REL")  files  upon  successful
execution  and  aquisition  of  the  report.   In  the  following
examples, the load, save, and run procedures of the program  just
created  with  CSSRPT  are  illustrated  for  both repeatable and
"once-only" reports.  Output from this program will be the report
shown following Paragraph 9.7.2.
                                                        Page 9-16


9.7.1  Repeatable Output Program Example


.LOAD RPT001.CBL,ECHO
COBOL:  RPT001  [RPT001.CBL]
LINK:   Loading

EXIT

.SAVE
RPT001 SAVED

By typing DIR <CR>, you will find that the final necessary  files
have been created and added to your directory.  The new ones are:

     RPT001.HLD          (Report Hold File)
     RPT001.CBL          (Report COBOL File)
     RPT001.REL          (Report Relocatable File)
     RPT001.EXE          (Report Executable File)

Unless you are fimilar  with  COBOL  and  plan  to  make  special
changes  to  the  COBOL  file  not  normally allowed with CSSDBM,
delete the Report COBOL and  Relocatable  Files  (RPT001.CBL  and
RPT001.REL),  as both have served their purpose and are no longer
required.  Your total directory should now contain the  following
files:

     LIB:[PROJ,PROG]     (See Paragraph 1.5)
     DBMTST.FMT          (Data Base Format File)
     DMBAUD.FMT          (Audit Trail Format File)
         (If Audit Trail option selected.)
     DBMTST.VLD          (Data Base Validation File)
         (If On-line Validation option selected.)
     DBMTST.EXE          (Data Base Executable File)
     DBMTST.IDA          (Data Base Data File)
     DBMTST.IDX          (Data Base Index File)
     DBMAUD.IDA          (Audit Trail Data File)*
     DBMAUD.IDX          (Audit Trail Index File)*
         *(If Audit Trail option selected.)
     TOT001.EXE          (Arithmetic Process Executable File)
     RPT001.HLD          (Report Hold File)
     RPT001.EXE          (Report Executable File)

.RUN RPT001

PASSWORD:  HARRIS

ENTER 3 COST CNTRS FOR RPT: 201
*202
*203

EXIT

.PRINT RPT001.LPT
                                                        Page 9-17


If you desire a hard copy of the parameters you used to construct
your  report, return to Paragraph 3.1 and run DBMDMP.  This time,
fill in the name of your report rather than depress <CR>, and all
parameters selected will be entered for you automatically.



9.7.2  "Once-only" Output Program Example


.EXECUTE RPT001.CBL, ECHO
COBOL: RPT001 [RPT001.CBL]
LINK: Loading
[LNKXCT RPT001 EXECUTION]
PASSWORD: HARRIS
ENTER 3 COST CNTRS FOR RPT: 201
*202
*203

EXIT

.PRINT RPT001.LPT

.DEL RPT001.*
                                                                                                                           Page 9-18


                                         PERSONNEL INSURANCE DEDUCTION SUMMARY BY COST CENTER                               PAGE   1

                                                      RUN ON 01-JUN-78 AT 09:34


BADGE   LAST                   FIRST        MID  CREATION    COST  TOT WEEK  REGISTRAT.  PHONE   REGIST.  AUTO         WEEK INS
NUMBER  NAME                   NAME         INI  DATE        CNTR  INS DED   DATE        EXTEN.  NUMBER   MAKE         DEDUCT.

1       BIXBY                  RICHARD      C.   27-MAR-78   201      6.82   01-DEC-77   5164    K22105   CHEVY           2.32
                                                                       .00   05-FEB-78           212320   HORNET          4.50
212     HANCOCK                PAUL         W.   27-MAR-78   201      5.17   17-SEP-77   3171    712155   VOLVO           5.17
156     JOHNSON                ANN          T.   27-MAR-78   201      4.45   14-NOV-77   3867    557546   VOLVO           4.45
167     KNAPP                  DELORES      F.   27-MAR-78   201      3.87   09-JAN-78   5672    356734   PONTIAC         3.87
190     MILTON                 HARRY        T.   27-MAR-78   201      6.50   02-OCT-77   2414    B59807   FORD            6.50
12      PRICE                  VICTORIA     W.   27-MAR-78   201      5.12   01-JAN-78   4055    596021   TRIUMPH         5.12

***** SUBTOTALS *****     201
                                                                                                                         31.93



134     ELKINS                 GEORGE       H.   27-MAR-78   202      3.23   12-FEB-77   2317    250926   VOLKSWAGON      3.23
145     HOFFMANN               JANET        B.   27-MAR-78   202      2.40   12-SEP-77   5355    460059   SUBARU          2.40
201     PHILLIPS               JOHN         H.   27-MAR-78   202     10.32   06-DEC-77   5930    513270   BMW            10.32
189     SANTOS                 ANTHONY      P.   27-MAR-78   202      8.09   25-SEP-77   3586    A15217   PONTIAC         5.77
                                                                       .00   17-JAN-78           N80275   CHEVY           2.32

***** SUBTOTALS *****     202
                                                                                                                         24.04



123     ARNOLD                 LAWRENCE     L.   27-MAR-78   203      5.85   05-MAY-77   6713    285141   DODGE           5.85
178     MILLS                  EARLE        G.   27-MAR-78   203      6.23   15-JAN-77   2371    353802   FORD            6.23
100     WEBB                   HELEN        A.   27-MAR-78   203      7.56   17-MAY-77   2036    596212   MG              4.23
                                                                       .00   01-FEB-78           522187   AUDI            3.33
111     YAGER                  DAVID        N.   27-MAR-78   203     11.40   20-OCT-77   2189    122574   DATSUN          5.15
                                                                       .00   10-MAY-77           208373   CORVETTE        6.25

***** SUBTOTALS *****     203
                                                                                                                         31.04
 
***** FINAL TOTALS *****
                                                                                                                         87.01
                                                        Page 9-19


9.8  CSSRPT UPDATE MODE

In order to make CSSRPT more useful and more forgiving  in  terms
of typing mistakes, two new modes were added:  UPDATE and CHANGE.
Note, in addition to the report  COBOL  source  program,  a  file
generated  by CSSRPT with an "HLD" extension.  This file contains
the variable report responses which were input to  CSSRPT  during
the  creation,  or "NEW" mode, of this report.  It is used during
both the CHANGE and UPDATE modes  of  CSSRPT,  and  also  by  the
DBMDMP  utility  program  to  provide a preprinted outline of how
your report is structured (refer to Chapter 3).

The UPDATE mode of CSSRPT functions similar to the UPDATE mode of
CSSDBW  (refer  to  Chapter  2).   If  you lose your COBOL source
program, or for any other reason desire to regenerate it,  UPDATE
will  recreate  the COBOL source exactly as it was before.  It is
therefore far more important to retain the "HLD" files  than  the
"CBL"  files, once the COBOL source has been compiled, loaded and
saved.  The "HLD" file is  also  considerably  smaller  than  the
COBOL source, for users who are disk-space conscious.



9.8.1  CSSRPT UPDATE Example

.RUN CSSRPT

TYPE NAME OF INPUT FORMAT FILE: DBMTST

ENTER DATA BASE PROJECT PROGRAMMER NUMBER
OR <CR> IF DATA BASE IS ON THIS AREA
PPN:  <CR>
PASSWORD:  HARRIS

CSS REPORT GENERATOR CSSRPT(V5C)

NEW OR OLD:  OLD

ENTER OLD REPORT NAME:  RPT001

CHANGE OR UPDATE:  UPDATE
    CREATING RPT001.CBL ...
EXIT

LOAD RPT001.CBL,ECHO
COBOL: RPT001  [RPT001.CBL]
LINK:   Loading

EXIT

.SAVE
RPT001 SAVED
                                                        Page 9-20


9.9  CSSRPT CHANGE MODE

There are many occasions when, for some reason, it  is  desirable
to  change some portion of a report.  For this reason, the CHANGE
mode was added to CSSRPT.

If you have rebuilt your data base with  the  CSSCNG  program  in
Chapter  10,  you  will  be  required  to  regenerate all of your
reports.  Although this can be done with the CHANGE and OLD modes
as  illustrated  below,  if your changes were extensive it may be
easier (and less complicated) to use NEW  mode  and  rebuild  the
reports in their entirety.

While working in CHANGE  mode,  you  will  be  shown  the  CSSRPT
dialog,  with  the  former  response  between colons.  During the
input field selection routine, the command scheme is very similar
to that of the CSSDBW CHANGE mode in Chapter 2.


Command        Function       Result

<CR>           Default        Leaves current column
                              specification as is.

I              Insert         Places a new report
                              column before the
                              current column.

D              Delete         Delete current
                              column from report.

O              Overwrite      Supersede this report
                              column specification.

F              Finish         Retains all previous
                              column specifications
                              and exits from column
                              selection routine.

STOP           Stop           Make last column
                              displayed the last
                              report column and
                              exits from this routine.



9.9.1  CSSRPT CHANGE Example

.RUN CSSRPT

TYPE NAME OF INPUT FORMAT FILE: DBMTST

ENTER DATA BASE PROJECT PROGRAMMER NUMBER
OR <CR> IF DATA BASE IS ON THIS AREA
PPN:  <CR>
                                                        Page 9-21


PASSWORD:  HARRIS

CSS REPORT GENERATOR CSSRPT(V5C)

NEW OR OLD:  OLD

ENTER OLD REPORT NAME:  RPT001

CHANGE OR UPDATE:  CHANGE

DO YOU WANT TO SEE YOUR INPUT BEFORE PROCEEDING
(Y OR N):  N

ENTER PRIVILEGE REQUIRED TO RUN THIS REPORT:  <CR>

TYPE IN YOUR NAME:  JOHN DOE

OUTPUT DEVICE (DSK OR TTY):  DSK
WILL OUTPUT TO DSK

LONG OR SHORT DIALOG:  L

ANSWER THE FOLLOWING ABOUT YOUR OUTPUT:

                              AL  T
RPT     FIELD                 NU  O  FIELD  FIELD
FLD     NAME                  DA  T   SIZE  BREAKDOWN
==================================================================
    1...BADGE NUMBER        ..A .. ..     5..  ,   ,   ,   ,   , : <CR>
    2...LAST NAME           ..A .. ..    20.. 1, 19,   ,   ,   , : <CR>
    3...FIRST NAME          ..A .. ..    10..10,  5,   ,   ,   , : I
INPUT FIELD NUMBER: 13

  FLD FIELD                FIELD  :
  NUM NAME                  SIZE  :

  13..MAIL STOP           ..   3  :
FIELD ALPHA, NUMERIC OR DATE (A, N OR D): <CR>

TYPE TOTAL OUTPUT FIELD SIZE:  <CR>
FIELD BREAKDOWN EXTRA <CR> WHEN DONE
*<CR>
31 CHARACTERS APPROXIMATELY
                                                               Page 9-22


    4...FIRST NAME          ..A .. ..    10..10,  5,   ,   ,   , : <CR>
    5...MIDDLE INITIAL      ..A .. ..     2..  ,   ,   ,   ,   , : D
    5...RECORD CREATION DATE..D .. ..     6..  ,   ,   ,   ,   , : <CR>
    6...COST CENTER         ..A .. ..     3..  ,   ,   ,   ,   , : <CR>
    7...TOTAL WEEKLY INS DED..N ..N..     5..  ,   ,   ,   ,   , : O
INPUT FIELD NUMBER: 2

  FLD FIELD                FIELD  :
  NUM NAME                  SIZE  :

   2..RECORD ACCESS DATE  ..   6  :
FIELD ALPHA, NUMERIC OR DATE (A, N OR D): D
66 CHARACTERS APPROXIMATELY

    8...REGISTRATION DATE   ..D .. ..     6..  ,   ,   ,   ,   , : F


Throughout the remainder  of  the  CHANGE  dialog,  the  required
report  prompt,  including the previous responses between colons,
will  be  displayed.   If  you  desire  to  retain  the  previous
response,  enter  a  <CR>;  otherwise, enter a new response, with
exceptions as noted in the next three paragraphs:



9.9.1.1  Data Suppression Change - 

To  entirely  replace,  or  to  change  only  a  portion  of  the
suppression  argument,  simply  enter  the new responses when the
program displays the old ones.  To delete an argument located  in
the  middle  (such  as  the  second  of  three),  input the third
argument when the second,  beginning  with  "INPUT  SYMBOL:",  is
displayed.   When  "INPUT  SYMBOL:"  of  the now duplicated third
argument is displayed, typing BLANK will  take  you  out  of  the
suppression  loop, delete the third argument, plus any additional
arguments that may follow.  



9.9.1.2  Output Field Column Heading Change - 

To remove a title without inserting a new one,  type  BLANK.   Do
not  be  concerned  if  it  is  a  small field and the word BLANK
extends beyond the limiting colons, nor if it is  a  large  field
and  a  portion  of  the old title remains on the screen.  If the
change is to insert new wording, simply enter the new title  when
the  program displays the old one.  Again, do not be concerned if
a portion of the old title remains on the screen;   however,  the
new title must fit between the old limiting colons.
                                                        Page 9-23


9.9.1.3  Sorting Sequence Change - 

Typing BLANK in response to  "TYPE  SORT  SEQUENCE  (<CR>  IF  NO
SORT)" will delete the previous sequence and default to a sort on
the Key Field only.  To change the order in any other way, simply
respond with the new sequence.



9.9.1.4  Examples - 

OVERLAY PAGE (Y OR N):Y:<CR>
DO YOU WANT HEADER FIELDS AFTER FIRST PRINTING:N:Y

TYPE 3 CHAR REPORT FILE CODE:  002
TYPE REPORT TITLE (FOR TOP OF EACH PAGE)
PERSONNEL INSURANCE DEDUCTION SUMMARY BY COST CENTER
*<CR>

SUPPRESS: <CR> IF NONE OR WHEN SELECTION IS COMPLETE
INPUT SYMBOL:6INN1  :BLANK

TYPE SORT SEQUENCE (<CR> IF NO SORT)
10INN, 6INN, 7INN
*BLANK

DO YOU WANT DOUBLE SPACING:N:<CR>
OUTPUT FIELD COLUMN INFORMATION

                      :BADGE :
BADGE NUMBER          :<CR>
                      :NUMBER:
BADGE NUMBER          :<CR>
                      :LAST                 :
LAST NAME             :<CR>
                      :NAME                 :
LAST NAME             :<CR>
                      :FIRS:
MAIL STOP             :MAIL
                      :NAME:
MAIL STOP             :STOP
                      :       MID :
FIRST NAME            :FIRST
                      :       INI :
FIRST NAME            :NAME
                      :REATION   :
RECORD CREATION DATE  :RECORD
                      : DATE     :
RECORD CREATION DATE  :CREATION
                      :OST :
COST CENTER           :COST
                      :NTR :
COST CENTER           :CNTR
                                                        Page 9-24


                      :OT WEEK  R:
RECORD ACCESS DATE    :RECORD
                      :NS DED    :
RECORD ACCESS DATE    :ACCESS
                      :ISTRAT.  P:
REGISTRATION DATE     :REGIST.
                      :DATE     E:
REGISTRATION DATE     :DATE
                      :NE   R:
PHONE EXTENSION       :PHONE
                      :EN.  N:
PHONE EXTENSION       :EXTEN
                      :IST.  A:
AUTO REGISTRATION     :AUTO
                      :BER   M:
AUTO REGISTRATION     :REGIST
                      :O         W:
AUTO MAKE             :AUTO
                      :E         D:
AUTO MAKE             :MAKE
                      :K INS   :
WEEKLY INSUR. DED.    :WEEK INS
                      :UCT.    :
WEEKLY INSUR. DED.    :DEDUCT.
    CREATING RPT002.CBL ...
EXIT

LOAD RPT002.CBL,ECHO
COBOL:  RPT002  [RPT002.CBL]
LINK:  Loading

EXIT

.SAVE
RPT002 SAVED











                           CHAPTER 10

               CSSDBM DATA BASE CONVERTER (CSSCNG)



10.1  GENERAL DESCRIPTION

During the development of CSSDBM, it  became  evident  that  data
base  adjustments would be necessary to keep up with the constant
business changes.  Thus, an additional  CSSDBM  program  (CSSCNG)
was written.  A data base change requires a six step operation:

     1.  Run CSSCNG to create a reformated sequential  file  from
         your indexed sequential file.

     2.  Use the CHANGE mode of CSSDBW and adjust the  data  base
         format file (refer to Chapter 2).

     3.  Run ISAM and rebuild your indexed sequential  file  from
         the  new  sequential file, using the new ISAM parameters
         provided by CSSDBW (refer to Chapter 5).

     4.  Run CSSVLD to recreate your  Validation  file,  if  that
         option was selected.

     5.  Run CSSTOT  to  recreate  the  Arithmetic  Processor  to
         correct  version  inconsistencies,  if  that  option was
         selected.

     6.  Run CSSRPT to recreate the  output  reports  to  correct
         version inconsistencies.



                              NOTE

               Be   careful   when    implementing
               CSSCNG, because it will restructure
               data within each existing record of
               the  data  base.  Since a data base
               change effects the entire file,  it
               is  strongly  recommended  that the
               data  base  and  format  file   are
               copied   onto  some  other  storage
               media for backup purposes.
                                                        Page 10-2


10.2  CSSCNG DIALOG

CSSCNG allows users to create a COBOL source file via an  on-line
dialog.   When  executed,  this  output  COBOL source handles all
specified data adjustments, and then deletes all traces of itself
to  avoid being executed a second time on an already changed data
base.  A privilege code of 3 is required to run both  CSSCNG  and
its output COBOL source file.

Every attempt was made to provide a simple on-line dialog in this
program.    However,  should  problems  occur,  a  help  file  is
available by simply typing  "H".   Keep  in  mind  that  you  are
creating a new output record, and what is placed in each field of
the your new record  is  your  choice.   Your  old  record  field
information  is  available and can be referenced by field number.
A blank field can be plugged in any location in the new record by
typing  a  "B",  which  becomes  a  space in the record for a new
prompt to be added with CSSDBW in the CHANGE mode.  In  each  new
field definition, CSSCNG will ask for the size, to which a number
representing the size of a new blank field is entered.   You  can
also  change the size of an old field, if an old field number was
specified.  If an old field was specified, and your  response  to
the field size is a "<CR>", the old size will be retained.  If an
old field is no longer  wanted,  it  is  deleted  simply  by  not
requesting  it.  Again, when changing the size of an old field in
the new record, a compiler warning may occur indicating  possible
truncation.   Remember  that  this  is  just a warning and has no
effect on execution.

Three options are available for the purpose  of  exiting  to  the
monitor,  once  the  definition  of  the  new  output  record  is
complete:

          F    If the remaining fields in the output
               record are the same as those remaining
               in the old record.

          S    Terminates the new output record at
               that point.

          O    If the old data base had the "OVERLAY" page
               option, this will overlay the new record once
               the first overlay page in the new record is
               completely defined.



10.2.1  CSSCNG Example

In the following  example  of  a  worst  case  situation,  a  new
character  field  is added between fields 4 and 5, and field 7 is
increased from 20 to 25  characters  to  illustrate  what  making
changes  to  the  example data base would entail.  Note that upon
successful execution of the output program, a  record  conversion
count is given for information purposes.
                                                        Page 10-3


.RUN CSSCNG

TYPE NAME OF INPUT FORMAT FILE:  DBMTST
PASSWORD:  COLE

CSS DATA BASE CONVERTER CSSCNG(V05)

DO YOU NEED TO SEE THE HELP DIALOG:  YES

IN THE FOLLWING DIALOG, YOU WILL BE CREATING A NEW
DATA FILE, WHICH CAN CONTAIN NEW FIELDS OF DATA AS
WELL AS AN OLD DATA FIELD.  THIS CAN BE A COMPLETE
REARRANGEMENT OF YOUR OLD FILE IF DESIRED.

COMMANDS ARE AS FOLLOWS:
    H.... FOR THIS LIST OF COMMANDS.
    <CR>  IF NEXT NEW FIELD CORRESPONDS TO THE NEXT
          SUCCESSIVE FIELD IN YOUR OLD RECORD.
    B.... TO PLACE A BLANK FIELD INTO YOUR OUTPUT RECORD.
    O.... TO OVERLAY AFTER YOU HAVE COMPLETELY DEFINED
          THE FIRST OVERLAY PAGE OF YOU NEW OUTPUT RECORD.
    F.... IF REMAINING FIELDS IN OUTPUT RECORD ARE THE SAME
          AS THE REMAINING FIELDS IN INPUT RECORD.
    S.... IF YOUR NEW RECORD TERMINATES AFTER THE LAST
          FIELD YOU HAVE DEFINED.
   "N"... IN RESPONSE TO THE ASTERISK, N REPRESENTS
          ANY INPUT FIELD NUMBER
                                                        Page 10-4


ANSWER THE FOLLOWING ABOUT YOUR NEW OUTPUT RECORD

OUTPUT FIELD NUMBER  1
*<CR>
  1...RECORD CREATION DATE  :6

SIZE:  <CR>

OUTPUT FIELD NUMBER  2
*<CR>
  2...RECORD ACCESS DATE    :6

SIZE:  <CR>

OUTPUT FIELD NUMBER  3
*<CR>
  3...ANNUAL SALARY         :7

SIZE:  <CR>

OUTPUT FIELD NUMBER  4
*<CR>
  4...TOTAL WEEKLY INS DED  :5

SIZE:  <CR>

OUTPUT FIELD NUMBER  5
*B
NEW FIELD

SIZE:  6

OUTPUT FIELD NUMBER  6
*<CR>
  5...BADGE NUMBER          :5

SIZE:  <CR>

OUTPUT FIELD NUMBER  7
*<CR>
  6...LAST NAME             :20

SIZE:  25

OUTPUT FIELD NUMBER  8
*<CR>
  7...FIRST NAME            :15

SIZE:  <CR>
                                                        Page 10-5


OUTPUT FIELD NUMBER  9
*<CR>
  8...MIDDLE INITIAL        :2

SIZE:  <CR>

OUTPUT FIELD NUMBER 10
*<CR>
  9...WAGE CLASS            :1

SIZE:  <CR>

OUTPUT FIELD NUMBER 11
*<CR>
 10...COST CENTER           :3

SIZE:  <CR>

OUTPUT FIELD NUMBER 12
*<CR>
 11...PHONE EXTENSION       :5

SIZE:  <CR>

OUTPUT FIELD NUMBER 13
*<CR>
 12...HOURLY RATE           :4

SIZE:  <CR>

OUTPUT FIELD NUMBER 14
*<CR>
 13...MAIL STOP             :3

SIZE:  <CR>

OUTPUT FIELD NUMBER 15
*<CR>
 14...LOCATION CODE         :6

SIZE:  <CR>

OUTPUT FIELD NUMBER 16
*<CR>
 15...AUTO REGISTRATION     :6

SIZE:  <CR>

OUTPUT FIELD NUMBER 17
*<CR>
 16...AUTO MAKE             :10

SIZE:  <CR>
                                                        Page 10-6


OUTPUT FIELD NUMBER 18
*<CR>
 17...REGISTRATION DATE     :6

SIZE:  <CR>

OUTPUT FIELD NUMBER 19
*<CR>
 18...WEEKLY INSUR. DED.    :5

SIZE:  <CR>

OUTPUT FIELD NUMBER 20
*O

TYPE FIRST LINE NUMBER OF FIRST OVERLAY PAGE IN
YOUR OUTPUT RECORD:  16

TYPE LAST LINE NUMBER OF THE FIRST OVERLAY PAGE IN
YOUR OUTPUT RECORD:  19
    CREATING CNGTST.CBL  ...
EXIT

.EXECUTE CNGTST.CBL,ECHO
COBOL:  CNGTST  [CNGTST.CBL]
LINK:   Loading
[LNKXCT  CNGTST  EXECUTION]
PASSWORD:  COLE

RECORDS CONVERTED:  37

EXIT



                              NOTE

               If  any   physical   file   changes
               occured,  it  is essential that all
               reports and  Arithmetic  Processors
               be  rewritten and recompiled.  This
               should not be problem if  a  record
               of these programs are kept on file.




Now return to Paragraph 2.10 to execute CSSDBW  in  the  OLD  and
CHANGE modes.
 


                        TABLE OF CONTENTS

 1    INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . .  1-1
 1.1       General Description . . . . . . . . . . . . . . . . .  1-1
 1.2       System Function and Features  . . . . . . . . . . . .  1-4
 1.2.1       Unique Characteristics  . . . . . . . . . . . . . .  1-5
 1.2.2       OVERLAY Feature . . . . . . . . . . . . . . . . . .  1-5
 1.2.3       Key Field . . . . . . . . . . . . . . . . . . . . .  1-6
 1.2.4       Data Base Version Number  . . . . . . . . . . . . .  1-6
 1.3       Data Base Layout  . . . . . . . . . . . . . . . . . .  1-7
 1.4       CSSDBM Example  . . . . . . . . . . . . . . . . . . .  1-8
 1.5       File Look-up Path Suggestions . . . . . . . . . . . .  1-9
 1.5.1       SETSRC Example  . . . . . . . . . . . . . . . . . .  1-9
 2    CSSDBM DATA BASE WRITER (CSSDBW) . . . . . . . . . . . . .  2-1
 2. 1       General Description  . . . . . . . . . . . . . . . .  2-1
 2. 2       Use of Existing Data . . . . . . . . . . . . . . . .  2-1
 2. 3       CSSDBW Initialization  . . . . . . . . . . . . . . .  2-2
 2. 3.1       On-line Validation . . . . . . . . . . . . . . . .  2-2
 2. 3.2       Record Creation and Access Dates . . . . . . . . .  2-2
 2. 3.3       Data Base Audit Trail  . . . . . . . . . . . . . .  2-3
 2. 4       Initialization Dialog  . . . . . . . . . . . . . . .  2-3
 2. 4.1       Initialization Example . . . . . . . . . . . . . .  2-4
 2. 5       Access Codes and Privileges  . . . . . . . . . . . .  2-5
 2. 5.1       Access Codes and Privileges Example  . . . . . . .  2-5
 2. 6       Paging . . . . . . . . . . . . . . . . . . . . . . .  2-6
 2. 6.1       Paging Example . . . . . . . . . . . . . . . . . .  2-6
 2. 7       Validation - Creation/Access Dates - Audit Trail . .  2-6
 2. 7.1       Options Example  . . . . . . . . . . . . . . . . .  2-7
 2. 8       ISAM Prompts . . . . . . . . . . . . . . . . . . . .  2-7
 2. 8.1       ISAM Information Example . . . . . . . . . . . . .  2-7
 2. 9       UPDATE . . . . . . . . . . . . . . . . . . . . . . .  2-8
 2. 9.1       UPDATE Example . . . . . . . . . . . . . . . . . .  2-8
 2.10       CHANGE . . . . . . . . . . . . . . . . . . . . . . .  2-9
 2.10.1       CHANGE Example . . . . . . . . . . . . . . . . . .  2-12
 2.10.2       Altering Passwords and Privileges  . . . . . . . .  2-13
 2.10.2.1       Displaying Passwords and Privileges Example  . .  2-14
 2.10.3       Altering Data Base Page  . . . . . . . . . . . . .  2-14
 2.10.3.1       Altering Data Base Page Example  . . . . . . . .  2-15
 3    CSSDBM DATA BASE FORMAT DUMP (DBMDMP)  . . . . . . . . . .  3-1
 3.1       General Description . . . . . . . . . . . . . . . . .  3-1
 3.1.1       DBMDMP Example  . . . . . . . . . . . . . . . . . .  3-2
 3.2       Sample DBMTST.LPT Data  . . . . . . . . . . . . . . .  3-2
 4    CSSDBM VALIDATION HANDLER (CSSVLD) . . . . . . . . . . . .  4-1
 4.1       General Description . . . . . . . . . . . . . . . . .  4-1
 4.2       CSSVLD Dialog . . . . . . . . . . . . . . . . . . . .  4-1
 4.3       CSSVLD Output Files . . . . . . . . . . . . . . . . .  4-2
 4.4       New Validation File Example . . . . . . . . . . . . .  4-3
 4.5       Changing Old Validation File  . . . . . . . . . . . .  4-5
 4.5.1       Changing Old Validation File Example  . . . . . . .  4-5
 5    CSSDBM FINAL DATA BASE REQUIREMENTS  . . . . . . . . . . .  5-1
 5.1       General Description . . . . . . . . . . . . . . . . .  5-1
 5.2       Compile, Load, and Save . . . . . . . . . . . . . . .  5-1
 5.2.1       Compile, Load and Save Example  . . . . . . . . . .  5-1
 5.3       ISAM  . . . . . . . . . . . . . . . . . . . . . . . .  5-2
 5.3.1       ISAM Functions  . . . . . . . . . . . . . . . . . .  5-2
 5.3.1.1       /B Example  . . . . . . . . . . . . . . . . . . .  5-3
 5.3.1.2       /P Example  . . . . . . . . . . . . . . . . . . .  5-4
 5.3.1.3       /M Example  . . . . . . . . . . . . . . . . . . .  5-4
 6    CSSDBM AUDIT TRAIL OPTION  . . . . . . . . . . . . . . . .  6-1
 6.1       General Description . . . . . . . . . . . . . . . . .  6-1
 6.2       Audit Trail Record Format . . . . . . . . . . . . . .  6-2
 6.3       Audit Trail Recording Scheme  . . . . . . . . . . . .  6-2
 6.4       Implementation Procedure  . . . . . . . . . . . . . .  6-3
 6.4.1       ISAM Command File Execution . . . . . . . . . . . .  6-3
 6.4.2       B E W A R E  !  . . . . . . . . . . . . . . . . . .  6-3
 6.5       Audit Trail Report Example  . . . . . . . . . . . . .  6-3
 7    CSSDBM DATA BASE HANDLER (DBMTST)  . . . . . . . . . . . .  7-1
 7.1       General Description . . . . . . . . . . . . . . . . .  7-1
 7.2       DBMTST Dialog . . . . . . . . . . . . . . . . . . . .  7-1
 7.2.1       DBMTST Dialog Example . . . . . . . . . . . . . . .  7-2
 7.3       DBMTST Commands . . . . . . . . . . . . . . . . . . .  7-2
 7.3.1       DBMTST Commands Example . . . . . . . . . . . . . .  7-2
 7.3.2       Type Command (T)  . . . . . . . . . . . . . . . . .  7-2
 7.3.2.1       Type Command Example  . . . . . . . . . . . . . .  7-3
 7.3.3       Insert Command (I)  . . . . . . . . . . . . . . . .  7-3
 7.3.3.1       Insert Command Example  . . . . . . . . . . . . .  7-3
 7.3.3.2       Insert Command Options  . . . . . . . . . . . . .  7-4
 7.3.4       Search Command (S)  . . . . . . . . . . . . . . . .  7-5
 7.3.4.1       Search Command Example  . . . . . . . . . . . . .  7-6
 7.3.5       Change Command (C)  . . . . . . . . . . . . . . . .  7-6
 7.3.5.1       Change Command Example  . . . . . . . . . . . . .  7-7
 7.3.6       Next Command (N)  . . . . . . . . . . . . . . . . .  7-8
 7.3.6.1       Next Command Example  . . . . . . . . . . . . . .  7-8
 7.3.7       Page Command (P)  . . . . . . . . . . . . . . . . .  7-8
 7.3.7.1       Page Command Example  . . . . . . . . . . . . . .  7-9
 7.3.8       Delete Commmand (D) . . . . . . . . . . . . . . . .  7-9
 7.3.8.1       Delete Command Example  . . . . . . . . . . . . .  7-9
 7.3.9       Finish Command (F)  . . . . . . . . . . . . . . . .  7-9
 7.3.9.1       Finish Command Example  . . . . . . . . . . . . .  7-9
 7.4       DBMTST Overview . . . . . . . . . . . . . . . . . . .  7-10
 8    CSSDBM ARITHEMETIC PROCESSOR (CSSTOT)  . . . . . . . . . .  8-1
 8.1       General Description . . . . . . . . . . . . . . . . .  8-1
 8.1.1       Special CSSTOT Parameters . . . . . . . . . . . . .  8-1
 8.2      Input Format . . . . . . . . . . . . . . . . . . . . .  8-2
 8.2.1       CSSTOT Example  . . . . . . . . . . . . . . . . . .  8-2
 9    CSSDBM REPORT WRITER (CSSRPT)  . . . . . . . . . . . . . .  9-1
 9.1       General Description . . . . . . . . . . . . . . . . .  9-1
 9.2       Report Generation and Access Privilege  . . . . . . .  9-2
 9.2.1       CSSRPT Example  . . . . . . . . . . . . . . . . . .  9-2
 9.3       Author's Name and Output Device Selection . . . . . .  9-3
 9.3.1       Privilege, Author and Output Device Example . . . .  9-3
 9.4       Output Definition . . . . . . . . . . . . . . . . . .  9-4
 9.4.1       Long or Short Dialog  . . . . . . . . . . . . . . .  9-4
 9.4.2       Input to Output Field Correspondence  . . . . . . .  9-4
 9.4.3         Field Alpha, Numeric or Date Characteristics  . .  9-5
 9.4.4       Output Field Size . . . . . . . . . . . . . . . . .  9-5
 9.4.5       Field Breakdown . . . . . . . . . . . . . . . . . .  9-6
 9.4.5.1       Field Breakdown Example . . . . . . . . . . . . .  9-7
 9.5       Input Data Field Representation . . . . . . . . . . .  9-10
 9.6       Output Format Dialog  . . . . . . . . . . . . . . . .  9-10
 9.6.1       Overlay and Header Option . . . . . . . . . . . . .  9-10
 9.6.1.1       Overlay and Header Option Example . . . . . . . .  9-11
 9.6.2       Report File Code Name . . . . . . . . . . . . . . .  9-11
 9.6.2.1       Report File Code Name Example . . . . . . . . . .  9-11
 9.6.3       Report Title  . . . . . . . . . . . . . . . . . . .  9-11
 9.6.3.1       Report Title Example  . . . . . . . . . . . . . .  9-11
 9.6.4       Data Suppression Feature  . . . . . . . . . . . . .  9-11
 9.6.4.1       Data Suppression Example  . . . . . . . . . . . .  9-12
 9.6.5       Sorting Sequence  . . . . . . . . . . . . . . . . .  9-13
 9.6.5.1        Sorting Sequence Example . . . . . . . . . . . .  9-13
 9.6.6       Spacing, Paging, and Line Skipping  . . . . . . . .  9-13
 9.6.6.1       Spacing, Paging, and Line Skipping Example  . . .  9-14
 9.6.7       Column Headings . . . . . . . . . . . . . . . . . .  9-14
 9.6.7.1       Column Headings Example . . . . . . . . . . . . .  9-14
 9.7       Output Program  . . . . . . . . . . . . . . . . . . .  9-15
 9.7.1       Repeatable Output Program Example . . . . . . . . .  9-16
 9.7.2       "Once-only" Output Program Example  . . . . . . . .  9-17
 9.8       CSSRPT UPDATE Mode  . . . . . . . . . . . . . . . . .  9-19
 9.8.1       CSSRPT UPDATE Example . . . . . . . . . . . . . . .  9-19
 9.9       CSSRPT CHANGE Mode  . . . . . . . . . . . . . . . . .  9-20
 9.9.1       CSSRPT CHANGE Example . . . . . . . . . . . . . . .  9-20
 9.9.1.1       Data Suppression Change . . . . . . . . . . . . .  9-22
 9.9.1.2       Output Field Column Heading Change  . . . . . . .  9-22
 9.9.1.3       Sorting Sequence Change . . . . . . . . . . . . .  9-23
 9.9.1.4       Examples  . . . . . . . . . . . . . . . . . . . .  9-23

10    CSSDBM DATA BASE CONVERTER (CSSCNG)  . . . . . . . . . . .  10-1
10.1       General Description . . . . . . . . . . . . . . . . .  10-1
10.2       CSSCNG Dialog . . . . . . . . . . . . . . . . . . . .  10-2
10.2.1       CSSCNG Example  . . . . . . . . . . . . . . . . . .  10-2

Figures
  1-1    Basic Data Processing Terms . . . . . . . . . . . . . .  1-2
  1-2    CSSDBM Basic Data Flow  . . . . . . . . . . . . . . . .  1-3

Tables
  1-1    Data Base Layout  . . . . . . . . . . . . . . . . . . .  1-7