How a CICS system is called from a 3270 terminal or emulator ?

Posted on 2011-02-20
Last Modified: 2012-05-11
Hi Experts

Since our last interaction I've got access to a CICS printed material - describing the mainly commands and maps concepts, now it's much more clear the overall understanding.

But something remains obscure for me is: How a 3270 terminal calls the Cobol application (that has the menu - a CICS map) to start the process ?

Is it like a DOS program ?  the user types de name of the system ?  (eg. ACCOUNTS.EXE - sorry if it's a very dummy question...)

Every terminal in fact only receive via SNA what is hapenning at mainframe and interact by filling a map, ok ?

Every terminal must have TSO as IBM interface or only the developers ?  if not the common users access is by what device ?

Is it possible to use more than one "system" concurrently at the same 3270 terminal or emulator ?

Thanks in advance
Question by:Eduardo Fuerte
  • 8
  • 6
  • 2
LVL 57

Expert Comment

ID: 34939311
It depends how the system programmers (the people that actually install and customize CICS) have been told to set it up.

In our system when a user logs on to CICS they are presented with a menu and they can enter the number of an application/system they want to get into or in some cased specific characters.

In some system you are in "native" CICS from which you can enter the 4 character transaction name that has been assigned to a program.

TSO is not required for any user.  TSO is just one of many online systems you can access.  There are other applications (ROSCOE and SuperWylbur) that can be used instead of TSO to do application development also.

You can only run one interactive application in a 3270 emulator at a time.  However there are some programs (TPX, CL/Supersession, Tubes, and NetView Access Services to name some that I am aware of) that allow you to make it look like you have more than one 3270 terminal.  These are called multi-session managers.

You logon to the multi-session manager and then it logs onto the actual application.  It acts as if it is a real 3270 terminal.  From there you can hit a "escape" key that takes you back to the menu screen and you can select another application to logon to.

You could also run more than one instace of the emulator on your computer.

Author Comment

by:Eduardo Fuerte
ID: 34951021

If I well understood:

The 3270 terminal or emulator at beggining presents only a prompt  and just only a prompt
If you are a programmer you type for example TSO and this application arise for you to be used

If you are a user  just type, according to a customization you've pointed 04 letters, e.g.  PAYR and the Payroll system initial map arises, that's right ?

How the mainly  program that holds the menu map is first started ?
(things like CALL PRG_MENU ...) etc

In other words how to concatenate the programs to make the hierarchy ?
(be aware I'm obtaining more printed material to avoid do so dummy questions....)

Thanks in advance.
LVL 57

Expert Comment

ID: 34951125
You can initate a "main menu" program a couple ways.  One way is to have the user enter the in 4 character transaction name, e.g. main or menu.

You can also have CICS execute a default transaction when a user logs on, which is what I would suspect most places do.

Now we also have our system setup so that you can pass CICS data via VTAM when logging on.  This data is a transaction id.

So from VTAM, or another program that can pass you through VTAM to CICS (such as a multi-session manager like NetView Access or TPX),  you can have options that get you directly into a specific transaction.

In our system we can idenitify what type of user you are from your userid (an company employee or a customer) and our CICS menu is dynamically built based on that.  Our customers are presented with fewer options that our employees.
Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.


Author Comment

by:Eduardo Fuerte
ID: 34953561

Just to clarify a little bit:
When you type e.g. MAIN you actually starts theprogram:  MAIN.COB (probably resident at FCT - File control table or something like that) ?
Thank you for your patience


Author Comment

by:Eduardo Fuerte
ID: 34953622
Ops... I mean; PCT - Program Control Table
LVL 57

Expert Comment

ID: 34953942
It depends on how you define your programs and transactions.

You would define a program and then you would define the transaction.

You could define a transaction name of MAIN that starts the pgm name MENU01.

Within the program name you do not need to use something like ".COB" to identify that it is cobol.  The system does use the name to identify what language the source was in.

Author Comment

by:Eduardo Fuerte
ID: 34954300
Oh, good
I Think the things makes more sense for me now.

In CICS we define transactions and associate each transaction with a program or the first program that fires a set of programs that performs the transaction, ok ?

All the transactions and start program associated with  must to be registered at  tables FCT  and  before in PPT all programs and maps must to be registered

So when I start a transaction I'm still starting the first program pointed by it.

So, the user starts 3270 terminal, type e.g. MAIN (the main transaction)  and the links starts....

All right ?
LVL 57

Expert Comment

ID: 34954439
Well there are transactions and there are "transactions."

From a CICS point of view a transactions points to a single program.  That program can the execute other programs via other CICS functions (CALL and LINK for example).

Now a CICS program can execute another transactions by doing a "execute tranid" where tranid is another transaction id.

User could enter MAIN which could execute the program MENU01.  That might be the ONLY program in that "transaction".

The menu could have 3 "applications": Payroll, accounts payable and accouts receivable.  From the menu the user could select any of these and when to do that, the program MENU01 would normally execute/tranfer control to a transaction.  So you could have:


When you execute from each of these applications they could in turn exeucte MENU so that you get back to the menu.

In our enviorment from one application (say accounts receivable) you can also go over the another application (say accounts payable).  These application save off from where you can so that they can return you back.

That way if you went from MENU to ACTP and then ACTR, once you exit from ACTR you would return to ACTP instead of MENU.

Author Comment

by:Eduardo Fuerte
ID: 34954793
Ok, it's really clearer.

Each transaction has one and only one program bound, and this program can call others... and could call another transaction that by its turn could call other program and so the things go.

The explanation about menu is perfect and really easy to catch.

Just one last thing -  when you've said:
"Within the program name you do not need to use something like ".COB" to identify that it is cobol.  The system does use the name to identify what language the source was in. "

So we need to use a name convention to put the program at PCT to configure it as Cobol program ?

LVL 57

Accepted Solution

giltjr earned 450 total points
ID: 34955167
You really don't need to use a naming convention, but it helps a LOT.

Going back to the menu and the 3 application example.  What if the payroll system had 200 programs, accounts receivable had 100 and account payable had 150.  So you would have 450 or so programs defined to CICS.

Wouldn't it be nice to know which application a program is associated with?

So all of the payroll programs might be called PAYRzzzz, and Accounts receivable would be ACTRzzzz, and accounts payable would be ACTP.  If you had programs that were common between accounts payable and receiable you could name them ACTCzzzz for accounts common.

Now, if you wanted to identify what language a program was written in, assuming you have multiple languagtes you could do that also.

If you planned to have batch programs you could do something like ACTRBzzz and ACTROzzz where B is for batch and O is for online.

The advantage of using the program name to identify which application it is associated with is that it makes setting up security easier.  Also if you ever get rid of an application, it easy to identify which program definitions you can delete.

Author Comment

by:Eduardo Fuerte
ID: 34955449

I've caught the meaning.

But one thing for me is amazing: PCT couldn't  conclude by itself  what is the language of each program, ok ? so I think it must be informed elsewhere, confirm ?

My overall comprehension of CICS really grows up after your help.
LVL 68

Expert Comment

ID: 34955629
PCT contains transactions (TTTT)
PPT contains program definitions. One of the parameters is PGMLANG (COBOL,ASSEMBLER,PL/I ...)

Please be aware that these tables are rarely used today. It's all in the RDO dataset (Transaction CEDA).

CEDA DEF PROGRAM(xxxxx) GROUP(xxxxxppt) LANGUAGE(assembler)

LVL 57

Expert Comment

ID: 34956685
woolmilkproc is correct.  

I was going to look at the doc for the Mainframe Express product, but since the originaly poster was using the old table terms I was assuming that it still uses the tables and you still have to assemble them.

I can't remember when we stopped using tables completely, maybe 10 years ago.

RDO is used today for defining all CICS resources.  It can be executed both online through CEDA or in a batch job.  It's been a few years since I was invloved with CICS and then it was fairly limited, but IIRC using RDO through batch had some limitation, or it could have been just my mis-understanding of the doc.  I was a network sysprog that helped out with CICS and DB2 for a few years.

LVL 68

Assisted Solution

woolmilkporc earned 50 total points
ID: 34956774
The batch utility for CEDA is DFHCSDUP.

With DFHCSDUP you need to know the whole CSD syntax, whereas CEDA has sort of menus to fill in the values.


Author Comment

by:Eduardo Fuerte
ID: 34960140

As I can see CEDA is a more recent facilitie applied to manage the  process but at least  the meanings have backward compatibility so my comprehension about the process are not lost.
(Mainframe Express still uses this terms so it's good to know them)

Any more interactions are still needed ?
If not I'm going to assign the points you deserves !

Author Closing Comment

by:Eduardo Fuerte
ID: 34963393
Thank you for your remarkable help.

 I'm returning later with a new questuion.

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Arrow Electronics was searching for a KVM  (Keyboard/Video/Mouse) switch that could display on one single monitor the current status of all units being tested on the rack.
Adults who share images on social media aren’t the only ones who need to worry about their privacy. Our culture’s tendency to share every move and celebration affects the privacy of our children, too.
Exchange organizations may use the Journaling Agent of the Transport Service to archive messages going through Exchange. However, if the Transport Service is integrated with some email content management application (such as an antispam), the admini…

680 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question