********************************************************************** 00000100
* * 00000200
* * 00000300
* CTTAPIEX * 00000400
* * 00000500
* * 00000600
* FUNCTION: SAMPLE PROGRAM TO DEMONSTRATE ACCESS TO THE Control-T * 00000700
* MEDIA DATA BASE (MDB) USING THE CTT API. * 00000800
* * 00000900
* OUTPUT: THE SAMPLE PRODUCES A REPORT OF ALL THE ACTIVE VOLUMES * 00001000
* AND ITS DATASETS. THE DATASETS ORDER IN THE REPORT IS * 00001100
* ACCORDING TO THE DATASETS LABEL IN THE CHAIN. * 00001200
* * 00001300
* LOGIC: AT FIRST, THE PROGRAM STARTS THE API. THEN IT PERFORMS * 00001400
* QUERY ON THE DATABASE AND RECEIVES THE FIRST RECORD. * 00001500
* AFTERWARD IT PERFORMS QUERYNXT FOR EACH RECORD UNTIL * 00001600
* IT RECEIVES RC=4. AT THE END, THE PROGRAM CLOSES THE * 00001700
* API. * 00001800
* * 00001900
* TO COMPILE, LINK AND RUN THE PROGRAM: * 00002000
* * 00002100
* //CTTAPIEX JOB ... * 00002200
* //ASM EXEC CTTASM * 00002500
* //C.SYSIN DD DISP=SHR,DSN=IOA.SAMPLE(CTTAPIEX)<<<----- CHANGE * 00002600
* //L.AIOALOAD DD DISP=SHR,DSN=IOA.AIOALOAD <<<----- CHANGE * 00002700
* //L.SYSLMOD DD DISP=SHR,DSN=YOUR.LOAD.LIBRARY <<<----- CHANGE * 00002800
* //L.SYSIN DD * * 00002900
* MODE RMODE(24),AMODE(31) * 00003000
* ENTRY CTTAPIEX * 00003100
* NAME CTTAPIEX(R) * 00003200
* //* * 00003300
* //RUN EXEC PGM=CTTAPIEX,COND=(0,NE),REGION=60M * 00003400
* //STEPLIB DD DISP=SHR,DSN=YOUR.LOAD.LIBRARY <<<----- CHANGE * 00003500
* // DD DISP=SHR,DSN=IOA.LOAD <<<----- CHANGE * 00003600
* //DAALOCIN DD DISP=SHR,DSN=IOA.PARM(ALCCTT) <<<----- CHANGE * 00003700
* //DARPTOUT DD SYSOUT=* * 00004200
* // * 00004400
* * 00004500
********************************************************************** 00004600
*------------------------V.9.0.00------------------------------------* 00004700
* WT0761 18.08.02 CTT API -YM-* 00004800
********************************************************************** 00004900
MACRO 00005000
&NAME MYPUT &DCB,&REC 00005100
&NAME LA R15,*+6 ADDRESS FOLLOWING BASSM 00005200
BASSM R14,R15 CHANGE AMODE 00005300
PUT &DCB,&REC PUT THE DESIRED RECORD 00005400
LA R15,*+10 ENDING ADDRESS 00005500
O R15,=X'80000000' 00005600
BSM 0,R15 00005700
MEND 00005800
CTTIAPI INPUT DSECT PARAMETERS 00005900
CTTOAPI OUTPUT DSECT PARAMETERS 00006000
CTTAPIEX CSECT 00006100
CTTAPIEX AMODE 31 00006200
CTTAPIEX RMODE 24 00006300
BEGIN EQUR=YES 00006400
OPEN (RPTOUT,OUTPUT) OPEN VOLUME REPORT OUTPUT FILE 00006600
LTR R15,R15 SUCCESSFUL ? 00006700
BNZ OUTERROR NO - TERMINATE 00006800
MYPUT RPTOUT,HEADER1 PRINT REPORT HEADER 00006900
MYPUT RPTOUT,HEADER2 PRINT REPORT HEADER 00007000
* 00007100
* START THE API ENVIRONMENT. 00007200
* THE RELEVANT PARAMETERS FOR START ARE AS THE FOLLOWING: 00007300
* 1) FUNCTION START 00007400
* 2) RC WHICH IS ALSO PROVIDED IN R15 00007500
* 3) REASON 00007600
* 4) UTILITY RC WHICH CONTAINS THE RC THAT RETURNED FROM THE 00007700
* THE CALLED PROGRAM. 00007800
* 5) REALENV=(Y/N) - SPECIFY IF API WILL USE THE Control-T 00007900
* REAL ENVIRONMENT INSTEAD OF OPENING THE MEDIA DATABASE FILES. 00008000
* DEFAULT: N - ALLOCATE AND OPEN THE MEDIA DATABASE FILES. 00008100
* 00009400
CTTAPI START,RC=RC,REASON=REASON,MF=(E,APILIST) 00009500
LTR R15,R15 WAS START SUCCESSFUL? 00009700
BZ DOQUERY 00009800
B RETURN 00009900
* 00010000
* PERFORM QUERY REQUEST. 00010100
* THE RELEVANT PARAMETERS ARE AS THE FOLLOWING: 00010200
* 1) FUNCTION=QUERY 00010300
* 2) RC IF REQUIRED. IT IS ALSO RETURN IN R15. 00010400
* 3) REASON 00010500
* 4) URC - UTILITY RC FROM CALLED PROGRAM. 00010600
* 5) REPLY - REPLY BUFFER ADDRESS IN CTTOAPI FORMAT. 00010700
* 6) PATH - SPECIFIES THE TYPE OF RECORDS TO BE EXTRACTED. 00010800
* VALID VALUES: 00010900
* VOL - VOLUME RECORDS ARE EXTRACTED 00011100
* VOL/FDS - VOLUME RECORDS WITH ONLY THEIR 00011200
* FIRST DATASET RECORDS ARE EXTRACTED. 00011300
* VOL/ADS - VOLUME RECORDS WITH ALL THEIR 00011400
* DATASET RECORDS ARE EXTRACTED. DEFAULT. 00011500
* DS - DATASET RECORDS ARE EXTRACTED. 00011600
* DS/FVOL - DATASET RECORDS WITH ONLY THEIR 00011700
* FIRST VOLUME RECORD ARE EXTRACTED. 00011800
* DS/AVOL - DATASET RECORDS WITH ALL THEIR 00011900
* VOLUME RECORDS ARE EXTRACTED. 00012000
* 7) WHERE - SPECIFY INCLUDE AND EXCLUDE STATEMENTS LIKE IN OTHERS 00012100
* Control-T UTILITIES. 00012200
* 00012300
DOQUERY EQU * 00012400
CTTAPI QUERY,REPLY=BUFREP,RC=RC,REASON=REASON,URC=URC, *00012500
PATH=PATH,WHERE=WHERE,MF=(E,APILIST) 00012600
LTR R15,R15 00012700
BZ LOOPNEXT 00012800
B RETURN 00012900
* 00013000
* PERFORM QUERYNXT - GET THE NEXT RECORD 00013100
* THE RELEVANT PARAMETERS FOR THE QUERYNXT ARE AS THE FOLLOWING: 00013200
* 1) FUNCTION QUERYNXT 00013300
* 2) REPLY = REPLY BUFFER ADDRESS FORMATTED AS CTTOAPI 00013400
* 3) RC 00013500
* 4) REASON 00013600
* 5) URC 00013700
* 00013800
LOOPNEXT EQU * 00013900
L R8,BUFREP GET BUFFER ADDRESS 00014000
USING CTTO,R8 00014100
MVC PRINTREC(L'CTTVOLSR),CTTVOLSR 00014200
MVC PRINTREC+8(L'CTTDDSN),CTTDDSN 00014300
MYPUT RPTOUT,PRINTREC 00014400
* 00014500
CTTAPI QUERYNXT,REPLY=BUFREP,RC=RC,REASON=REASON,URC=URC, *00014600
MF=(E,APILIST) 00014700
LTR R15,R15 00014800
BZ LOOPNEXT 00014900
C R15,=F'4' DID WE FINISH QUERY? 00015000
BE GOEND 00015100
B RETURN 00015200
* 00015300
* PERFORM END - DELETE THE API ENVIRONMENT. 00015400
* THE RELEVANT PARAMETERS FOR THE END ARE AS THE FOLLOWING: 00015500
* 1) FUNCTION END 00015600
* 2) RC 00015700
* 3) REASON 00015800
* 4) URC - UTILITY RC 00015900
* 00016000
GOEND EQU * 00016100
CTTAPI END,REASON=REASON,MF=(E,APILIST) 00016200
CLOSE (RPTOUT) 00016300
B RETURN 00017000
OUTERROR WTO 'UNABLE TO OPEN OUTPUT FILE' 00018000
LA R15,8 00018100
RETURN EQU * 00020000
BRTRN (15) 00039200
APILIST CTTAPI MF=L 00039300
BUFREP DC A(0) 00039400
RC DS H 00039600
REASON DS H 00039800
URC DS H 00039900
TRCLVL DC X'10' 00040000
RPLBUF DS (CTTOLEN)X 00040100
PATH DC CL8'VOL/ADS' 00040200
WHERE DC H'1' 00040300
DC CL80'INCLUDE VOLSTAT=ACTIVE' 00040400
HEADER1 DC CL80'VOLUME DATASET' 00040500
HEADER2 DC CL80'-------------------------------------------------' 00040600
PRINTREC DC CL80' ' 00040700
*** 00040800
* DATA Control BLOCKS 00040900
*** 00041000
RPTOUT DCB DDNAME=DARPTOUT,MACRF=PM,LRECL=80,RECFM=FB, *00041100
DSORG=PS 00042000
END 00110000
Parent Topic |