Previous Topic: Other Checks for the ACIDNext Topic: Generate a Random Password


Programming Examples

Your application program can be written in Assembler, PL/1, or COBOL.

Examples for the CICS and IMS facilities are the AAKOSRC0 installation file.

Assembler

In Assembler, use the LOAD MACRO to load TSSAI. Then, BRANCH and LINK to the routine. At the close of processing, issue the DELETE MACRO to delete the module.

An alternate approach is to use the LINK MACRO.

The AAKOSRC0 file contains examples of assembler code that illustrate both techniques for BATCH, STC, and TSO facilities. Member EXAIBA1 shows the use of LOAD. Member EXAIBA2 shows the use of LINK.

           USING TSSCPL,R2
           LA    R2,TSSCPL
           MVI   TSSLOG, 'Y'  	    VIOLATION LOGGING REQUESTED
           MVC   TSSHEAD,=CL8'TCPLV5L1'
           MVC   TSSCLASS,=CL8'RESLIST' REQUEST INSTALLATION DATA
           MVC   TSSRNAME,=CL8'DSNAME'
           MVC   TSSLRTN,=F'2048'
           LA    R1,TSSCPL              R1 —> PARAMETER LIST
           ST    R1,ATSSCPL
           LA    R1,ATSSCPL
           LINK  EP=TSSAI               LINK TO APPLICATION INTERFACE
           LTR   R15,R15                Q RETURN CODE OK
           BNZ   NOTOK                  A NOT OK GO DO YOUR ERROR
OK         DS    OH                     DO WHAT YOU LIKE
           .
           .
           .
ATSSCPL    DS    A                      ADDRESS OF PARAMETER LIST
           COPY  TSSCPLA
           #TSSCPL RTLN=2048           
           .                            INTERFACE PARM LIST
           .

PL/I

PL/I programs should use a dynamic CALL function to invoke the Application Interface. File AAKOSRC0 on the distribution tape contains sample code for PL/I in the member named EXAICP1.

PLIEX1: PROC OPTIONS (MAIN);
        DCL TSSAI EXTERNAL ENTRY OPTIONS (ASM INTER);
        %INCLUDE (TSSCPLP);       /* INCLUDE DEFINITIONS OF PLIST */
        TSSRTN_CTL=2048;
        ALLOCATE TSSCPL;
        .
        .
        TSSHEAD='TCPLV5L1';
        TSSLOG='N';               /* DO NOT LOG VIOLATIONS         */
        TSSCLASS='FLDXTR';        /* REQUEST INFORMATION DATA     */
        TSSRNAME='IMSMSC';
        TSSLRTN=2048;
       CALL TSSAI (TSSCPL);
        .
        .
        .
        FREE TSSCPL;

COBOL

COBOL programs should use a dynamic CALL function to invoke the Application Interface and a CANCEL function to delete the requested module. File AAKOSRC0 on the distribution tape contains COBOL coding examples that use a dynamic call to invoke the Application Interface in the EXAICC1 member.

000010 IDENTIFICATION DIVISION.
       .
001000 DATA DIVISION.
       .
001010******************************************************************
001020*                                                                *
001030* ENSURE TSSCPL IS IN THE COBOL COPY LIBRARY OR COPY YOUR OWN    *
001040* VERSION INLINE INTO PROGRAM, USE OF COPY LIBRARY IS            *
001050* RECOMMENDED SO THAT CHANGES WILL ONLY REQUIRE RECOMPILE
001060* AND NOT RECODING OF SOURCE                                     *
001070******************************************************************
001080 01    TSSCPL COPY TSSCPLC REPLACING ==:RTLN:==BY==256==.
001090 77    TSSAI             PICTURE X(8).
       .
002000 PROCEDURE DIVISION.
       .
010010******************************************************************
010020*                                                                *
010030* CALL CA Top Secret APPLICATION INTERFACE TO EXTRACT            *
010040* INSTALLATION DATA FROM USER'S SECURITY RECORD                  *
010050* VIOLATION LOGGING IS REQUESTED                                 *
010060******************************************************************
010070  MOVE 'TCPLV5L1' to TSSHEAD
010080  MOVE 'Y' to TSSLOG
010090  MOVE 'DUFXTR' to TSSCLASS.
010100  MOVE 'TSSAI' to TSSAI.
010110  CALL TSSAI USING TSSCPL.
010120  IF NOT TSSROK GO TO 100‑CHECK‑TOP‑RETURN
010130  MOVE TSSRTN TO USER‑AREA‑FOR‑INST‑DATA.
        .
020010******************************************************************
020020*                                                                *
020030*  CANCEL CA Top Secret APPLICATION INTERFACE DO THIS WHEN THE   *
020040*  CA Top Secret INTERFACE IS NO LONGER REQURIED BY PROGRAM AND  *
020050*  THUS FREE UP THE STORAGE IT OCCUPIES IF NOT IN COMMON STORE   *
020060*                                                                *
020070******************************************************************
020090  MOVE 'TSSAI' to TSSAI.
020100  CANCEL TSSAI.