02 cics programming - hu-berlin.de cics programming... · cics application design and programming...

12
© 2006 IBM Corporation Summer University 2006 Isabel Arnold IBM Technical Sales zSoftware [email protected] CICS Applications Design and Programming

Upload: buixuyen

Post on 13-May-2018

237 views

Category:

Documents


14 download

TRANSCRIPT

Page 1: 02 CICS Programming - hu-berlin.de CICS Programming... · CICS Application Design and Programming CICS Program-to-Program Communication CICS supplied P2P COMMAREA based functions:

© 2006 IBM Corporation

Summer University 2006

Isabel ArnoldIBM Technical Sales [email protected]

CICS Applications

Design and Programming

Page 2: 02 CICS Programming - hu-berlin.de CICS Programming... · CICS Application Design and Programming CICS Program-to-Program Communication CICS supplied P2P COMMAREA based functions:

Summer University 2006

CICS Application Design and Programming

Three Tier Application Design

PresentationLogic

BusinessLogic

Data AccessLogic

Page 3: 02 CICS Programming - hu-berlin.de CICS Programming... · CICS Application Design and Programming CICS Program-to-Program Communication CICS supplied P2P COMMAREA based functions:

Summer University 2006

CICS Application Design and Programming

CICS Essential Design concepts

PresentationLogic

BusinessLogic

Data AccessLogic

COMMAREA or CHANNEL

WB01

3270

Pseudoconversational

programming

+Program to Program communication

Page 4: 02 CICS Programming - hu-berlin.de CICS Programming... · CICS Application Design and Programming CICS Program-to-Program Communication CICS supplied P2P COMMAREA based functions:

Summer University 2006

CICS Application Design and Programming

Basic Mapping Support

CICS Presentation Logic

01 CUSTMAP

02 CustomerName

02 CustomerAddress

02 CustomerPhone

RECEIVE

SEND

Type your info.

Name: Mary

Address: 123

Phone: 555_

Page 5: 02 CICS Programming - hu-berlin.de CICS Programming... · CICS Application Design and Programming CICS Program-to-Program Communication CICS supplied P2P COMMAREA based functions:

Summer University 2006

CICS Application Design and Programming

Dialog Design Overview

RECEIVE Menu Screen

Record InquiryAccount: 1234Name: SmithAmount: $10.00Date: 05/28/01

MenuEnter account: _____Function code: ___

MenuEnter account: _1234_Function code: _I_

MenuEnter account: _____Function code: ___ SEND Menu Screen

SEND Detail Screen

RECEIVE Exit Function

SEND Menu Screen

Page 6: 02 CICS Programming - hu-berlin.de CICS Programming... · CICS Application Design and Programming CICS Program-to-Program Communication CICS supplied P2P COMMAREA based functions:

Summer University 2006

CICS Application Design and Programming

EXEC CICSREADFILE ('CLIENTS')INTO (CLNT-REC-AREA)RIDFLD (CLNT-NUMBER)UPDATEEND-EXEC

CICS Command Syntax

Here comes a command

What you want CICS to do

How CICS should do it

Language-dependent

EXEC CICS

Command

Option (argument)

Option (argument)

Delimiter

import com.ibm.cics.server.ESDS;import com.ibm.cics.server.RecordHolder;…ESDS acctfile = new ESDS();acctfile.setName("ACCTFILE");RecordHolder record = new RecordHolder();acctfile.read(1, record);

Different in Java:Uses JCICS classes� Object oriented

approach

Page 7: 02 CICS Programming - hu-berlin.de CICS Programming... · CICS Application Design and Programming CICS Program-to-Program Communication CICS supplied P2P COMMAREA based functions:

Summer University 2006

CICS Application Design and Programming

CICS Program-to-Program Communication

CICS supplied P2P COMMAREA based functions:

� EXEC CICS LINK (CICS to CICS, can be remote)

� EXEC CICS XCTL (CICS to CICS)

� ECI call (CICS Universal Client to CICS)

� ECI call (CICS Transaction Gateway to CICS)

� EXCI (z/OS Batch to CICS)

ProgramLogic

ProgramLogic

COMMAREA

CICS Transaction Server

SELECT

TYPE: 564-89712-0

QUERY UPDATE

CICS

Universal

Client

Workstation

CICS Transaction

Gateway

Web Application

Server

Browser

ProgramLogic

COMMAREAor

CHANNEL

BATCH

Page 8: 02 CICS Programming - hu-berlin.de CICS Programming... · CICS Application Design and Programming CICS Program-to-Program Communication CICS supplied P2P COMMAREA based functions:

Summer University 2006

CICS Application Design and Programming

The Commarea

� A container that holds data

� maximum length is 32Kb

� Passed from one program to another

� same task or not

� same COMMAREA for the request and the reply (if any)

� Empty, partially filled, or full

Page 9: 02 CICS Programming - hu-berlin.de CICS Programming... · CICS Application Design and Programming CICS Program-to-Program Communication CICS supplied P2P COMMAREA based functions:

Summer University 2006

CICS Application Design and Programming

Link with Commarea

MOVE “HUGO” TO MYCOMMAREA

EXEC CICS LINK PROGRAM(“HELLOPRO")

COMMAREA(MYCOMMAREA)

END-EXEC

String commarea = “HUGO” ;

Program hello = new Program();

hello.setName(“HELLOPRO” );

hello.link(commarea.getBytes());

ProgramHELLOPRO

“HUGO“

Page 10: 02 CICS Programming - hu-berlin.de CICS Programming... · CICS Application Design and Programming CICS Program-to-Program Communication CICS supplied P2P COMMAREA based functions:

Summer University 2006

CICS Application Design and Programming

Channels & Containers

� A NAMED group of NAMED CONTAINERs� CONTAINER can be seen as a named COMMAREA � CONTAINER is not limited in size � no limit on the number of CONTAINERs in a CHANNEL� data conversion at CONTAINER level� CONTAINERs address complex message structure issues

� Passed from one program to another

� Empty or not

ContainerA

ContainerB

ContainerC

CHANNEL4

Page 11: 02 CICS Programming - hu-berlin.de CICS Programming... · CICS Application Design and Programming CICS Program-to-Program Communication CICS supplied P2P COMMAREA based functions:

Summer University 2006

CICS Application Design and Programming

Link with Channel

� One program / One channel

� One channel / Multiple programs

� The Channel is the interface to a Component

Program A

EXEC CICS PUT CONTAINER(‘EMPLOYEE_INFO')

FROM(local_variable)

END-EXEC

EXEC CICS LINK PROGRAM(‘PROGRAMB’)

CHANNEL(‘EMPLOYEE_INFO’)

Program B

Program A

EXEC CICS PUT CONTAINER(‘EMPLOYEE_INFO')

FROM(local_variable)

END-EXEC

EXEC CICS LINK PROGRAM(‘PROGRAMB’)

CHANNEL(‘EMPLOYEE_INFO’)

Program CProgram B

EXEC CICS LINK PROGRAM(‘PROGRAMC’)

CHANNEL(‘EMPLOYEE_INFO’)

Employee Inquiry component

Page 12: 02 CICS Programming - hu-berlin.de CICS Programming... · CICS Application Design and Programming CICS Program-to-Program Communication CICS supplied P2P COMMAREA based functions:

Summer University 2006

CICS Application Design and Programming

ExecutableCode

Program Preparation Process

Pre-translate EXEC CICS

Linkage Editor

Compiler

Translator

SourceProgram

„pure“Source

OBJfile

LOADmodule

ExecutableCode

Java SourceProgram

CompilerCompile once

-Run anywhere