MainframeSupports
tip uge 43/2004:

Den letteste måde at få skrevet noget ud på i COBOL er uden tvivl med DISPLAY statement'et. Ingen erklæringer af filer eller andet fnidder, bare en simpel DISPLAY 'Hello world' og straks har man skrevet noget ud på DD-navnet SYSOUT. DISPLAY formatterer også numeriske felter af alle slags til noget læsbart, men ikke altid kønt. Skidt med det, bare det kommer ud.

Hvis man kommer til at lave en DISPLAY i sit CICS program, så virker det sandelig også. Spørgsmålet er bare, hvor det bliver skrevet ud henne, for CICS har normalt ikke SYSOUT tilknyttet. DISPLAY i COBOL under CICS bliver i hvert fald under Language Environment oversat til en WRITEQ TD på en foruddefineret destination, mest sandsynligt CESE. Med CICS transaktionen CEMT I TD DEST(CESE) kan du se hvilket DD-navn, der er tilknyttet denne destination. Det er sandsynligvis CEEMSG. Nu er det så bare at finde CICS'en i SDSF eller SYSVIEW og så finde DD-navnet CEEMSG eller hvad det nu lige hedder på din installation og så lede efter outputtet fra din DISPLAY her.

Nu kan det jo nogen gange være rart at kunne lave DISPLAY til andre DD-navne/destinationer end SYSOUT/CEEMSG. Under CICS er der vist ikke rigtig nogen andre muligheder end selv at lave WRITEQ TD til en anden destination. Så skal man selv til at formatere og det er altså ikke altid lige sjovt. I batch (som også virker under TSO) er der heldigvis visse muligheder. Du kan nemlig skrive DISPLAY 'Hello world' UPON SYSPUNCH og så kommer dit output ud på DD-navnet SYSPUNCH. En lidt kedelig bivirkning er, at kolonne 73-80 udfyldes med program-navnet fra PROGRAM-ID. Men hvis man kan leve med det, så er UPON SYSPUNCH et fint alternativ.

Man kan faktisk også skrive UPON SYSLIST og UPON SYSLST, men desværre så bliver outputtet bare skrevet ud på SYSOUT. UPON SYSPCH er også lovligt, men ender på SYSPUNCH med samme bivirkning som for SYSPUNCH. Til sidst er der selvfølgelig også muligheden for at skrive ud på systemloggen som DISPLAY i PL/1 gør. I COBOL hedder det DISPLAY 'Hello world' UPON CONSOLE. Det virker med stor sandsynlighed ikke under CICS, men jeg ved det ikke med sikkerhed.

Forrige danske tip        Last tip in english        Tip oversigten