CICS - BMS

BMS est connu sous le nom de Basic Mapping Support. Une application se compose d'écrans formatés qui servent de pont entre le terminal et les programmes CICS. Pour la communication entre le terminal et les programmes CICS, nous utilisons les services d'entrée / sortie du terminal CICS. Nous utilisons BMS pour créer des conceptions d'écran avec des positions et des attributs appropriés. Voici les fonctions de BMS -

  • BMS sert d'interface entre le terminal et les programmes CICS.

  • La conception et le format de l'écran sont séparés de la logique d'application.

  • BMS rend le matériel d'application indépendant.

Écran formaté

L'écran ci-dessous est un écran de menu et peut être conçu à l'aide de BMS. Ses points clés sont les suivants -

  • L'écran peut avoir un titre, une date et toute autre information à afficher.

  • Les options 1, 2 et 3 sont les champs sans nom qui sont les titres de l'écran.

  • Dans le champ Sélection, nous devons fournir l'entrée. Cette entrée est ensuite envoyée au programme CICS pour un traitement ultérieur.

  • Au bas de l'écran, les touches d'action s'affichent.

  • Tous les champs et l'écran lui-même sont définis avec des macros BMS. Lorsque la carte entière est définie, nous pouvons utiliser JCL pour l'assembler.

Conditions de base de BMS

Voici les termes de base que nous utiliserons dans les prochains modules -

Carte

La carte est un format d'écran unique qui peut être conçu à l'aide de macros BMS. Il peut avoir des noms contenant de 1 à 7 caractères.

Mapset

Mapset est une collection de cartes qui sont liées entre elles pour former un module de chargement. Il doit avoir une entrée PPT. Il peut avoir des noms de 1 à 7 caractères.

Macros BMS

BMS map est un programme écrit en langage d'assemblage pour gérer les écrans. Les trois macros utilisées pour définir l'écran sont DFHMSD, DFHMDI et DFHMDF.

DFHMSD

La macro DFHMSD génère une définition de Mapset. C'est l'identifiant de macro qui montre que nous commençons un ensemble de cartes. Le nom du jeu de cartes est le nom du module de chargement et une entrée dans la table PPT doit être présente. Le tableau suivant présente la liste des paramètres pouvant être utilisés dans DFHMSD -

Sr.Non Paramètre et description
1

TYPE

TYPE est utilisé pour définir le type de carte. Si TYPE =
MAP - La carte physique est créée
DSECT - La carte symbolique est créée
&& SYSPARM - Physique et symbolique, les deux sont créés
FINAL - Pour indiquer la fin d'un codage de mapset.

2

MODE

MODE est utilisé pour indiquer les opérations d'entrée / sortie. IF MODE =
IN - Pour une carte d'entrée uniquement
OUT - Pour une carte de sortie uniquement
INOUT Pour la carte d'entrée et de sortie

3

LANG

LANG = ASM / COBOL / PL1
Il décide de la langue de la structure DSECT, à copier dans le programme d'application.

4

STORAGE

Si STORAGE =
AUTO - Pour acquérir une zone de carte symbolique distincte pour chaque jeu de cartes
BASE - Pour avoir la même base de stockage pour les cartes symboliques de plus d'un jeu de cartes

5

CTRL

CRTL est utilisé pour définir les demandes de contrôle des périphériques. Si CTRL =
FREEKB - Pour déverrouiller le clavier
FRSET - Pour remettre MDT à l'état zéro
ALARM - Pour régler une alarme à l'heure d'affichage de l'écran
IMPRIMER - Pour indiquer le jeu de cartes à envoyer à l'imprimante.

6

TERM

TERM = type garantit l'indépendance de l'appareil, nécessaire si un terminal autre que 3270 est utilisé.

sept

TIOAPFX

TIOAPFX = YES / NO
YES - Pour réserver l'espace de préfixe (12 octets) pour que les commandes BMS accèdent correctement à TIOA. Requis pour le niveau de commande CICS.

Exemple

L'exemple suivant montre comment coder une définition de mapset -

MPST01  DFHMSD TYPE = &SYSPARM, X
   CTRL = (FREEKB,FRSET), X
   LANG = COBOL, X 
   STORAGE = AUTO, X
   TIOAPFX = YES, X
   MODE = INOUT, X
   TERM = 3270
   DFHMSD TYPE = FINAL 
END

DFHMDI

La macro DFHMDI génère des définitions de carte. Cela montre que nous commençons une nouvelle carte. Mapname est suivi de la macro DFHMDI. Mapname est utilisé pour envoyer ou recevoir des cartes. Le tableau suivant montre les paramètres que nous utilisons dans une macro DFHMDI -

Sr.Non Paramètre et description
1

SIZE

SIZE = (Line, Column)
Ce paramètre donne la taille de la carte. BMS nous permet de créer un écran à l'aide de plusieurs cartes, et ce paramètre devient important lorsque nous utilisons plusieurs cartes dans un seul jeu de cartes.

2

LINE

Il indique le numéro de ligne de départ de la carte.

3

COLUMN

Il indique le numéro de colonne de départ de la carte.

4

JUSTIFY

Il est utilisé pour spécifier la carte entière ou les champs de la carte à justifier à gauche ou à droite.

5

CTRL

CRTL est utilisé pour définir les demandes de contrôle des périphériques. Si CTRL =
FREEKB - Pour déverrouiller le clavier
FRSET - Pour remettre MDT à l'état zéro
ALARME - Pour régler une alarme à l'heure d'affichage de l'écran
IMPRIMER - Pour indiquer la carte à envoyer à l'imprimante

6

TIOAPFX

TIOAPFX = OUI / NON

OUI - Pour réserver l'espace de préfixe (12 octets) pour que les commandes BMS accèdent correctement à TIOA. Requis pour le niveau de commande CICS.

Exemple

L'exemple suivant montre comment coder une définition de carte -

MAPSTD DFHMDI SIZE = (20,80), X
   LINE = 01, X
   COLUMN = 01, X
   CTRL = (FREEKB,FRSET)

DFHMDF

La macro DFHMDF est utilisée pour définir les noms de champ. Le nom du champ est mentionné sur lequel la macro DFHMDF est codée. Ce nom de champ est utilisé dans le programme. Nous n'écrivons pas le nom du champ par rapport au champ constant que nous ne voulons pas utiliser dans le programme. Le tableau suivant montre la liste des paramètres qui peuvent être utilisés dans une macro DFHMDF -

Sr.Non Paramètre et description
1

POS

Il s'agit de la position sur l'écran où le champ doit apparaître. Un champ commence par son octet d'attribut, donc si vous codez POS = (1,1), l'octet d'attribut pour ce champ est sur la ligne 1 dans la colonne 1, et les données réelles commencent dans la colonne 2.

2

LENGTH

Il s'agit de la longueur du champ, sans compter l'octet d'attribut.

3

INITIAL

Il s'agit des données de caractère pour un champ de sortie. Nous l'utilisons pour spécifier les étiquettes et les titres de l'écran et les garder indépendants du programme. Pour le premier champ de l'écran de menu, par exemple, nous coderons: INITIAL = 'MENU'.

4

JUSTIFY

Il est utilisé pour spécifier la carte entière ou les champs de la carte à justifier à gauche ou à droite.

5

ATTRB

ATTRB = (ASKIP / PROT / UNPROT, NUM, BRT / NORM / DRK, IC, FSET) Il décrit les attributs du champ.

ASKIP - Autoskip. Les données ne peuvent pas être saisies dans ce champ. Le curseur passe au champ suivant.

PROT - Champ protégé. Les données ne peuvent pas être saisies dans ce champ. Si des données sont entrées, cela provoquera l'état d'inhibition d'entrée.

UNPROT - Champ non protégé. Les données peuvent être saisies et elles sont utilisées pour tous les champs de saisie.

NUM - Champ numérique. Seuls les nombres (0 à 9) et les caractères spéciaux («.» Et «-») sont autorisés.

BRT - Affichage lumineux d'un champ (surbrillance).

NORM - Affichage normal.

DRK - Affichage sombre.

IC - Insérer le curseur. Le curseur sera positionné dans ce champ. Dans le cas où IC est spécifié plus d'une fois, le curseur est placé dans le dernier champ.

FSET - Ensemble de champs. MDT est activé de sorte que les données de champ doivent être envoyées du terminal à l'ordinateur hôte indépendamment du fait que le champ soit réellement modifié par l'utilisateur.

6

PICIN

PICIN s'applique au champ de données qui est utilisé comme entrée comme PICIN = 9 (8).

sept

PICOUT

PICIN s'applique au champ de données qui est utilisé comme sortie comme PICOUT = Z (8).

Exemple

L'exemple suivant montre comment coder une définition de champ -

DFHMDF POS = (01,01), X
   LENGTH = 7, X
   INITIAL = ‘SCREEN1’, X
      ATTRB = (PROT,NORM)
      STDID DFHMDF POS = (01,70), X
      LENGTH = 08, X
      ATTRB = (PROT,NORM)