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

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
Eduardo FuerteAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

giltjrConnect With a Mentor Commented:
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.
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.
Eduardo FuerteAuthor Commented:

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.
Take Control of Web Hosting For Your Clients

As a web developer or IT admin, successfully managing multiple client accounts can be challenging. In this webinar we will look at the tools provided by Media Temple and Plesk to make managing your clients’ hosting easier.

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.
Eduardo FuerteAuthor Commented:

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

Eduardo FuerteAuthor Commented:
Ops... I mean; PCT - Program Control Table
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.
Eduardo FuerteAuthor Commented:
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 ?
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.
Eduardo FuerteAuthor Commented:
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 ?

Eduardo FuerteAuthor Commented:

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.
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)

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.

woolmilkporcConnect With a Mentor Commented:
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.

Eduardo FuerteAuthor Commented:

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 !
Eduardo FuerteAuthor Commented:
Thank you for your remarkable help.

 I'm returning later with a new questuion.
All Courses

From novice to tech pro — start learning today.