MainframeSupports
tip uge 12/2002:

Det har i en lang årrække været muligt at kalde CICS-programmer fra batch-programmer eller fra TSO, men det anvendes mildt sagt ikke ret meget. Interfacet er typisk kun kendt af system-programmørerne, der anvender det til install af CICS-definitioner og newcopy af programmer. Men eftersom man med EXCI kan kalde et hvilket som helst program i en CICS, så er det synd, at EXCI ikke har en større udbredelse. Det håber jeg, at ugens tip kan råde bod på.

For det første skal du undersøge om der er åbnet op for EXCI på din CICS. Det gør du med CEMT I CONN. Der skal være en af de listede Con(), som ikke har nogen Net() parameter, og hvor parametrene Ins Irc Exci er på. Det kan godt være, at der nogen Con(),hvor Exci er på og der er en Net() parameter, men de er ikke anvendelige i denne forbindelse. Hvis der ikke er en sådan Con(), så skal du bede CICS-systemprogrammøren om at lave CEDA install af sample CICS gruppen DFHEXCI. Faktisk er det kun nødvendigt med definitionerne EXCG CONNECTION og EXCG SESSIONS. De kan kopieres til samme nye CICS-gruppe, og der skal laves en CEDA install af denne nye gruppe.

For det andet skal du lave et batch-program, der udsteder en EXEC CICS LINK til det ønskede program. Denne EXEC CICS LINK skal se således ud:

EXEC CICS
  LINK PROGRAM('CICSPGM')
  COMMAREA(MYCOMMAREA)
  APPLID(CICSNAME)
  SYSCONRETURN
  RETCODE(RC-AREA)
END-EXEC

Parametrene PROGRAM og COMMAREA benyttes på sædvanlig måde. Nyt er parameteren APPLID, der angiver VTAM-navnet på den CICS, hvor det kaldte CICS-program skal eksekveres. SYSCONRETURN og RETCODE er også nyt. RETCODE angiver et areal i dit program, der skal have følgende udseende:

01 RC-AREA.
  02 RESP PIC S9(9) COMP.
  02 RESP2 PIC S9(9) COMP.
  02 ABENDCODE PIC X(4).
  02 MSGLEN PIC S9(9) COMP.
  02 MSGADDR POINTER.

Og i LINKAGE SECTION (i PL/1 en based variabel på MSGADDR) skal du erklære 01 MSGAREA PIC X(250). Du kan eventuelt lave en DEPENDING ON MSGLEN. Felterne RESP, RESP2 og ABENDCODE behøver vist ingen forklaring. I feltet MSGLEN er det antal bytes, som CICS har returneret i message-teksten på adressen MSGADDR. For at få fat i teksten i COBOL skal du lave en SET ADDRESS OF MSGAREA TO MSGADDR.

Når du kompilerer programmet, så skal du sende det gennem CICS precompileren med option EXCI på. I linkage editoren (binderen) skal du linke programmet med modulet DFHXCSTB, som findes i datasettet CICSTS13.CICS.SDFHEXCI eller hvad det nu er omdøbt til på din installation. Det må du spørge en systemprogrammør om.

Nu er du klar til at køre programmet første gang. I dit batchjob skal du have SDFHEXCI datasettet med i STEPLIB concateneringen for at det overhovedet kan køre. Skriv hele RC-AREA ud og gennemgå værdierne af felterne for at finde ud af, hvad der gik galt. Til det brug er CICS External Interfaces Guide uundværlig. Hvis det kører første gang, har du været udsat for et mirakel. Det skyldes, at brugen af EXCI er beskyttet af RACF. Kig derfor i dit job-output efter en RACF-message, hvis det gik galt første gang. Få derefter din RACF-administrator til at give dig den nødvendige adgang ved at vise vedkommende den pågældende RACF-message. Når først RACF problemet er ryddet af vejen, så virker det som regel. Rigtig god fornøjelse.

Forrige danske tip        Last tip in english        Tip oversigten