Thank you all for your help over the many message threads I have 
started since joining this list.

        The external assembler REXX function I am working on is so that I 
don't have to depend upon the built-in REXX VSAMIO function.  I don't like 
all the conversion, concatenation, and parsing I have to do to make VSAMIO 
work.  I miss record layouts.  My plan is to have my function provide all 
of the key and record building and extracting from and into REXX stem 
variables based on key and record layouts provided by the caller in the 
same stem variable.

        So, I have OPEN, CLOSE, and random catalog reads working so far. 
The OPEN syntax I support is as follows.

Call RXVSAMIO ddname, 'OPEN' 
                      <, 'INPUT'|'UPDATE'|'OUTPUT'|'APPEND'|'RESET'
                              <, 'SEQUENCE'|'RANDOM'|'DYNAMIC' > >;

          But, I have also built in the ability to retrieve dataset 
attributes and statistics -- and that is what you guys (and VSE-L) have 
been helping me with.  Now with the following REXX statements:

rprtdbs. = '';
Call RXVSAMIO 'rprtdbs', 'attrs';

        I get all of the following variables and values created (comments 
added manually).  As you can see, I keep the numeric data REXX readable. I 
will do the same thing with key and record values from the caller's 
perspective.  All conversions will be handled internally.

RPRTDBS._DDN = RPRTDBS
RPRTDBS._LFN = ATTRS                 /* Last Function Request */
RPRTDBS._LFM =                       /* Last Failing Macro */
RPRTDBS._RC = 0                      /* VSAM Return Code */
RPRTDBS._EC = 0                      /* VSAM Error Code */

RPRTDBS._DSN = DAPSCO.REPORT.DATABASE
RPRTDBS._CATLBL = DAPDCAT
RPRTDBS._CATDSN = DAPSCO.DAPD.CATALOG
RPRTDBS._TYP = XLDS
RPRTDBS._RMX = 2047                  /* Record Max Length */
RPRTDBS._RAV = 1845                  /* Record Average Length */
RPRTDBS._KMX = 17                    /* Key Max Length */
RPRTDBS._RKP = 0                     /* Relative Key Position */

RPRTDBS._CREA = 20220123             /* Creation Date */
RPRTDBS._EXPD = 20220123             /* Expiration Date */
RPRTDBS._TSTP = 20220201 030354      /* Last Update Date/Time */
RPRTDBS._SHRO = 4 3                  /* Share Options */

RPRTDBS._DATA = DAPSCO.REPORT.DATABASE.DATA
RPRTDBS._DCSZ = 26624                /* DATA CI Size */
RPRTDBS._DEXC = 1384210              /* DATA Number of EXCPs */
RPRTDBS._DEXT = 18                   /* DATA Number of Extents */
RPRTDBS._DCIS = 22940                /* DATA CI Splits */
RPRTDBS._DCAS = 2612                 /* DATA CA Splits */
RPRTDBS._DFSP = 0    6               /* DATA Freespace CI/CA Pct */
RPRTDBS._DHAL = 1796040              /* DATA High Alloc RBA/CI */
RPRTDBS._DHUS = 1718610              /* DATA High Used RBA/CI */
RPRTDBS._DTAL = CYL                  /* DATA Allocation Type */
RPRTDBS._DPAL = 3326                 /* DATA Primary Alloc */
RPRTDBS._DSAL = 0                    /* DATA Secondary Alloc */
RPRTDBS._DVOL = IDD240 IDD241 IDD242 IDD243 IDD250 IDD251 IDD252 IDD253 
IDD410 IDD411
                IDD412 IDD413 IDD460 IDD461 IDD462 IDD463 IDD490 IDD491 
IDD492 IDD493

RPRTDBS._INDX = DAPSCO.REPORT.DATABASE.INDEX
RPRTDBS._ICSZ = 1024                 /* INDEX CI Size */
RPRTDBS._IEXC = 1029854              /* INDEX Number of EXCPs */
RPRTDBS._IEXT = 10                   /* INDEX Number of Extents */
RPRTDBS._ILVL = 4                    /* INDEX Number of Levels */
RPRTDBS._ISSR = 0                    /* INDEX Sequence-Set RBA */
RPRTDBS._IHLR = 9507840              /* INDEX High level RBA */
RPRTDBS._IHAL = 60825600             /* INDEX High Alloc RBA */
RPRTDBS._IHUS = 59622400             /* INDEX High Used RBA */
RPRTDBS._ITAL = CYL                  /* INDEX Allocation Type */
RPRTDBS._IPAL = 12                   /* INDEX Primary Alloc */
RPRTDBS._ISAL = 0                    /* INDEX Secondary Alloc */
RPRTDBS._IVOL = IDD240 IDD241 IDD242 IDD243 IDD250 IDD251 IDD252 IDD253 
IDD410 IDD411
                IDD412 IDD413 IDD460 IDD461 IDD462 IDD463 IDD490 IDD491 
IDD492 IDD493

RPRTDBS._COMP = 0                    /* Compressed? */
RPRTDBS._ERAS = 0                    /* Erase?      */
RPRTDBS._IMBD = 0                    /* Imbed?      */
RPRTDBS._ORDR = 0                    /* Ordered     */
RPRTDBS._RCVR = 0                    /* Recover?    */
RPRTDBS._REPL = 0                    /* Replicate?  */
RPRTDBS._REUS = 0                    /* Reuse?      */
RPRTDBS._SPAN = 0                    /* Spanned?    */
RPRTDBS._WCHK = 0                    /* WriteCheck? */

RPRTDBS._RECS = 23305031             /* Total Records */
RPRTDBS._ADDS = 142063               /* Records Inserted */
RPRTDBS._DELS = 5973                 /* Records Deleted */
RPRTDBS._UPDS = 0                    /* Records Updated */
RPRTDBS._GETS = 462689               /* Records Retrieved */


Sincerely,

Dave Clark
-- 
Winsupply Group Services
3110 Kettering Boulevard
Dayton, Ohio  45439  USA
(937) 294-5331



*********************************************************************************************
This email message and any attachments is for use only by the named 
addressee(s) and may contain confidential, privileged and/or proprietary 
information. If you have received this message in error, please 
immediately notify the sender and delete and destroy the message and all 
copies. All unauthorized direct or indirect use or disclosure of this 
message is strictly prohibited. No right to confidentiality or privilege 
is waived or lost by any error in transmission. 
*********************************************************************************************

Reply via email to