Is it possible to call a CICS program from JCL batch?
If yes how? If no why not?
Yes. Technically, a COBOL batch program is communicating with CICS, and you execute the COBOL batch program from JCL. You can read more in the CICS Transaction Server manual.
The external CICS® interface is an application programming interface that enables a non-CICS program (a client program) running in MVS™ to call a program (a server program) running in a CICS region and to pass and receive data by means of a communications area. The CICS application program is invoked as if linked-to by another CICS application program.
Introduction to the external CICS interface
I believe that your CICS program cannot use maps (must be conversational), but it's been a while since I've worked with CICS, so I might be mistaken.