Search This Blog

Friday, 20 January 2012

Repository: CICS

CICS

CCS: Customer Information System
Command Level Language
Online Programs
Multi Tasting
Multithreading

BMS is used for Develop screens


Basic Mapping Support (Assembler Maoro)

SDF is a tool used for developing screens

Screen Definition Facility

MAPSET 1-8 Alpha Numeric – MAPSET --- DFHMSD
MAP1
MAP2
MAP3 (Defined Field
Hierarchy Mapset Defination)
1-8 --------- MAP ------ DFHMDI


1-30 ------ FIELDS ---- DFHMDF


Text Fields Nonenterable

MAP is nothing but screen
MAP Consists of Fields (Protect & Un Protect)

Text Fields Variables


User id Source BMSMACRO (BMS001)


72

User Defined ` Operands Parameters
Names
DEHMSD TYPE = MAP or DSECT or &SYSPARM X MODE = IN/OUT or INOUT X
MAPS 001(S) LANGUAGE = COBOL X
Mandotory CNTL=(FRSET, PRINT,FREEKB,ALARAM)

To release the lock for keyboard
or
To unlock Keyboard
TIOAPEX = YES

Terminal Inputoutput Area prefix – Used to reserve
12 bytes of storage for I/O commands


MAPS001 Compiler
Customer Details

Cust.No. ------

Cust.Name -----


VARIABLES
MAP (object Prog)
IOAFL Store in Load Stored in
Module Copy library
IOAFL as a member

Physical Map Symbolic Map
I = Input
O=Output Used by end user Used by Appln Programmer
A=Attribute
F=Field Stored in Loadlib Stored in Copylib
L=Length

Parameter:-
In Symbolic Map each variable is divided into 5 parts like I,O,A,FL
Type = MAP ----- Generates Physical map
Type = DSECT --- Generates Symbolic Map
Type = &SYSPARM --- Generates both Physical & symbolic Map

1. Physical MAP:-

It is the actual output of Assembler Macro . i.e.object program which consists of text & variables

It will be copied to load module

Can be used by End user

2. Symbolic MAP:-

Which Consists of variable (5 Variables generated for variable)

Stored in copy library i.e. user defined PDS as separate member which must be copied into Application program.

Can be used by Application Programmer to receive or send data to the user or to chage field Attributes or to position the cursor at required location.















MAPS00IS DFHMSD Type = MAP or DSECT or &SYSPARM, X
Mode = In/out or INOUT X
LAN = COBOL X
TIOAPFX = YES
CNTL = (FRSET,PRINT, FREEKB) X

MAP001M DFHMDI SIZE = (24,80) --- Default X
= (10,20)
10 = Rows, 20 = Cols.

DFHMDF Pos = (1,10) X
10= St Pos of Col, 1 = St pos of Row
Initial = “ Customer Details) X
Length = 25

DFHMDF Pos = (2,10) X
Initial = “………………” X
Length = 25 X

DFHMDF Pos = (4,1) X
Initial = “Cust.No” X
Length = 8 X

Mcust No DFHMDF Pos = (4,11) X
ATTRB = (Unprotect / Protect,IC, Red,Drk,Skip,Fset) X

Input Cursor or
Insert Cursor Color
Dark

To skip to next enterable field
PICIN = “9(S)” X
PICOUT = “Z(5)” X
Length = 16 X

DFHMDF Pos = (7,1) X
Initial = “Cust.Name” X
Length = 9 X

McustNam DFHMDF Pos = (7,12) X
PICIN = “x(10)” X
PICOUT = “x(10)” X
Attrb: (Unprotect/Red/Drk/Askip/FSET) X










USERID SOURCE COPLIB (MCT001M)

01 MCNST001I

02 MCNST NO I PIC 9(5)

02 Filler PIC X(12) ---- For Commands

02 MCNST NO L PIC S9(4)Comp --- Automatically Generated by system

02 MCNST NO A PIC X(1)

02 MCNST NO F Redefines Mcnst No A PIC X(1)

02 MCNSTNAMI PIC X(10)

02 Filler PIC X(12)

02 MCNSTNAML PIC S9(4)Comp

02 MCNSTNAMA PIC X(1)

02 MCNSTNAMF Redefines McnstNam A PIC X(1)

01 Mcnst0010 Redefines MCnst001I

02 McnstNoo PIC Z(5)
02 McnstNamO PIC X(10)


WORKING ---- STORAGE SECTION

Copy MCT001M

STEPS TO WRITE ASSEMBLER MACRO:-

Create PDS & Member then code Assembler Macro by using DFHMSD, DFHMD1, DFHMDF

Compiler Assembelr Macro by using JCL or ISPF panel

Go to Spool by = S.ST find for syntax errors

Type F MNOTE in command prompt or ERROR if there are any syntax error



COMPILE


ASSEMBLE



LINK EDITORS










Exec CICS

SEND TEXT

Form (“ Contact system Admin”) ……….. Like display “Contact system Admin”
Contact system Admin











End - Exec

Exec CICS

Send Text

From (WS – MSG) using Variable instead of Static Text

End – Exec

Exec CICS

Send CICS COBOL

MAP(“Mcnst001M”) SEND DISPLAY
MAPset(“Mcnst001S”) RECEIVE ACCEPT

End – Exec

Exec CICS

Send Variables
MAP (WS-MAP)
MAP set (WS-MAPSET)

End – Exec

Exec CICS
Receive
MAP (WS-MAP)
MAP set (WS-MAPSET)

End – Exec
Customer Details

Cust.No. = 10

Cust.Name = XYZ



DB2 Normal Conversation


CUSTOMER DETAILS

Cust.No …………………..

Cust Name ……




………….




Pr Psendo Conversation

Reinificati
Termination Reinifiation


At the time of waiting for response, release the resources i.e. terminate the transaction or program (Connection).After receiving the response, reinitiate the transaction or program . This Conversion is called psendo conversion.

In system view, it is two step process
v 1. Termination
v 2. Reinitiation

In user view, it is only single step

Exec CICS

Return
TransID (“TO01”) User Defined

End – Exec

PSEVDO CONVERSATION:-


TRANS
TRO1

ONLINE SYSTEM
MAP DisplayedNormal Conversation Psendo Conversation

When message or Map sent to the terminal, transaction will be terminated & waiting for the users response.

After receiving response from the user reinitiate the transaction (acquirer all the resources)

In system view, multitasking

In user view, single task.

ADVANTAGES:-

Releases all the resources at the time of waiting for the users response

COMMUNICATION AREA:-

At the time of terminating the transaction, the working storage – section variables are stored into a variable declared in linkage section

This area is called communication area

It is global

The max six of this variable is 6JK.

(linkage Section)

01 DFHCOMMAREA PIC X (65,53J)

At the time of reinitiation the data is retrieve from the variable

Communication Area can be used to pass the data from on transaction to another.

For the first entry of transaction the Communication Area is empty

For next entry, it must not be zero.

PROCE4DURE DIVISION

If EIBCALEN = 0 To check the length of Communication Area, it is zero for first entry, non zero
For next entry.
Exec CICS

Send
MAP (MAPNAME)

MAPSET (MAPSET)
End – exec
Exec CICS

Return
Transid (“TR01”)
End-Exec
Else
Exec CICS
Receive MAP (MAPNAME)
MAPSET (MAPSET)
End – Exec

End-it
Cust.No. …….
Cust Name ……..
Message: ………

Enter F2 F3 F4If EIBCALEN = 0

Exec CICS
Send
MAP(MAPNAME)
MAPSET(MAPSETNAME)
End – Exec

Exec CICS Functionlays
Return
Transid)”TR01”) Stored
EIBAID
End – Exec.

End – If DFHAID Attention Identifers
(F1 –F24)
Perform Receive- Map – Para three Receive – Map – Exit
Perform Function – Keys – Para three Function – Keys – Exit
Receive – Map – Para

Exec CICS

Receive
MAP(MAPNAME) Copy DFHAID in WS - Section
MAPSET(MAPSETNAME)
End – Exec 01 EIBAID PIC X(4)
88 DFHPF1 Value “F1”
Receive – Map – Exit 88 DFHPF2 Value “F2”
88 DFHEnter Value “Enter” Exit

Function – Keys – Para

Evaluate EIBAID
When DFHEnter 88 DFHPF24 Value “F24”

Perform validation – logic three validation – logic – exit
When DFHPF3

Pefrom Exit – logic three exit – logic –Exit
When DFHPF10

Perform Insert – logic three Insert – logic – Exit

When DFHPF11

Perform update – logic three update – logic – Exit
When Other

Perform Invalid – Key three Invalid – Key – Exit

End – Evaluate



Function – keys – exit In map
1 line --- Header
Exit 23line --- Messages
24 or last --- Footer
Validation – logic

If McnstNoI = Zeroes
Move “Invalid cust. No.” to MMESGO
Exec CICS Move - 1 to McnstNol – Dynomic way to position the cursor
Send
MAP (MAP NAME)
MAPSET(MAPSETNAME)

End – Exec

Exec CICS To Dynamically position the
cursor
Return 1. Move – 1 to Mcnst NoL
Transid(“TR01”) i.e. Lengthfield
2. Send
End – Exec Map (…………….)
End if Map (…………….)
Cursor (200) relative
If Mcnst NoI No is not Numeric cursor position

Move Spaces to MMESGO
Move “Must be Numeric” to MMESGO

Move - 1 to Mcnst NoL
Exec CICS
Send
MAP (MAPNAME)
MAPSET(MAPSETNAME)
End –exec

Exec CICS Send Para

Return

Transid(“TR01”)
End – Exec
End if
If Mcnst NoI (1:1) < > 1
Move Spaces To MMESGO
Move “First digit Must be 1” to MMESGO
Move – 1 To McnstNoL
Exec CICS
Send
MAP(MAPNAME)
MAPSET(MAPSET NAME)
End – Exec
Exec CICS
Return
Transid (“TR01”)
End-Exec End-If
Move McnstNoI to (DFHCommArea(1:5)) Ws-Cust-No

If McnstNamI = Spaces

Move “Invalid Name” to MMESGO
Move – 1 toMcnstNamL
Perform Send – Para

End If

Move McnstNamI to(DFHCommArea(6:10)) Ws-Cust-Name

Move Ws-Comm-area to DFHcommArea


CURSOR TECHINQUES:-



Three Types of Cursor techniques

(i) Static –By specifying i.e in Assembler macro, Cursor can be positioned at
required field.

(ii) Dynamic Cursor position –Dynamically cursor can be positioned by assigning - 1 to the length field from symbolic map.This technique is used in application program more frquently

Eg:- Involid Data validation or to jump from one field to another field

(iii) Relative cursor position – Cursor can be positioned at required location by specifying relative position relative to zero in the Cursor option with send map command.



DFH Comm Area:


System defined global variable which must be declared in linkage section with 01 level no

Which can be used to pass the data from on program to another program, on transaction to another transaction.

Max size area for DFH Comm Area is 65Kbytes


PROCEDURE DIVISION :-


Move Spaces to DFH Comm Area
I nitialise DFH Comm Area ----- Aliphanumaric, Numaeric

To transfer the control from one program to another

We use XCIL

Exec CICS

XCTL
Program (“CICSOOL”)
CommArea(DFHcommArea)
Length (Comm-Length)

End- Exec

We can use link to transfer the control

The diff between XCTL &LINK is when we use XCTL the control is not Expected to back to the screen but when we use link it will expect that the control will back

Exec CICS

LINK

Program(“CICS001”)
CommAre(DFHCommArea)
Length(Comm – length)

End Exec

If we use F8 Key Page up & F9 for Page down, data is to be transferred from database to screen.But we use temp area for storing this info.this is call queene

01 Ws-Comm-Area

02 Transfer - data

03 CustNo. PIC 9(5)

02 Save – data

03 CustNo. PIC 9(5)
03 CustName PIC X(20)

02 Multiple – rows
03 Ws-data PIC X(5) access 1,00,000times

LINK:-

Which can be used to transfer the control from one prog to another prog
Control is expected back to original prog.(no need of explicit CICS command to transfer back)
Ef:- Validations

Socket programming
Complex business functionalities

XCTL:-


Which can be used to transfer the control from one prog. To another Prog.
Control is not expected back to original prog
To get the control back to main prog XCITL command must be used in sub program

Eg:- Transfering the control from main menu (prog) to sub prog or subprog to main menu(Prog)


Link --- to lower level
XCTL --- to same level
Return --- to Higher level


MOVE 30 TO WS_TSO_LEN

Exec CICS Ws - Section
01 Ws -TSQ - AREA
Write Ts 02 Ws –TSQ-CusfNo Pic 59(5)
QUEUE(“TS001”) 02 Ws- TSQ – CustName Pic X(10)
From (Ws-TSQ-AREA) 02 Ws-TSQ – CustLoc Pic X(10)
LENGTH (Ws-TSQ-LEN) 01 Ws-TSQ-LEN Pic 59(4) comp
ITEM(Ws-TSQ-Item)
Main/Aux
If we want to define that Quene auxiliary memory.We have to define Quene id TST table it is CICS supplied table.


End-Exec

Add + 1 to Ws-TSQ-Item

To define queid in TST exate member &write the following assembler maoro.

USEID SOURCE DFHTST (TS0001)

DFHTST Type = “Queue” TST = Temporary Storage Table

QueID = “TS001”

TO Retrieve the data from queue to structure:-

Move +1 to Ws-TSQ-ITEM
Perform until Qzero (End of Queue)

Exec CICS

ReadQ TS
QUEUE (“TS001”)
Into(Ws-TSQ-AREA)
Length(Ws-TSQ-LEN)
Item(Ws-TSQ-Item)

End – Exec

Add +1 to Ws – TSQ – Item
End – Perform

Response Code:- To find the end of the queue

Deleting the Queue:

Exec CICS
DeleteQTS We cannot delete single row in queue
QUEUE(“TS001”) When we apply delete command the queue
End - Exec becomes empty
Queue is global

Up dating The Queue:-

Exec CICS

RewriteQts
From (Ws-TSQ-Area)
Queue(“TS001”)
Length(Ws-TSQ-Len)
Item(Ws-TSQ-Item)

End – Exec

TSQ:- Temporary storage queue

Which is similar to physical sequential file
Records entered in entry – sequential order with relative record number
Records can be sequentially or Random by using item number which must be defined in Working – Storage Section as separate field
The Queue name must be user defined i.e. 1-8 Alph numeric characters must be unique in system
TSQ can be storage in main memory or Auxiliary memory (QueueID or Queue Name must be defined in TST(Temp Storage Table) which is CICS supplied table
TSQ can be used to pass the data within CICS
TSQ can be used to reduce no. of DB2 calls & improve program efficiency
TSQ can be used for page up, Page down logic
TSQ can be used for reporting printing online
Entire TSQ data can be deleted by using delete command (No specific row deletion)


TDQ:- Transient Data Queue

Used to pass the data from one CICI to another CICS region
Used to pass the data from CICS to Batch Program






TDQ



Intra Partition Extra Partition CICS to CICS region CICS to Batch Delete, Write Delete Write Apply

While using TSQ, we can read the records any no of times
While using TDQ, multiple read against TSQ is not possible
Read is destructive i.e. when we read the queue the data is lost
Updation is not possible
Delete can apply to intra partition but not to extra position.

TDQ can be stored in main or auziliary.

If we store in Auxiliary we need to define

Queue ID DCT Table (Destination Control Table)


DFHDCT Type = QUEUF
Type = Intra/ Extra
Queid = “TD001”
Trigerleve = 1000
Program = Cobol


01 Ws-Hd

02 Ws – Sub – He – 1 PIC X(100) value “Customer Details”
02 Ws – Sub – He – 2 PIC X (100) value “Page No”

01 Ws-line PIC X(100) value A;;” ---“

PROCEDURE DIVISION

WRITE Cust - Rep from Ws-Sub-He-1
WRITE Cust - Rep from Ws-Line
WRITE Cust – Rep from Ws-Sub – He – 2


TSQ TDQ

Records entered in entry Sep. order Records entered in entry sep.order with
With relative record number out relative record number

Multiple read commands can be applied Only one read command can be applied
Against rows against rows (Read is destructive)
Records can be accessed Sepertially Only sequential access
Or random

Queue must be defined in TST if the Queue must be defined m DCT
Data store in auxiliary memory (Destination Control Table)

Can be used to pass the data from Can be used to pass data withinCICS
One prog to another within CICS region region or outside of CICS region like
Batch

Eg:- Report printing, Trigessing Batch Prog
Bb specifying Trigger level

Updation is passible Updation is not possible


CICS Supplied Tables

PCT -- Program control Table --- Transaction
PPJ -- Processing Prog Table -- Program / Mapsets
TCT – Terminal Control Table


DFHPCT TYPE = TRANSACTION
Transid = “TR01”
Program = “CICS001”
Program = “CICS002”




DFHPPT TYPE = Program Type = MAPSET
Program = “CICS001” MAPSET = Mcnstcol
TransID = “TR01” Tra

No comments:

Post a Comment