* CICSVSAM.TXT * ----------------------------------------------- 12/08/93

          VSAM CICS transaction, to edit Vsam CICS files

---------------------------------------------------------------- Rel. 2.2




1)                     I N T R O D U C T I O N


    With 'VSAM' transaction you can view or update Vsam files defined in
CICS environment, with an operating use similar to a simple editor, with
every viewed row corresponding to a record.
With 'VSAM' you can do:
- normal view or hexadecimal view
- string search forward or backward, on all file or only on a field
- delete one record or more (except for ESDS)
- update a record typing normally or in hexadecimal
- copy one or more records in a buffer
- add one or more records from a previously saved and edited buffer
- insert (merge) of one or more records previously saved in a buffer
  (if file is a KSDS or a RRDS)
- possibility to manage files with variable record length, and specifically
  to change the record length to one or more records (KSDS only)
- view files characteristics, as key position and offset, or keys
  itself, or view RBA of a ESDS or KSDS file, or record number in
  respect of start of the file
- immediately to go to a record whom you know the key
- add a record to a empty file

    Is possible to force a read-only access; at last is possible maintain
a log of all updates made with transaction VSAM.




2)                       U S E R ' S   G U I D E


    Run this transaction in CICS session as a command, in this way:

    VSAM file-name

where 'file-name' mean logical name in FCT, that is the name used in CICS
to access file. So logical name is at most 7 characters in VSE/SP or
8 character in MVS. If file exist, has at least one record and is opened
to CICS, appear VSAM editor screen with first 20 record displayed. 
We outline the screen in this way:


    /------------------------------------------------------------------+
    ! Editor VSAM -  filename KSDS    12    32  Key: 10  2  VSAML0C1 A !
    !     0....+....!....+....!....+....!....+....!....+....!....+     !
    ! ---- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa              !
    ! ---- bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb              !
    ! ---- cccccccccccccccccccccccccccccccccccccccccccccc              !
    ! ---- dddddddddddddddddddddddddddddddddddddddddddddd              !
    ! ---- eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee              !
    ! ---- records ...................................                 !
    ! ---- records ...................................                 !
    ! ---- hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh              !
    ! ---- iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii              !
    ! ---- llllllllllllllllllllllllllllllllllllllllllllll              !
    ! ----                                                             !
    ! ==> _                                                            !
    ! 1=Help 2=Hex 3=Quit 4=Left 5=Right 6=Lrec 7=Ba 8=Fo 9=Top 10=Bot !
    +------------------------------------------------------------------/


    Screen is composed by:
- first line, with some file characteristics
- second line, with the ruler, with a number on the left show starting
  position (view offset) as for record beginning
- lines from 3 to 22, with 'prefix area' (the column of '----' on the
  left) on which is possible to do some commands related to a single record
  and with data of the records, normally readable or in hexadecimal
- line 23, the 'command line' on which can write other commands
- line 24, with a short help of PF keys

    Let's explain in details contents of the first line:
- logical name of the file, that is the name written at right of transid
- file type: can do ESDS, KSDS or RRDS
- relative record number for the first and last records on the viewed on
  actual screen; this numbers can be missed: this mean that program
  actually cannot count the position of the first record on the screen.
  Typically this happen when is used a direct access positioning command,
  as KEY or BOTTOM command. To restart this count, use command TOP.
  Note that this record count is available for all three types of VSAM
  files and specifically for RRDS can to be different in respect to
  Relative Record Number (RRN) of each record, because transaction counts
  only existing record whereas Vsam RRN number counts also deleted records
- length and position (offset) of the key of a KSDS file; these values
  are equal to 0 for a ESDS or a RRDS.
- buffer name used by program (VSAML0C1 in our example); this buffer is a
  Temporary Storage queue, which name (if isn't changed by its command)
  is made by 4 characters 'VSAM' and by 4 characters of the terminal name
- direction of movement: can be character 'A' meaning 'Forward' or 'I'
  meaning 'Backward'. To know this direction is important because is
  the direction assumed by search command.
  To set direction you want, remember that 'PF8' and 'TOP' set Forward and
  'PF7' and 'BOTTOM' set Backward.

    At start, transaction VSAM access file in read-only, and so unlike a 
normal editor, fields showing records are protected (not writable); we
will see later how update them.


    In 'prefix area' you can write this commands, beside the record on
which you want to take effect:
'Q'  : view the record key, that can be:
       true key field for a KSDS file
       RBA (Relative Byte Address) of the record for a ESDS file
       RRN (Relative Record Number) of the record for a RRDS file
'/'  : bring the record selected at the top of the screen
'C'  : copy the record in buffer of temporary storage actually defined
'D'  : delete the record provided that is not a ESDS file; for every
       deleted record a track is written in the log file VSAMLOG
'.n' : put a label corresponding to selected record; near the point
       (.) put one digit from 1 to 9 that distinguish it from the
       other labels; to move to a labeled record you can write ".n" in
       command line, with "n" corresponding to the label before inserted.


    You can give copy command for a whole block of records, writing
'CC' beside initial record and 'CC' beside final record of the block.
Anyway, successive copy commands, queue the records in buffer after
the previously copied, as long as the buffer is emptied out with the
specific command. Buffer can in turn be edited with command 'EDTS'.
Block command 'DD' for massive record deletion is not available:
therefore every record must be individually deleted with a 'D'.


    Some commands that you can write in 'command line' are partially a
duplicate of function keys:

    Help     (PF1) : recall Help screen, with a summary of all commands
    Hex On/Off(PF2): switch of the view mode in hexadecimal (On) and
                     in normal character mode (Off)
    Quit     (PF3) : end the program; this command (and PF3 key) can be
                     used in Update mode to leave actual update without
                     do any rewrite of the modified records
    Forward  (PF8) : go forward of a screen in record viewing; you can also
                     specify the number of wanted pages, beside the command
    Backward (PF7) : go backward of a screen; can specify the number of pages
    Right    (PF5) : shift the view at right if record length is over the
                     screen width; movement is of 40 bytes; is only of 20
                     bytes if actual view is in hexadecimal; in command line
                     you can specify the number of character to shift: this
                     number is anyway cut off to a multiple of 10
    Left     (PF4) : shift the view at left in the same way of the 'Right'
                     command
             (PF6) : view in prefix area actual record length of the record 
                     beside; if you are in Update mode and the file has a 
                     variable record length, changing this number you can
                     change the length of the selected record. 
                     Keep in mind these limits (that are Vsam limits):
                     - a RRDS file cannot be of variable record length
                     - cannot be modified record length of an already present
                       record in a ESDS file, even if ESDS has variable
                       record length (only ADDED records can have any length)
    Top      (PF9) : go to the first record of the file
    Bottom   (PF10): go to the last record of the file

    Remaining commands are the most important:

    Update : change from Read-only mode to Update mode. In the screen, 
             records become not protected and every record on the screen
             is freely changeable. In Update mode all commands that 
             change position inside the file are disabled, that is PF7,
             PF8, PF9, PF10 and search command. Moreover is not possible
             to use 'Zoom' command to change view mode (but is possible
             to use 'Update' mode in 'Zoom' view, see later).
             Instead 'Right' and 'Left' commands work normally (PF4 and 
             PF5) and particularly view change in hexadecimal: in this case
             record update must be done overwriting records in hexadecimal.
             In non hexadecimal view, any record character that isn't a
             regular EBCDIC character is viewed as point (.); typically
             are modified in hexadecimal view only numerical fields not 
             clear as binary or packed numbers.
             Every change you do on records is in memory and no update
             actually occurs; to lose any update you can do 'Quit' command
             (or PF3) whereas to save your updates can write 'File' command
             or 'Update' command. A message display how many records are
             successfully rewritten. Exiting from Update mode you return
             in read-only mode and positioning commands are enabled.
             Is not possible to edit records with length over 2000 bytes:
             to do this you must change in 'Zoom' mode and next in update
             mode.
       Note: - also ESDS records can be updated
             - if file is a KSDS with variable record length and you are
               viewing record length (with PF6) also record length is
               changeable (with record trunk if you shorten it, or record
               padding with binary zeroes if you extend it)
             - record delete is disabled in Update mode
             - for every record successfully updated, a track is maintained
               in VSAMLOG.

    Zoom   : change viewing mode from 20 records in a screen to only one
             record, with those benefits:
             . viewed record is in hexadecimal and in characters
             . in this mode program can manage record length over 2000
               bytes

             In this mode screen is similar to this:


    /------------------------------------------------------------------+
    ! Editor VSAM -  filename KSDS    12    32  Key: 10  2  VSAML0C1 A !
    !                                                                  !
    ! ---- 1 . . .  + . . .  ! . . .  + . . .        ....+....!....+...!
    ! 0000 aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa     0 AAAAAAAAAAAAAAAAAA!
    ! 0014 bbbbbbbb bbbbbbbb bbbbbbbb bbbbbbbb    20 BBBBBBBBBBBBBBBBBB!
    ! 0028 cccccccc cccccccc cccccccc cccccccc    40 CCCCCCCCCCCCCCCCCC!
    ! 003C dddddddd dddddddd dddddddd dddddddd    60 DDDDDDDDDDDDDDDDDD!
    ! 0050 eeeeeeee eeeeeeee eeeeeeee eeeeeeee    80 EEEEEEEEEEEEEEEEEE!
    !                                                                  !
    !                                                                  !
    !                                                                  !
    !                                                                  !
    ! ==> _                                                            !
    ! 1=Help 2=Hex 3=Quit 4=Left 5=Right 6=LRec 7=Ba 8=Fo 9=Top 10=Bot !
    +------------------------------------------------------------------/


    On the left record is viewed in hexadecimal with the offset (also in
    hexadecimal) from start of the record; on the right record is in 
    character with offset in decimal. Every row display 20 bytes of the
    record and a full screen display 360 characters at most.
    Prefix area exists even here: is the field '----' at the left of the
    hexadecimal ruler: this prefix area accept the same commands as
    before, except for command 'Q'.
    In command line you can write the same commands as before and the
    Function Keys have the same meanings, with this changes:
    PF7 / PF8 go backward / forward inside the same record if the record
              is not contained in a screen (that is if record length is
              greater than 360 bytes); skip to the before / next record
              if you view the start / end of the record. (The same
              for commands 'Backward n' and 'Forward n')
              Note: if direction of PF7/PF8 is different from actual (A/I
              on the top right of the screen), direction is changed with
              the same record, the second press the same PF key change 
              really the record
    PF2  has not any effect
    Even here command 'U' go in update mode of the record displayed,
    disabling functions that change the viewed record; you can edit
    indifferently in hexadecimal or in character; you must write 'U'
    (or 'File') again to rewrite the changed record and to switch into
    read-only mode.

    To return in normal view (20 record / screen) from zoom mode write
    'Zoom' in command line again.


    Get    : add to the file records actually existing in buffer.
             Behavior of the program is different according to file type:
             ESDS : records are added at the end of the file, in the same
                    order of the buffer
             KSDS : records are written according to the key present in
                    every record; if a record with the same key already
                    exist, record is rejected; with KSDS file you have a
                    kind of 'merge' between file and buffer
             RRDS : records are added at the end of the file; is also
                    possible for RRDS to specify, beside command Get,
                    a record number (the Relative Record Number): in
                    this case records are added if the slot (the position)
                    specified is empty and are rejected if slot is occupied.
                    In other words, is possible to insert records in the 
                    middle of a RRDS on condition that are replaced records
                    previously deleted. Is not possible to insert records
                    from record number 1.
       Note: At the end of the process a message is displayed with the
               number of inserted records and the number of rejected records.
             For every file type:
             - if file has variable record length, is preserved the same
               length of the records in the buffer;
             - if in the buffer, records have length greater then maximum
               for the file, those records are truncated.
             - if in the buffer, records have length less then minimum
               for the file, binary zeroes ('Low values' in cobol) are
               added at the end of the records.
             Get command leave buffer unaltered; so, if required, buffer
               can be deleted with Purge command.
             Every record successfully added is recorded in VSAMLOG.


    Key    : Direct positioning on a certain record.
             The argument of the Key command is different according to
             type of file:
             ESDS : Key rba
                    go to the record with specified RBA, that must be
                    a valid RBA, that is must correspond to a record start
             KSDS : Key /key/
                    go to the record with key specified in /key/
                    Note that:
                    - a partial key can be specified
                    - if you are in hexadecimal view, you must specify a
                      valid hexadecimal value between the slashes (/)
             RRDS : Key rrn
                    go to the record with specified RRN (Relative Record
                    Number)
                    If record with this RRN is deleted, go to next 
                    existing record.

    EDTS   : recall Temporary Storage queue editor to view or change records
             added in this buffer with 'C' command.
             This TS editor works in a manner similar to transaction 'VSAM',
             is a little more flexible and has more true editing commands.
             For detail, see manual of EDTS transaction.
             During a delete of records in the buffer, can happen that at 
             the end of the buffer there are some spurious not deletable 
             lines, lines with a bytes of value '00' hexadecimal: this is
             because CICS don't allow to delete a single record in a TS 
             queue; this false lines are anyway ignored by command Get,
             (and so you also can ignore it).
             If you recall command EDTS and buffer is empty, a record full
             of blanks of length 80 is inserted in the buffer.
             Beside command EDTS you can specify a name of another TS queue
             if you do not want to edit default buffer; anyway, if you don't
             change default buffer with 'Buffer' command, 'Get' command can
             use only default buffer.
             To exit from EDTS editor use PF3 key, and so you return to
             VSAM transaction.

    Purge  : delete default buffer (that is a Temporary Storage queue used
             as buffer).

    Buffer nome-coda-TS : change the name of the TS queue that is used as
             buffer; commands as 'Get' or prefix area command as 'C' will
             read and write in this new Temporary Storage queue.

    Zone col1 col2 : define a field starting from column 'col1' and end
             at column 'col2' (see characters '<' and '>' on the ruler).
             This command restrict a search on the specified field when
             you use '/.../' command.
             Default is a search on a whole record.

    /string/ : search the specified string in the direction specified by
             'A' or 'I' (on the right top of the screen).
             If you have specified a 'Zone', search is on the selected
             field, otherwise is on the entire record.
             Records found are highlighted with a '===>' in prefix area;
             if string is not found, the search end at the file end (or
             at the file start if the search is backward). If the command
             is written when you are in hexadecimal view, you must write 
             in hexadecimal also the string between the slashes.
             The second slash to end the string cannot be omitted.
             If inside the string you must use just the slash (/), well
             then the string must be written in hexadecimal to avoid
             ambiguities. You must use this command with caution for very
             big files, because a sequential search can last a lot of time
             and can heavy penalize others concurrent transactions.
             To limit heaviness of this command, a limit exist to the
             number of records that can be read in one time: if searched
             string is not found within this limit, search is stopped and
             a message is displayed. Search can anyway continue with 'Find'
             command. Default limit is 5000 records and can be changed 
             with 'Scanlim' command.
             Search is NOT case insensitive; so if you type in lowercase
             (and terminal or CICS don't convert in uppercase) be aware
             that the string searched is exactly as you typed it.

    Find   : continue the same search in the same direction; use this command
             to find other occurrences of the string.

    .n     : go to the record previously labeled in 'prefix area' with
             '.n'; n can be a number from 1 to 9. Useful as a bookmark,
             especially in ESDS files.

    Reset  : delete all the labels '.n' previously defined.

    VSAM file-name : VSAM transaction can recall itself to edit another
             file at the same time.

    Scanlim  n  : define the maximum number of records that can be read
             in a single search with /.../ or with 'FIND' before the break;
             'n' can be a number between 100 and 1000000.

    ABEND  : force an abnormal end of VSAM transaction; its purpose is to
             backout a file that you have updated in wrong manner;
             this file must be defined in FCT to allow backout (note that
             ESDS aren't anyway backout-able). This command works because
             VSAM it is written as a conversational transaction; if you 
             end the program (with PF3) obviously file backout is not 
             more possible.
             On the transaction log (file VSAMLOG, that is not backout-able
             because is a ESDS) are reported both updates that are backouted
             and the requested Abend. 
             Other non requested abend are not reported in VSAMLOG.


    Note: every command in command line can be shorted up to one character
provided that command is not ambiguous, for example:
F  = Forward  ;   FI = Find   ;   FIL = File
Command 'ABEND' must be written entirely.



    Let's describe now some optional parameters that are useful in some
special circumstances.

    - REMOTE files.

    Let's suppose to use VSAM program with files defined remote to CICS,
that is files that are controlled (opened, closed, read, etc.) in a CICS
different from CICS where you use VSAM.
    In this situation, VSAM transaction cannot decide file type and
the kind of key, if file is a KSDS.
So the command to recall VSAM transaction must be written in this manner:

                      +                       +
                      ! ESDS                  !
    VSAM logical-name ! KSDS  len-key  offset !
                      ! RRDS                  !
                      +                       +

If remote file is a KSDS to specify key length in bytes is mandatory,
whereas if key offset is omitted, by default is assumed that is equal
to 0, that is the key is at the start of the record.


    - Empty files.

NEW and ADD (are synonyms); since is not possible to edit an empty file,
         with parameter ADD or NEW program first writes a dummy record,
         then go to edit the file. This record will be deleted or changed
         later. 
         This parameter is ignored if in file there is at least one record.


    - Read only Access.

RO       access the file in Read Only mode and prevent update, add and
         delete of records (that is disable Update mode).




3)       E D I T     O F    N O N   C I C S    V S A M   F I L E S


    We mean to use VSAM program to edit files that aren't defined to CICS
in FCT table, that is files not used by any CICS application. In this
manner we can decide at any moment what is the effective physical name
of the file we want to edit.
    This is possible in MVS environment using file dynamic allocation,
available in every CICS version.
    Anyway, dynamic allocation must rely on a pre-existent file
definition in FCT, so is recommended this implementation:

- Let's define in FCT one or more dummy files with non existent names
  and with some generic features effective for (near) every Vsam file;
  for example:

        DFHFCT  TYPE=DATASET,
                DATASET=DUMMY1,
                DSNAME=DUMMY1.DUMMY1,
                FILSTAT=(CLOSED,DISABLED)

- Don't put relating DD statement in CICS start job 
- run VSAM transaction in this mode:

        VSAM DUMMY1 physical.file.name

  in which DUMMY1 is this fictitious file in FCT and  'phyisical.file.name'
  is the true name of Vsam dataset that you want to edit
  VSAM program in this case do these things:
  . if file DUMMY1 is closed and disabled, insert specified physical name
    as CICS definition of dataset name (DSN); in other words physical
    file name parameter is dynamically changed in FCT (this is possible
    also manually with CEMT transaction, if you change DSN of selected
    file)
  . enable and open this dummy file
  . go in edit of this file as usual

    Change of physical file name is possible only if file is closed and
disabled; if CICS reports errors in this dynamic allocation, these are
displayed by VSAM transaction.
When you exit from VSAM transaction, if dynamic allocation is used, file
is automatically closed and disabled, to allow a new dynamic allocation
and edit for a different file.
    If when you run VSAM you add 'RO' parameter to access in Read-Only,
besides to set physical name for dynamic allocation, is changed even
CICS access mode in FCT, removing 'Del', 'Add' and 'Upd' so that file is  
read-only not only for transaction, but also for CICS.
In this way is possible to open with CICS a file that is currently opened
by another CICS or by a job batch (if Vsam file have Shareoption 2 or 3).
    Is possible also dynamically access a file defined in same CICS:
it can be useful to access at Vsam level files that really are DL1 Vsam
database, to view or edit internal DL1 pointers.






4)                           E X A M P L E S


    Besides obvious uses of VSAM to view, control and to do file maintenance
in CICS, this program is useful to create test files in development 
environment.


  - You want duplicate a record of a KSDS file, naturally changing the key
but maintaining unchanged other fields:
  . Copy in buffer the record to duplicate with 'C' in prefix area
  . With EDTS command, change key field in the record saved in buffer,
in a manner that new key will put the record in wanted position
  . After this change, exit from EDST with PF3 key
  . Use 'GET' command to write this new record in file
  . Optionally clean the buffer with 'PURGE' before to do other things
    (buffer is never automatically cleared after its use).
Note: if we update directly a key field of a KSDS, when we update this
      change, we obtain an 'ILLOGIC' error (and with reason, this is not
      a true update!).
      in a ESDS, a record is not duplicable because GET do always an add
      in a RRDS, a record is duplicable only if next record is deleted,
         leaving a slot empty: in this case do a 'GET n' to insert the
         record, where 'n' is the free record position.


  - In a KSDS file just defined and therefore empty, you want fill it with
 records taken from two other files defined in the same CICS:
  . Access the empty file with 'NEW': here will be created a dummy record
  . Access the first old file and copy in buffer wanted records with 'C'
in prefix area (in any order).
  . Access the second file and copy wanted records in the same manner
  . Access the buffer with EDTS and modify key fields to obtain order you
want
  . Use 'Get' to import records from buffer into the empty new file
  . Delete dummy record that in this case had the function only to permit
an access to VSAM program 
  . Clean buffer with "PURGE".
Note: with dynamic allocation of CICS/MVS those files not necessarily
belong to CICS or to the same CICS; using it in Read-Only can be even
belong to, for example, a production CICS and can be opened in read-write
to it.


  - Transfer file PC-Host IND$ in CICS MVS environment can only transfer
from PC to Temporary storage queue; now you want transfer it from TS to
a Vsam file:
  . Access directly to TS queue with command "EDTS queue-name", that you
can use in CICS without recalling VSAM transaction first; in this editor
delete first record, that is an header produced by transfer file
  . Edit your Vsam file
  . Change buffer name with the name of your TS queue with
         "BUFFER queue-name"
  . Use GET command to import the queue in the vsam file
  . Delete TS queue if you want, with "PURGE"


  - To verify physical integrity of a KSDS file (have you a loss of power
during a CA split ?):
  . Go in edit of this file and search a string that you know is not
existent: program will read file from start to end without find it;  if
the program end this read without errors, every record is readable and
the file is not physically corrupted.
This method is good also to know the number of records in a file: after
the search to end of file, the first line of the screen display the order
number of the last record.
Pay attention: if file is big this search can be heavy and can penalize 
other CICS users.






5)                     I N S T A L L A T I O N


    This CICS utility consists of only one executable, named CICSVSAM.
Although isn't necessary, is advisable to install also program CICSEDTS
to edit buffers with command EDTS.
You must so create an entry in PCT table for transid 'VSAM' and an entry
in PPT for program CICSVSAM; optionally an entry in FCT for file 'VSAMLOG'.
    Program in PPT must be defined as Assembler program.
Transid can be chosen freely, as also the name of the program (provided
that you do a rename of executable after installation and provided that
in PCT table link between transid and program is correct).
However, if you change program name, VSAM cannot recall itself with
command  'VSAM file-name'.
Instead you cannot change logical name of log file 'VSAMLOG', unless
you do a 'zap' on the executable.
    Log file is an ESDS with record length 80; all the remainder is as
you like. This file don't require initialization; it will be used by VSAM
only if exist and is opened; is recommended to use it in production
environment to watch possible reckless accesses.
In a log record is written: day, time, terminal, user name (or CICS name
if user don't do Sign-On), file name, file type, update type (add, del,
etc.) and key of updated record (log file cannot be used to rollback
updates). Log file can be viewed with VSAM itself but its contents cannot
be changed. 
    Program CICSVSAM is written in assembler Command Level in conversational
manner; run in CICS/MVS starting from CICS 3; has been tested in CICS 3.3
and in CICS 4.1.
Is available a version in CICS/VSE.


Examples of table coding (with CEDA use homologous parameters):

PCT :
         DFHPCT   TYPE=ENTRY,
               TRANSID=VSAM,
               RSL=PUBLIC,
               PROGRAM=CICSVSAM


PPT :
         DFHPPT   TYPE=ENTRY,PROGRAM=CICSVSAM,RSL=PUBLIC

    The only important thing is define the language as Assembler (that
is the default in traditional tables, but not in CEDA).


FCT :
         DFHFCT TYPE=DATASET,RSL=PUBLIC,
               DATASET=VSAMLOG,
               ACCMETH=VSAM,
               SERVREQ=(UPDATE,BROWSE,ADD,READ,DELETE),
               FILSTAT=CLOSED,
               LSRPOOL=NONE,
               LOG=NO,
               RECFORM=(FIXED,BLOCKED),
               STRNO=1


Delete / Define of file VSAMLOG:

         DELETE (vsam.log) CLUSTER PURGE [ CATALOG(catalog.name) ]
         DEFINE CLUSTER (                                  -
                NAME(vsam.log)                             -
                NONINDEXED                                 -
                REUSE                                      -
                TRACKS(5 5)                                -
                RECORDSIZE(80 80)                          -
                SHAREOPTIONS(2)                            -
                VOLUMES(namevol)                           -
                )                                          -
              DATA (                                       -
                NAME(vsam.log.data)                        -
                CISZ(1024)                                 -
                )                                          -
          [   CATALOG(catalog.name)    ]



    CICSVSAM program can be recalled for another program with an
EXEC CICS LINK, passing parameters in COMMAREA.
COMMAREA can be of every length to a maximum of 100 bytes.
In short, if we ignore optional parameters, in COMMAREA will be passed
only file logical name, so a length of 8 bytes can be enough.

    Program has this limits:
- CICS terminal can be a standard 3270  80x24
- cannot manage linear files, nonvsam files or other special files that 
  aren't KSDS, EDSD or RRDS.


