CVDA examples
Here are examples in all the CICS-supported languages that show the use of CVDAs and the DFHVALUE function.
In each case, the code does the following:
- Tests whether the file named PAYROLL is closed.
- If so, changes the UPDATE and DELETE option values for the file to UPDATABLE
and NOTDELETABLE respectively (so that records can be updated and read, but
not deleted). Note that the UPDATE option is set by using the DFHVALUE function,
and that the DELETE option is set by specifying the value name. These methods
are equivalent; either could have been done either way.
The absence of other options indicates that those values are to remain unchanged. This information could also have been expressed by specifying the options with null values, as explained in SET commands.
- Returns to CICS.
Only the code and definitions related to this part of each program are shown.
COBOL version
WORKING-STORAGE SECTION.
01 FILE-STATUS-INFO.
02 UOPST PIC S9(8) COMP.
02 UUPD PIC S9(8) COMP.
02 INFILE PIC X(8).
. . .
CICS-REQUESTS.
MOVE 'PAYROLL ' TO INFILE.
EXEC CICS INQUIRE FILE(INFILE)
OPENSTATUS(UOPST) END-EXEC.
IF UOPST = DFHVALUE(CLOSED)
MOVE DFHVALUE(UPDATABLE) TO UUPD
EXEC CICS SET FILE(INFILE)
UPDATE(UUPD)
NOTDELETABLE END-EXEC.
EXEC CICS RETURN.
C version
#define INFILE "PAYROLL "
main()
{
long int uopst, /* OPENSTATUS value */
long int uupd; /* UPDATE value */
. . .
EXEC CICS ADDRESS EIB(dfheiptr);
EXEC CICS INQUIRE FILE(INFILE)
OPENSTATUS(uopst);
if( uopst == DFHVALUE(CLOSED) )
{ uupd = DFHVALUE(UPDATABLE);
EXEC CICS SET FILE(INFILE)
UPDATE(uupd)
NOTDELETABLE; }
EXEC CICS RETURN;
}
PL/I version
DCL (UOPST,UUPD) FIXED BIN(31), /*OPEN,UPD STATUS*/
INFILE CHAR(8); /*FILE NAME */
. . .
INFILE='PAYROLL ';
EXEC CICS INQUIRE FILE(INFILE)
OPENSTATUS(UOPST):
IF UOPST = DFHVALUE(CLOSED) THEN DO;
UUPD = DFHVALUE(UPDATABLE);
EXEC CICS SET FILE(INFILE)
UPDATE(UUPD)
NOTDELETABLE; END;
EXEC CICS RETURN;
Assembler-language version
DFHEISTG
UOPST DS F *OPEN STATUS
UUPD DS F *UPDATE STATUS
INFILE DS CL8 *FILE NAME
. . .
MVC INFILE,=CL8'PAYROLL '
EXEC CICS INQUIRE FILE(INFILE) X
OPENSTATUS(UOPST)
CLC UOPST,DFHVALUE(CLOSED)
BNE OPENLAB
MVC UUPD,DFHVALUE(UPDATABLE)
EXEC CICS SET FILE(INFILE) X
UPDATE(UUPD) X
NOTDELETABLE
OPENLAB EXEC CICS RETURN