Skip to main content

I vaguely remember that we can direct display statements to sysout. We need to compile the program little differently and use environment variable to direct the location where display statement will be written.

Please help me on how to do it exactly.

This is how my directive file looks:

CICSECM()
CICSECM(FUN=N)
CICSECM(OPT=N)
DATA-CONTEXT

CONFIRM
DIALECT(ENTCOBOL)
PANVALET
NOAMODE
CHARSET(ASCII)
CHANGEMESSAGE(10 W 1082 W)
NOREENTRANT
LIST()
DATAMAP
NOMAPNAME
NOFLAG
FLAGAS(E)
WARNING(1)
DATA-CONTEXT
FDCLEAR(2)
SSRANGE(1)
COPYEXT(cpy,cbl,pco,cob)
NOFOLDCOPYNAME
NOFOLDCALLNAME
ANIM


#EnterpriseServer

I vaguely remember that we can direct display statements to sysout. We need to compile the program little differently and use environment variable to direct the location where display statement will be written.

Please help me on how to do it exactly.

This is how my directive file looks:

CICSECM()
CICSECM(FUN=N)
CICSECM(OPT=N)
DATA-CONTEXT

CONFIRM
DIALECT(ENTCOBOL)
PANVALET
NOAMODE
CHARSET(ASCII)
CHANGEMESSAGE(10 W 1082 W)
NOREENTRANT
LIST()
DATAMAP
NOMAPNAME
NOFLAG
FLAGAS(E)
WARNING(1)
DATA-CONTEXT
FDCLEAR(2)
SSRANGE(1)
COPYEXT(cpy,cbl,pco,cob)
NOFOLDCOPYNAME
NOFOLDCALLNAME
ANIM


#EnterpriseServer

what are you trying to accomplish with a display?? are you creating a log file or something?


I vaguely remember that we can direct display statements to sysout. We need to compile the program little differently and use environment variable to direct the location where display statement will be written.

Please help me on how to do it exactly.

This is how my directive file looks:

CICSECM()
CICSECM(FUN=N)
CICSECM(OPT=N)
DATA-CONTEXT

CONFIRM
DIALECT(ENTCOBOL)
PANVALET
NOAMODE
CHARSET(ASCII)
CHANGEMESSAGE(10 W 1082 W)
NOREENTRANT
LIST()
DATAMAP
NOMAPNAME
NOFLAG
FLAGAS(E)
WARNING(1)
DATA-CONTEXT
FDCLEAR(2)
SSRANGE(1)
COPYEXT(cpy,cbl,pco,cob)
NOFOLDCOPYNAME
NOFOLDCALLNAME
ANIM


#EnterpriseServer

what are you trying to accomplish with a display?? are you creating a log file or something?


I vaguely remember that we can direct display statements to sysout. We need to compile the program little differently and use environment variable to direct the location where display statement will be written.

Please help me on how to do it exactly.

This is how my directive file looks:

CICSECM()
CICSECM(FUN=N)
CICSECM(OPT=N)
DATA-CONTEXT

CONFIRM
DIALECT(ENTCOBOL)
PANVALET
NOAMODE
CHARSET(ASCII)
CHANGEMESSAGE(10 W 1082 W)
NOREENTRANT
LIST()
DATAMAP
NOMAPNAME
NOFLAG
FLAGAS(E)
WARNING(1)
DATA-CONTEXT
FDCLEAR(2)
SSRANGE(1)
COPYEXT(cpy,cbl,pco,cob)
NOFOLDCOPYNAME
NOFOLDCALLNAME
ANIM


#EnterpriseServer

I am trying to debug my program. For some reason Microfocus debugging is not working in our environment so I am trying to put some display statement to see the point of failure. I am suspecting some sql statement is failing but do not know which one.


I vaguely remember that we can direct display statements to sysout. We need to compile the program little differently and use environment variable to direct the location where display statement will be written.

Please help me on how to do it exactly.

This is how my directive file looks:

CICSECM()
CICSECM(FUN=N)
CICSECM(OPT=N)
DATA-CONTEXT

CONFIRM
DIALECT(ENTCOBOL)
PANVALET
NOAMODE
CHARSET(ASCII)
CHANGEMESSAGE(10 W 1082 W)
NOREENTRANT
LIST()
DATAMAP
NOMAPNAME
NOFLAG
FLAGAS(E)
WARNING(1)
DATA-CONTEXT
FDCLEAR(2)
SSRANGE(1)
COPYEXT(cpy,cbl,pco,cob)
NOFOLDCOPYNAME
NOFOLDCALLNAME
ANIM


#EnterpriseServer

I am trying to debug my program. For some reason Microfocus debugging is not working in our environment so I am trying to put some display statement to see the point of failure. I am suspecting some sql statement is failing but do not know which one.


I vaguely remember that we can direct display statements to sysout. We need to compile the program little differently and use environment variable to direct the location where display statement will be written.

Please help me on how to do it exactly.

This is how my directive file looks:

CICSECM()
CICSECM(FUN=N)
CICSECM(OPT=N)
DATA-CONTEXT

CONFIRM
DIALECT(ENTCOBOL)
PANVALET
NOAMODE
CHARSET(ASCII)
CHANGEMESSAGE(10 W 1082 W)
NOREENTRANT
LIST()
DATAMAP
NOMAPNAME
NOFLAG
FLAGAS(E)
WARNING(1)
DATA-CONTEXT
FDCLEAR(2)
SSRANGE(1)
COPYEXT(cpy,cbl,pco,cob)
NOFOLDCOPYNAME
NOFOLDCALLNAME
ANIM


#EnterpriseServer

I read somewhere to compile my online program with directive CICSECM OSVS OUTDD(SYSOUT 121 R) SHARE-OUTDD and declare the env variable DD_SYSOUT. But my program is failing in compilation with this new directive.

Compilation is failing at all places where it sees ' : ' e.g. following If statement has (15:5).

IF  WW-000-WORK-KEY (15:5) > SPACES        

    MOVE SPACES TO WW-000-WORK-KEY (15:5)  

END-IF.                                    

Compile error says:

COBCH0014S Invalid operand  : C:\\PRJ\\SOURCE\\CBL\\PDNMEXEI.CBL(271,35)

COBCH0564S A scope-delimiter did not have a matching verb and was discarded.  : C:\\PRJ\\SOURCE\\CBL\\PDNMEXEI.CBL(273,17)

Rebuild complete with errors


I vaguely remember that we can direct display statements to sysout. We need to compile the program little differently and use environment variable to direct the location where display statement will be written.

Please help me on how to do it exactly.

This is how my directive file looks:

CICSECM()
CICSECM(FUN=N)
CICSECM(OPT=N)
DATA-CONTEXT

CONFIRM
DIALECT(ENTCOBOL)
PANVALET
NOAMODE
CHARSET(ASCII)
CHANGEMESSAGE(10 W 1082 W)
NOREENTRANT
LIST()
DATAMAP
NOMAPNAME
NOFLAG
FLAGAS(E)
WARNING(1)
DATA-CONTEXT
FDCLEAR(2)
SSRANGE(1)
COPYEXT(cpy,cbl,pco,cob)
NOFOLDCOPYNAME
NOFOLDCALLNAME
ANIM


#EnterpriseServer

Hi Ashish,

few observations

1) not sure how  are you compiling the program ??

2) i did some tests using one sample code(including your code snippets in that sample)  and your directive file with  additional

OUTDD(SYSOUT 121 R)

SHARE-OUTDD

3) i have set the environment variable DD_SYSOUT in Enterprise server

[ES-Environment]

DD_SYSOUT=/home/example/CICSOUT

4) compiled the program using cbllink(dll) and cobol(gnt) both appears to works fine.

5) another way of doing this is for a particular program

in the program use inline directive in addition to your dir file

$set outdd"/home/example/ashish_display.log",share-outdd    

note point 5 is meant for getting display in particular program and not the generic way like above 2,3 point

let me know if this helps you.


I vaguely remember that we can direct display statements to sysout. We need to compile the program little differently and use environment variable to direct the location where display statement will be written.

Please help me on how to do it exactly.

This is how my directive file looks:

CICSECM()
CICSECM(FUN=N)
CICSECM(OPT=N)
DATA-CONTEXT

CONFIRM
DIALECT(ENTCOBOL)
PANVALET
NOAMODE
CHARSET(ASCII)
CHANGEMESSAGE(10 W 1082 W)
NOREENTRANT
LIST()
DATAMAP
NOMAPNAME
NOFLAG
FLAGAS(E)
WARNING(1)
DATA-CONTEXT
FDCLEAR(2)
SSRANGE(1)
COPYEXT(cpy,cbl,pco,cob)
NOFOLDCOPYNAME
NOFOLDCALLNAME
ANIM


#EnterpriseServer

Hi Ashish,

few observations

1) not sure how  are you compiling the program ??

2) i did some tests using one sample code(including your code snippets in that sample)  and your directive file with  additional

OUTDD(SYSOUT 121 R)

SHARE-OUTDD

3) i have set the environment variable DD_SYSOUT in Enterprise server

[ES-Environment]

DD_SYSOUT=/home/example/CICSOUT

4) compiled the program using cbllink(dll) and cobol(gnt) both appears to works fine.

5) another way of doing this is for a particular program

in the program use inline directive in addition to your dir file

$set outdd"/home/example/ashish_display.log",share-outdd    

note point 5 is meant for getting display in particular program and not the generic way like above 2,3 point

let me know if this helps you.


I vaguely remember that we can direct display statements to sysout. We need to compile the program little differently and use environment variable to direct the location where display statement will be written.

Please help me on how to do it exactly.

This is how my directive file looks:

CICSECM()
CICSECM(FUN=N)
CICSECM(OPT=N)
DATA-CONTEXT

CONFIRM
DIALECT(ENTCOBOL)
PANVALET
NOAMODE
CHARSET(ASCII)
CHANGEMESSAGE(10 W 1082 W)
NOREENTRANT
LIST()
DATAMAP
NOMAPNAME
NOFLAG
FLAGAS(E)
WARNING(1)
DATA-CONTEXT
FDCLEAR(2)
SSRANGE(1)
COPYEXT(cpy,cbl,pco,cob)
NOFOLDCOPYNAME
NOFOLDCALLNAME
ANIM


#EnterpriseServer

Thanks for your reply

My program compiled and applied inline directive in cobol, restarted the region but no log file created at the location mentioned in my cobol program.

One thing that I did not mention earlier - we dont have typical TN3270 CICS screens but we have Java screens which call webservice which calls CICS programs on microfocus. Is that a problem?

Our GUI team has confirmed that its failing when it hits one of the cobol program and I put inline directive in that program but that did not help.

Any thoughts??


I vaguely remember that we can direct display statements to sysout. We need to compile the program little differently and use environment variable to direct the location where display statement will be written.

Please help me on how to do it exactly.

This is how my directive file looks:

CICSECM()
CICSECM(FUN=N)
CICSECM(OPT=N)
DATA-CONTEXT

CONFIRM
DIALECT(ENTCOBOL)
PANVALET
NOAMODE
CHARSET(ASCII)
CHANGEMESSAGE(10 W 1082 W)
NOREENTRANT
LIST()
DATAMAP
NOMAPNAME
NOFLAG
FLAGAS(E)
WARNING(1)
DATA-CONTEXT
FDCLEAR(2)
SSRANGE(1)
COPYEXT(cpy,cbl,pco,cob)
NOFOLDCOPYNAME
NOFOLDCALLNAME
ANIM


#EnterpriseServer

Thanks for your reply

My program compiled and applied inline directive in cobol, restarted the region but no log file created at the location mentioned in my cobol program.

One thing that I did not mention earlier - we dont have typical TN3270 CICS screens but we have Java screens which call webservice which calls CICS programs on microfocus. Is that a problem?

Our GUI team has confirmed that its failing when it hits one of the cobol program and I put inline directive in that program but that did not help.

Any thoughts??


I vaguely remember that we can direct display statements to sysout. We need to compile the program little differently and use environment variable to direct the location where display statement will be written.

Please help me on how to do it exactly.

This is how my directive file looks:

CICSECM()
CICSECM(FUN=N)
CICSECM(OPT=N)
DATA-CONTEXT

CONFIRM
DIALECT(ENTCOBOL)
PANVALET
NOAMODE
CHARSET(ASCII)
CHANGEMESSAGE(10 W 1082 W)
NOREENTRANT
LIST()
DATAMAP
NOMAPNAME
NOFLAG
FLAGAS(E)
WARNING(1)
DATA-CONTEXT
FDCLEAR(2)
SSRANGE(1)
COPYEXT(cpy,cbl,pco,cob)
NOFOLDCOPYNAME
NOFOLDCALLNAME
ANIM


#EnterpriseServer

Hi Ashish,

I don't think it should matter when you say "we have Java screen calling web services" because they inturn they are calling the cobol programs using values passed via linkage.  ?

What i will suggest to make a sample program having some displays in it. Tie this program with one cics transaction. Compile with same directives. Fire the transaction to see the log. This test should tell whether display thing is working or not.

If yes then apply on  you application programs

Also ,

as you are saying some SQL is failing then it should (any sql code other than zero) should appear in trace log/ SEP which are accessible via enterprise administration page. Give a try

let me know if this helps you !!