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 = |
2 | MODE MODE est utilisé pour indiquer les opérations d'entrée / sortie. IF MODE = |
3 | LANG LANG = ASM / COBOL / PL1 |
4 | STORAGE Si STORAGE = |
5 | CTRL CRTL est utilisé pour définir les demandes de contrôle des périphériques. Si CTRL = |
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 |
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) |
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 = |
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)