Gen EDGE

  • 1.  Is there a way of using the CICS communication area of CA GEN 8.5

    Posted May 13, 2015 04:38 AM

    Is there a way to call a CA Gen program using the CICS communication area, we have got CA GEN 8.5.



  • 2.  Re: Is there a way of using the CICS communication area of CA GEN 8.5

    Posted May 18, 2015 03:34 PM

    Is anyone able to help with the above question?

     

    Thank you



  • 3.  Re: Is there a way of using the CICS communication area of CA GEN 8.5

    Posted May 20, 2015 08:38 PM

    Through a COMMAREA, not really.  Gen 8.5 changed this somewhat due to the lifting of the restriction of the CFB size, which probably means they went to a container/channel implementation rather than a COMMAREA.

     

    Even if you could use a COMMAREA, though, the COMMAREA you pass would have to be compressed and encrypted in the same way that the CA Gen runtimes do it, which is not a publicly published algorithm.  That's presuming you wish to use the Dialog/Server Manager as your point of entry.

     

    If you ignore the Dialog/Server Manager, you can directly invoke the PStep or Action Block of interest through a standard COBOL CALL command, provided you have initialised a GLOBDATA entry - it is just a COBOL program after all.  Note, this won't be supported by CA, and you lose many of the things a Dialog/Server Manager will give you (flows, retries, rollbacks, etc.), so you become quite limited in what you can achieve.  This wouldn't require a COMMAREA, obviously.

     

    But it also depends on what you're trying to achieve - if you can describe the reasons why you wish to, people may be able to offer suggestions or alternatives to achieve the outcome you wish.



  • 4.  Re: Is there a way of using the CICS communication area of CA GEN 8.5

    Posted May 21, 2015 06:34 AM

    Thanks Daniel,

     

    It seems that what I want to do cannot be achieved, but I'll tell what I have in my mind:

     

    I'm trying to integrate with Gen programs from the IBM message Broker, which has the facility to call and execute any CICS Program/Transaction  and gets the results back using the the CICS communication area.

     

    For example in CICS scenario, program A is a screen based inquiry, sends the inquiry parameters to program B in the communication area to fetch the information from the database and passes the results back to program A in the communication area to present it on the user screen.

     

    Using the Broker scenario, a client request will be coming to the broker, broker construct the communication area and calls program B in the example above to fetch the information from the database and passes the results back to the broker in the communication area to send it back to the client.

     

    If we take the same mini application in GEN it would be similar to the CICS example, but instead using the communication area, it would be passing the information in an export and import areas.

     

    Somehow GEN is hiding the communication area process between Program A and B (using that GEN's algorithm that you mentioned).

     

    Is there anyway that I can access this hidden communication area of GEN or even decipher the areas that are being exchanged in GEN to construct the the communication area?

     

    Or may be some option(s) while generation the gen code to COBOL? 



  • 5.  Re: Is there a way of using the CICS communication area of CA GEN 8.5

    Broadcom Employee
    Posted May 24, 2015 08:40 PM

    Is the Gen program you are accessing a (Distributed Process) Server Manager load module or Block-Mode Dialog Manager load module?

     

    If Server then that could be why you are having problems because that is only possible via the Gen ODC Message Object (MsgObj) or Gen Proxy

    Terminology Unique to CA Gen Distributed Processing

     

    If Block Mode from what I understand from non-Gen <-> Gen flows, the COMMAREA should be visible if EXEC CICS LINK/XCTL is used.

    How is the IBM MB calling the module?



  • 6.  Re: Is there a way of using the CICS communication area of CA GEN 8.5

    Posted Dec 10, 2015 03:07 AM

    This sounds very much like a normal Cobol Program doing a CALL or EXEC CICS START TRAN to a CA:Gen generated Cobol module.

     

    We normally build a Cobol module known as an EEB (External Entry Block). You can follow the following steps to build the module.

     

    1. Generate the Cobol from the AB (Action Block) or ProcStep (Procedure Step) using the CA:Gen Toolset. (In the toolset, go to Generation - Set the generation defaults to Cobol - open the AB/ProcStep - Generate Code - the cobol code should end up in your Cobol subdirectory).

    What you need from this cobol is the Linkage Area.

    2. Write a cobol module and copy/paste the Linkage Area from the generated cobol module to the Working Storage of the new Cobol module.

    Structure the Cobol module to perform the following sections.

    a. Move fields from the Linkage Area (the area that is now the communication area from your Cobol module) to the fields in the Import area of the WorkingStorage.

       - (Remember that you need to set certain CA:Gen variables such as the number of filled occurences of repeated fields and lengths of data)

    b. CALL the CA:Gen module.   (CALL pgm-x USING IEF-RUNTIME-PARM1 IEF-RUNTIME-PARM2 GLOBDATA IN-XXXX OUT-XXXX (all 01 levels of the copied into the WS)

    c. Move data from the EXPORT areas in the Working Storage to the LINKAGE area to pass back to your cobol module.

     

    I hope this info helps.

    Werner Spreeuwenberg