Solved

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

Posted on 2011-02-20
16
929 Views
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 ?
(say ACCOUNTS.EXE and PAYROLL.EXE ?)

Thanks in advance
0
Comment
Question by:Eduardo Fuerte
  • 8
  • 6
  • 2
16 Comments
 
LVL 57

Expert Comment

by:giltjr
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.
0
 

Author Comment

by:Eduardo Fuerte
ID: 34951021
Hello

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.
0
 
LVL 57

Expert Comment

by:giltjr
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.
0
 

Author Comment

by:Eduardo Fuerte
ID: 34953561
Hello

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

0
 

Author Comment

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

Expert Comment

by:giltjr
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.
0
 

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 ?
0
 
LVL 57

Expert Comment

by:giltjr
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:

TRANID=PAYR --> PGM=PAYROL
TRANID=ACTP --> PGM=ACCTPAY
TRANID=ACTR --> PGM=ACCTRCV

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.
0
What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

 

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 ?


0
 
LVL 57

Accepted Solution

by:
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.
0
 

Author Comment

by:Eduardo Fuerte
ID: 34955449
Hello

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.
0
 
LVL 68

Expert Comment

by:woolmilkporc
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)

wmp
0
 
LVL 57

Expert Comment

by:giltjr
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.

0
 
LVL 68

Assisted Solution

by:woolmilkporc
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.

wmp
0
 

Author Comment

by:Eduardo Fuerte
ID: 34960140
Hello

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 !
0
 

Author Closing Comment

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

 I'm returning later with a new questuion.
0

Featured Post

What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

Join & Write a Comment

HOW TO: Connect to the VMware vSphere Hypervisor 6.5 (ESXi 6.5) using the vSphere (HTML5 Web) Host Client 6.5, and perform a simple configuration task of adding a new VMFS 6 datastore.
This article will show you how to create an ISO CD-ROM/DVD-ROM image (*.iso), and MD5 checksum signature, for use with VMware vSphere Hypervisor 6.5 (ESXi 6.5). It's a good idea to compare checksums, because many installations fail because of a corr…
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…
You have products, that come in variants and want to set different prices for them? Watch this micro tutorial that describes how to configure prices for Magento super attributes. Assigning simple products to configurable: We assigned simple products…

705 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

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now