Vous êtes sur la page 1sur 32

SDDC - Copyright 2004 1

Présentation Générale
But
► Simplifier la programmation des applications CICS en pseudo conversationnel

► gérer les branchements dans le programme

► Standardiser l ’écriture des programmes


 1ere partie : toujours exécutée
► gestion des HANDLE CONDITION et ERROR
► adressage des zones système CICS
► Adressage du TCR
► gestion des débranchements (GO TO DEPENDING…)
 2eme partie : Ensemble de routines
► une seule routine est exécutée
 en fonction du code branchement (CBL-IDROU) gèré par le M.G.
►1 routine d ’INITIALISATION
► 0 à n routines de VALIDATION
► 0 à n routines de CORRELATION
► 1 routine de FIN1 (1ere phase)
► 0 ou 1 routine de FIN2 (2eme phase)
SDDC - Copyright 2004 2
Présentation Générale
► Gestion des écrans
 Sans intervention du programme d ’application
 Affichage : en optimisant les transmissions BMS
 Réception: en rendant au programme le maximum d'informations

► Simplifier le contrôle des écrans


 contrôles directs par le module général
► Numéricité
► zone obligatoire …
 Routines de validation
 Routines de corrélation

► Gérer les zones du programme


 pour libérer la place mémoire
 Gestion du TCR (zones travail + Ecran) et écriture sur disque

SDDC - Copyright 2004 3


Réalisation des écrans
VAL1
VAL2

COR1
COR2

SDDC - Copyright 2004 4


Description des écrans : MICGEN
► Macro assembleur : MICGEN
► 7 types
 INITIAL
 WORK
 FIELD
 OCCURS
 CORREL
 FLMAP
 FINAL

SDDC - Copyright 2004 5


Macros MICGEN
► INITIAL
 Spécifie
► le nom de la routine d’INIT
► Le langage du programme d’application
► Le modèle du terminal
► La position du message d’erreur
► Le code de la transaction
► Le nombre de « page »

SDDC - Copyright 2004 6


Macros MICGEN
► WORK
 Zone de travail pour le programme
►ASIZE=(F,L,U,S) avec :
 F : format de la zone
►9 : numérique
►x : alphanumérique
 L : longueur de la zone
 U : usage de la zone
► display : Etendu (u=display si f=x)
► comp-3 : PACKE
► Comp : binaire
 S : pour zones numériques signées

SDDC - Copyright 2004 7


Macros MICGEN
► OCCURS
 Répétition de champs
 DOCCO01/FOCCO01 ---> 1er tableau
 DOCCO2/FOCCO02 ---> 2eme tableau
 Exemple
*********** DEBUT TABLEAU *****************************
MICGEN TYPE=OCCURS,NBR=xx,MAP=x,INCR=xx
COPY DOCCO01
---------==> map 0---------------------
------------field----------------------
COPY FOCCO01
MICGEN TYPE=FINAL
************ FIN TABLEAU ******************************

SDDC - Copyright 2004 8


Macros MICGEN
► CORREL
 Déclaration d’une corrélation entre zones écran
► Effectuer des contrôles de cohérence
► Type ET / OU

MICGEN TYPE=CORREL,COMBTYP=xx,CORROUT=cxxxxx, *
FIELDS=(ZON001,ZON002,ZON003)

SDDC - Copyright 2004 9


Macros MICGEN
► FIELD
 Pour chaque champ écran
 Différents suffixes
►I : Détecter si zone modifiée
►O : Forcer la zone (curseur, simulation saisie)
►A : Attribut
►N : Numérique

►I : Permet de détecter si une zone a été introduite par


l'utilisateur (c’est à dire modifiée)
 ZONEI=‘ I ’ si la zone a été introduite par l'utilisateur

SDDC - Copyright 2004 10


Macros MICGEN
► FIELD (suite)
► O : Permet de Forcer le curseur sur une zone
 MOVE ’C ’ TO ZONEO
► O : Provoquer le forçage de la zone
 même si l'utilisateur ne modifie pas la zone, le Module général fera comme si
elle avait été introduite (modifiée) par l'utilisateur
► Joue les routines de validation ou corrélation associées
 MOVE ‘ F ’ TO ZONEO
► A : Permet d'indiquer l'attribut BMS
 BRT / NORM / DRK
 PROT / UNPROT
 IC

SDDC - Copyright 2004 11


Macros MICGEN
► FIELD (suite)
► N : Si la zone est numérique
 Zone sans suffixe = contenu de la zone
► Exemple
 05 ZONEI PIC X.
 05 ZONEO PIC X.
 05 ZONEA PIC X.
 05 ZONE. 07 ZONEN PIC 9(6).

SDDC - Copyright 2004 12


Macros MICGEN
► FLMAP
 Facultatif
 Permet de séparer 2 MAPS afin de générer un niveau 03
pour chaque MAP dans la clause copy cobol CBLxxxx
(conversation xxxx)
 Exemple
► 01 CBLxxxx.
► 03 xxxxWORK.
► 05
► 03 Axxxx00. ---> 1ere map
► 05
► 03 Axxxx01. ---> 2eme map
► 05

SDDC - Copyright 2004 13


Macros MICGEN
► FINAL
 Macro instruction de fin

SDDC - Copyright 2004 14


Exemple source MICGEN
MICGEN TYPE=INITIAL,INEXIT=10-DEB-INIT,MODEL
TYPE=INITIAL,INEXIT=10-DEB-INIT,MODEL=1920,ERRPOS=1760,*
=1920,ERRPOS=1760,*
TRANSID=JGCA,LANG=COBOL, *
MAXPAG=01,MAPOCC=(1)
WMAN MICGEN TYPE=WORK,ASIZE=(X,2550,DISPLAY)
OPERAT MICGEN TYPE=FIELD, *
LENGTH=6, *
MAPOS=(00,0330), *
ATTRB=(UNPROT,DRK,IC), *
VALROUT=25-DEB-SIGNAT
MICGEN TYPE=FIELD, *
LENGTH=31, *
MAPOS=(00,0344), *
ATTRB=(PROT,BRT), *
INITIAL='*******************************'
WMESSER MICGEN TYPE=FIELD, *MESS SYSTEME* *
LENGTH=35, *
MAPOS=(00,1804), *
ATTRB=(PROT,BRT,ASKIP)
……………………………….
……………………………….
MICGEN TYPE=CORREL,COMBTYP=OU, *
CORROUT=20-DEB-CORR1,
CORROUT=20-DEB-CORR1, *
FIELDS=(NOMCLI,PRECLI,VILLE,CODPOS,DATEJJ,DATEMM,DATEAA, *
SSRES,EMET,NUMERO,BQERIB,GUIRIB,CPTRIB,CLERIB,OPERAT)
MICGEN TYPE=FINAL,OUTEXIT=(30-DEB-FIN1,95-DEB-FIN2)
TYPE=FINAL,OUTEXIT=(30-DEB-FIN1,95-DEB-FIN2)
COPY FINMIC
END

SDDC - Copyright 2004 15


Macros MICGEN : Rôle
► Servent
a générer les 4 éléments nécessaires pour
une conversation  MODULE-GENERAL
►2 éléments utilisés directement par le MODULE GENERAL
 Mapsets et MAPS BMS : SXXXXnn et AXXXXnn
 Table d’application TXXXX
►2éléments inclus dans le programme de la conversation au
moyen d'une instruction cobol 'copy'
 Description du TCR : CBLxxxx
► Zones WORK
► Zones écran
► Zones Module général
 Coding de branchement aux routines du programme : CBLCxxxx

SDDC - Copyright 2004 16


COMPILATION MACRO MICGEN

Source MICGEN

Compilation

LOAD Txxxx COPY CBLxxxx


Sxxxxnn CBLCxxxx

Sxxxxnn

SDDC - Copyright 2004 17


Routines du programme
► Plusieurs routines dans le programme d’application
 Débranchement contrôlé par CBL-IDROU
 1 INIT
 0 à n VALIDATION(S)
 0 à n CORRELATION(S)
 1 FIN1
 0 ou 1 FIN2

SDDC - Copyright 2004 18


Routines du programme
► INIT
 Débranchement à cette routine avant l'affichage du
premier écran de la conversation.
 Permet d'effectuer les traitements d'initialisation de
la conversation tels que
► Suppression des ts
► Pré affichage d’écran
► …
 Retour en fin de paragraphe par GOBACK.
SDDC - Copyright 2004 19
Routines du programme
► VALIDATION
 Liée à une zone de l ’écran
 Débranchement à cette routine lorsque la zone a
été modifiée par l'utilisateur.
 Permet d’effectuer les contrôles unitaires de la zone
 Retour en fin de paragraphe par GOBACK.

SDDC - Copyright 2004 20


Routines du programme
► CORRELATION
 Liée à une ou plusieurs zones de l ’écran
 Débranchement à cette routine lorsque
► Une zone au moins a été modifiée par l'utilisateur
► Aucune zone de la corrélation en erreur de validation
 CORRELATION de type OU / ET
► OU : Une zone de la corrélation est renseignée
► ET : Toutes les zones de la corrélation sont renseignées
 Permet d’effectuer les contrôles de cohérence des
zones de la corrélation
 Retour en fin de paragraphe par GOBACK.
SDDC - Copyright 2004 21
Routines du programme
► FIN1
 Débranchement à cette routine lorsqu'il n'y a
plus d'erreur (validation et corrélation)
 Cette routine permet
► D’effectuer des contrôles supplémentaires
► Réafficher l ’écran pour demande de confirmation
CBL-ERRIN
► Demander l'affichage de l ’écran suivant
CBL-NUMAP
► Demander l'exécution d'une nouvelle transaction
CBL-NEXTRAN = «*»
SDDC - Copyright 2004 22
Routines du programme
► FIN1 (Suite)
 Cette routine permet
► De valoriser la TCTUA
► D’effectuer des START
► De demander le passage dans la routine de fin2
CBL-FIN2OUI = "*« 
► D’effectuer les mises à jour des fichiers

 Lorsque le Module général reprend la main


► Effectue un SYNCPOINT (COMMIT)
► Effectue ce que le programme d’application lui a
demandé (par défaut : réaffiche l ’écran en cours)
SDDC - Copyright 2004 23
Routines du programme
► FIN2
 Cette routine permet
► D’effectuer les mises à jour des fichiers
► De reprendre la conversation au début (INIT)
 Lorsque le Module général reprend la main
►Effectueun SYNCPOINT (COMMIT)
►Se débranche à la routine INIT

SDDC - Copyright 2004 24


Routines du programme
►Remarques
 Si une zone de l ’écran est effacée par l'utilisateur,
elle est considérée par le Module général comme
inexistante
►les routines de validation et de corrélation ne seront
pas exécutées.
 Les mises à jour peuvent être effectuées en FIN1
ou FIN2 (suivant la méthode utilisée)
►Elles ne doivent pas être effectuées dans les 2
routines, car le module général effectue un SYNCPOINT
après FIN1 (risque d'incohérences...).
SDDC - Copyright 2004 25
Dynamique Module Général
M.G P.A
XXXX
Routine INIT

XXXX PAGE 00
…. ….
….. ....

ZONE1 ?
Validation ZONE1

ZONE2 ?
Validation ZONE2

ZONE3 ?
Corrélation 1

ERREUR ?
OUI
XXXX PAGE 00
NON A
…. ….
….. .… ERREUR
SDDC - Copyright 2004 26
Dynamique Module Général
XXXX PAGE 00
…. …. ZONE1 ?
….. .… ERREUR Validation ZONE1

ZONE2 ?
Validation ZONE2

ZONE3 ?
XXXX PAGE 00 Corrélation 1
…. ….
….. .… ERREUR ERREUR ?
AFFICHAGE? A
XXXX PAGE 00 OUI
…. …. NON
….. .… FIN1
AFFICHAGE?
XXXX PAGE 00 OUI
…. ….
….. .… TRT FIN2 ?
CBL-NUMAP OUI
FIN2
Retour INIT

XXXX PAGE 00 NON


…. ….
….. .… SDDC - Copyright 2004 27
Messages d’erreurs
► Types
 Message bloquant (= erreur)
► Affichage demandé en VALIDATION ou CORRELATION
(CBL-CODERR)
► L'utilisateur est oblige de modifier au moins une zone
(sinon le Module général reste bloqué sur l'affichage de
l’écran – le programme d’application n’a pas la main)
 Message non bloquant
► Affichage demandé en INIT, CORRELATION ou FIN1
(CBL-ERRIN)
SDDC - Copyright 2004 28
Structure d’un programme

► LINKAGE SECTION.
► 01 TWA.
► * ltwa= 343 octets <--- twa indispensable au  M.G
► 03 filler pic x(323).
► 03 ADTTCRCOB POINTER.
► 03 filler pic x(16).
► 01 filler. <--- tua pour transfert d'informations
► COPY TUACOBOL.
► COPY CBLxxxx. <--- pour zone de communication avec le TCR et M.G.
► *01 CBLxxxx. initialisée à chaque début de conversation
► . 03 xxxxWORK.
► . 05 .. <--- zones de travail éventuelles
► . 05 ...
► . 03 xxxxnn.
► . 05 .... <--- zones relatives à l ’écran nn
► . ..... (au moins une zone par écran)
► . 03 xxxx01. <--- si deuxième écran

SDDC - Copyright 2004 29


Structure d’un programme
► . Suite… Les zones de communication
► . 03 cbl-mapcou pic 9(4) comp. écran en cours
► . 03 cbl-fonct pic x. Touche fonction (idem EIBAID)
► . 03 cbl-numap pic 9(4) comp. Prochain écran à afficher
► . 03 cbl-coderr pic 9(4) comp. Numéro message anomalie (zero=ok)
► . 03 cbl-fin2oui pic x. Mettre ‘ * ’ pour jouer   ’FIN2 ’
► . 03 cbl-idrou pic 9(4) comp. Numéro de la routine à jouer
► . 03 cbl-errin pic 9(4) comp. Numéro ano. en ‘ FIN1 ’ & ‘ INIT ’
► . 03 cbl-bypass pic x. Mettre ‘ * ’ pour le ‘ bypass ’
► . 03 cbl-nextran pic x(4). Code de la prochaine conversation
► . 03 cbl-i pic 9(4) comp. Indice si  ’ OCCURS ’ sur écran

SDDC - Copyright 2004 30


Structure d’un programme
► PROCEDURE DIVISION
► . <--- initialisations éventuelles de WORKING STORAGE.
► EXEC CICS ADDRESS CWA(ptrcwa) TWA(TWA
► TCTUA(ptrtua)
► END-EXEC
► SET ADDRESS OF CBLxxxx TO ADTCRCOB.
► COPY CBLCxxxx.
► GO TO
► . INIT <--- débranchement aux diverses routines
► . VALID1 de la conversation
► . VALID2 (instruction exécutée à chaque
► . VALID3 appel du "module général")
► . CORREL1
► . CORREL2
► . FIN1
► . FIN2
► DEPENDING ON CBL-IDROU.
► EXEC CICS RETURN END-EXEC.

SDDC - Copyright 2004 31


Structure d’un programme
► PROCEDURE DIVISION (suite)
► INIT.
► .
► GOBACK.

► VALID1.
► .
► GOBACK.
► . etc.

► FIN1.
► .
► GOBACK.

► FIN2.
► .
► GOBACK.

SDDC - Copyright 2004 32

Vous aimerez peut-être aussi