This chapter expands on the information presented in the chapter Files and Data Sets in your User's Guide. It covers the following subjects:
The data set organizations supported by Mainframe Express are shown in the following table.
Abbreviation | Organization | Comment |
---|---|---|
DA | Direct access | |
DAU | Direct access, unmoveable | |
GDG | Generation data group | |
IS | Indexed sequential | |
ISU | Indexed sequential, unmoveable | |
PDSM | Partitioned data set member | Micro Focus organization |
PO | Partitioned | |
POU | Partitioned, unmoveable | |
PS | Physical sequential | |
PSU | Physical sequential, unmoveable | |
VSAM | Virtual storage access method |
The following table shows the record formats for all the data set organizations except VSAM.
Abbreviation | Format | Control Characters |
Record Delimiters |
Comment |
---|---|---|---|---|
F | Fixed | None | None | |
FA | Fixed | ANSI | None | |
FB | Fixed blocked | None | None | Same as F format |
FBA | Fixed blocked | ANSI | None | Same as FA format |
FBM | Fixed blocked | Machine | None | Same as FM format |
FBS | Fixed blocked spanned | None | None | Same as F format |
FM | Fixed | Machine | None | |
FS | Fixed spanned | None | None | Same as F format |
LSEQ | Line sequential | None | Carriage return/line feed | |
U | Undefined | Results unpredictable on PC | ||
V | Variable | None | Micro Focus type | |
VA | Variable | ANSI | Micro Focus type | |
VB | Variable blocked | None | Micro Focus type | Same as V format |
VBA | Variable blocked | ANSI | Micro Focus type | Same as VA format |
VBM | Variable blocked | Machine | Micro Focus type | Same as VM format |
VBS | Variable blocked spanned | None | Micro Focus type | Same as V format |
VM | Variable | Machine | Micro Focus type | |
VS | Variable spanned | None | Micro Focus type | Same as V format |
Note: Blocked and spanned record formats are accepted by Mainframe Express but have no meaning in a PC environment.
The following table shows the record formats for VSAM files.
Abbreviation | Format | Control Characters |
Comment |
---|---|---|---|
ES | Entry sequence | None | |
KS | Key sequence | None | |
LS | Linear sequence | None | Not supported |
RR | Relative record | None |
Mainframe Express works with logical record lengths as defined in the following table:
Record Format |
Logical Record Length |
---|---|
Fixed | Actual record length |
Variable | Actual record length + 4 |
LSEQ | Maximum record length |
Mainframe Express writes data sets to PC files using the following organization and record format mapping:
Mainframe | PC | |||
---|---|---|---|---|
Dataset Organization | Record Format | File Organization |
Record Format | Comment |
DA, DAU, PS, PSU |
Any fixed (Fnn) or variable (Vnn) format | Sequential | Micro Focus | |
DA, DAU, PS, PSU |
LSEQ | Line sequential | Micro Focus | Always uses ANSI character set. Can only be edited with a text editor |
GDG | Catalog entry only | |||
IS, ISU | Any fixed (Fnn) or variable (Vnn) format | Indexed sequential | Micro Focus | |
PDSM | Any fixed (Fnn) or variable (Vnn) format | Sequential | Micro Focus | |
PDSM | LSEQ | Line sequential | Micro Focus | |
PO, POU | Catalog entry only | |||
VSAM | ES | Sequential | ESDS | |
VSAM | ES | Indexed sequential | ESDS | Alternate index defined |
VSAM | KS | Indexed sequential | Micro Focus | |
VSAM | LS | Not supported | ||
VSAM | RR | Relative | Micro Focus |
Dynamic PDS member lists enable you to specify a PC-based directory that is to represent the contents of a mainframe-hosted PDS. When you define a PDS using a dynamic member list, you use the Dynamic PDS tab of the Allocate Dataset dialog box to specify a directory and list of extensions; Mainframe Express scans the specified directory for files with extensions matching those in the extension list, then dynamically builds the PDS's member list using the files it finds.
Although you can use a single directory to represent the contents of more than one PDS by using different extensions for the PDS members, we strongly recommend that you do not use this approach, as it could lead to conflicting member names if , for example, the extensions are changed to a wildcard, or if more than one extension is used per dynamic PDS.
We recommend that you do not use a directory associated with a dynamic PDS model with any other PDS models (regardless of whether they are dynamic or not). Although member list processing works successfully in such a scenario, behavior could be unexpected when editing a member by double-clicking on it from the Catalog View if the two models had differing DCB information.
When adding a file into a dynamic PDS, you must ensure that the new file is in the same directory as the directory specified when the dynamic PDS was created.
When allocating a new PDS member, the extension used for the new member is the first extension specified in the extension list.
When deleting a PDS member in a dynamic PDS, you must check Also delete associated data file(s) before clicking OK on the Delete Catalog Entries dialog box for the deletion to be carried out fully.
Mainframe Express provides support for PROXMVS files as well as mfextmap.dat files created when using COBOL Workbench, where PROXMVS and COBOL Workbench are earlier products from Micro Focus. For information on how to use such files, see the chapters Migrating from PROXMVS and Your Mfextmap File in your Migration Cookbook.
A generation data group (GDG) consists of two parts: a GDG model and a series of physical sequential (PS) data sets, called biases (also known as generation data sets) that are associated with the GDG.
There are two main ways to set up a GDG:
The following example illustrates a job that can be used to create a generation data group. STEP00 creates the GDG model and STEP01 creates five new GDG biases.
//MFIDMFGD JOB 'MFIDMFGD',CLASS=A,MSGCLASS=A,NOTIFY=MFIDF
//STEP00 EXEC PGM=IDCAMS
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//AMSDUMP DD SYSOUT=*
//SYSIN DD *
DELETE MFIDMF.TEST.GDG
DEFINE GENERATIONDATAGROUP
(NAME(MFIDMF.TEST.GDG) EMPTY NOSCRATCH LIMIT(96))
/*
//STEP01 EXEC PGM=IEFBR14
//SYSUXX DD
DSN=MFIDMF.TEST.GDG(+1),DISP=(NEW,CATLG),SPACE=(TRK,(5,2))
//SYSUXY DD
DSN=MFIDMF.TEST.GDG(+2),DISP=(NEW,CATLG),SPACE=(TRK,(5,2))
//SYSUXZ DD
DSN=MFIDMF.TEST.GDG(+3),DISP=(NEW,CATLG),SPACE=(TRK,(5,2))
//SYSUXA DD
DSN=MFIDMF.TEST.GDG(+4),DISP=(NEW,CATLG),SPACE=(TRK,(5,2))
//SYSUXB DD
DSN=MFIDMF.TEST.GDG(+5),DISP=(NEW,CATLG),SPACE=(TRK,(5,2))
Five biases named MFIDMF.TEST.GDG.G0001V00, MFIDMF.TEST.GDG.G0002V00, MFIDMF.TEST.GDG.G0003V00, MFIDMF.TEST.GDG.G0004V00 and MFIDMF.TEST.GDG.G0005V00 are created by STEP01.
A bias can be processed by its relative number, its actual reference or as a part of the entire generation data group. For example, each of the following statements could be executed after running the previous job.
//SYSUT1 DD DSN=MFIDMF.TEST.GDG,DISP=SHR
This would cause the entire generation data group MFIDMF.TEST.GDG, consisting of a set of concatenated data sets MFIDMF.TEST.GDG.G0001V00 through MFIDMF.TEST.GDG.G0005V00, to be referenced.
//SYSUT1 DD DSN=MFIDMF.TEST.GDG(0),DISP=SHR
The relative number 0 would cause the data set named MFIDMF.TEST.GDG.G0005V00 to be referenced.
//SYSUT1 DD DSN=MFIDMF.TEST.GDG(-1),DISP=SHR
The relative number -1 would cause the data set named MFIDMF.TEST.GDG.G0004V00 to be referenced.
//SYSUT1 DD DSN=MFIDMF.TEST.GDG(+1),DISP=SHR
The relative number +1 would cause a new data set named MFIDMF.TEST.GDG.G0006V00 to be referenced.
//SYSUT1 DD DSN=MFIDMF.TEST.GDG.G0003V00,DISP=SHR
The actual reference G0003V00 would cause the data set named MFIDMF.TEST.GDG.G0003V00 to be referenced.
The increment of numbers occurs per job, so if you had two consecutive steps that referenced +1, then each step would be using the same data set.
This section describes restrictions when using GDGs in Mainframe Express:
MFIDMF.TEST.GDG(-4)
or MFIDMF.TEST.GDG(+1)
, the following restrictions apply:
Copyright © 2002 Micro Focus International Limited. All rights reserved.
This document and the proprietary marks and names
used herein are protected by international law.