CICS - BMS
BMS wird als Basic Mapping Support bezeichnet. Eine Anwendung besteht aus formatierten Bildschirmen, die als Brücke zwischen dem Terminal und den CICS-Programmen fungieren. Für die Kommunikation zwischen dem Terminal und den CICS-Programmen verwenden wir CICS-Terminal-Eingabe- / Ausgabedienste. Wir verwenden BMS, um Bildschirmdesigns mit den richtigen Positionen und Attributen zu erstellen. Es folgen die Funktionen von BMS -
BMS fungiert als Schnittstelle zwischen dem Terminal und den CICS-Programmen.
Das Design und Format des Bildschirms unterscheidet sich von der Anwendungslogik.
BMS macht die Anwendungshardware unabhängig.
Formatierter Bildschirm
Der unten gezeigte Bildschirm ist ein Menübildschirm und kann mit BMS gestaltet werden. Die wichtigsten Punkte sind:
Der Bildschirm kann einen Titel, ein Datum und andere Informationen enthalten, die angezeigt werden sollen.
Die Optionen 1, 2 und 3 sind die unbenannten Felder, die die Titel des Bildschirms sind.
Im Feld Auswahl müssen wir die Eingabe bereitstellen. Diese Eingabe wird dann zur weiteren Verarbeitung an das CICS-Programm gesendet.
Am unteren Bildschirmrand werden Aktionstasten angezeigt.
Alle Felder und der Bildschirm selbst werden mit BMS-Makros definiert. Wenn die gesamte Karte definiert ist, können wir sie mit JCL zusammenstellen.
BMS-Grundbedingungen
Im Folgenden sind die Grundbegriffe aufgeführt, die wir in den kommenden Modulen verwenden werden:
Karte
Map ist ein Einzelbildschirmformat, das mithilfe von BMS-Makros erstellt werden kann. Es kann Namen mit 1 bis 7 Zeichen enthalten.
Mapset
Mapset ist eine Sammlung von Maps, die zu einem Lademodul verknüpft sind. Es sollte einen PPT-Eintrag haben. Es kann Namen von 1 bis 7 Zeichen haben.
BMS-Makros
BMS Map ist ein Programm, das in Assemblersprache geschrieben ist, um Bildschirme zu verwalten. Die drei Makros, die zum Definieren des Bildschirms verwendet werden, sind DFHMSD, DFHMDI und DFHMDF.
DFHMSD
Das DFHMSD-Makro generiert eine Mapset-Definition. Es ist eine Makro-ID, die zeigt, dass wir ein Mapset starten. Der Mapset-Name ist der Name des Lademoduls und ein Eintrag in der PPT-Tabelle muss vorhanden sein. Die folgende Tabelle zeigt die Liste der Parameter, die in DFHMSD verwendet werden können -
Sr.Nr. | Parameter & Beschreibung |
---|---|
1 | TYPE TYPE wird verwendet, um den Kartentyp zu definieren. Wenn TYPE = |
2 | MODE MODE wird verwendet, um Eingabe- / Ausgabeoperationen anzuzeigen. IF MODE = |
3 | LANG LANG = ASM / COBOL / PL1 |
4 | STORAGE Wenn STORAGE = |
5 | CTRL CRTL wird verwendet, um die Gerätesteuerungsanforderungen zu definieren. Wenn |
6 | TERM TERM = Typ stellt die Geräteunabhängigkeit sicher, die erforderlich ist, wenn ein anderes als das 3270-Terminal verwendet wird. |
7 | TIOAPFX TIOAPFX = YES / NO |
Beispiel
Das folgende Beispiel zeigt, wie eine Mapset-Definition codiert wird:
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
Das DFHMDI-Makro generiert Kartendefinitionen. Es zeigt, dass wir eine neue Karte starten. Auf Mapname folgt das DFHMDI-Makro. Der Kartenname wird zum Senden oder Empfangen von Karten verwendet. Die folgende Tabelle zeigt die Parameter, die wir in einem DFHMDI-Makro verwenden -
Sr.Nr. | Parameter & Beschreibung |
---|---|
1 | SIZE GRÖSSE = (Linie, Spalte) |
2 | LINE Es zeigt die Startzeilennummer der Karte an. |
3 | COLUMN Es gibt die Startspaltennummer der Karte an. |
4 | JUSTIFY Es wird verwendet, um die gesamte Karte oder die Kartenfelder anzugeben, die links oder rechts ausgerichtet werden sollen. |
5 | CTRL CRTL wird verwendet, um die Gerätesteuerungsanforderungen zu definieren. Wenn |
6 | TIOAPFX TIOAPFX = JA / NEIN JA - Um den Präfixbereich (12 Byte) für BMS-Befehle zu reservieren, damit diese ordnungsgemäß auf TIOA zugreifen können. Erforderlich für die CICS-Befehlsebene. |
Beispiel
Das folgende Beispiel zeigt, wie eine Kartendefinition codiert wird -
MAPSTD DFHMDI SIZE = (20,80), X
LINE = 01, X
COLUMN = 01, X
CTRL = (FREEKB,FRSET)
DFHMDF
Das DFHMDF-Makro wird zum Definieren von Feldnamen verwendet. Der Feldname wird angegeben, für den das DFHMDF-Makro codiert ist. Dieser Feldname wird im Programm verwendet. Wir schreiben keinen Feldnamen gegen ein konstantes Feld, das wir nicht im Programm verwenden möchten. Die folgende Tabelle zeigt die Liste der Parameter, die in einem DFHMDF-Makro verwendet werden können.
Sr.Nr. | Parameter & Beschreibung |
---|---|
1 | POS Dies ist die Position auf dem Bildschirm, an der das Feld angezeigt werden soll. Ein Feld beginnt mit seinem Attributbyte. Wenn Sie also POS = (1,1) codieren, befindet sich das Attributbyte für dieses Feld in Zeile 1 in Spalte 1, und die tatsächlichen Daten beginnen in Spalte 2. |
2 | LENGTH Dies ist die Länge des Feldes ohne das Attributbyte. |
3 | INITIAL Dies sind die Zeichendaten für ein Ausgabefeld. Wir verwenden dies, um Beschriftungen und Titel für den Bildschirm anzugeben und sie unabhängig vom Programm zu halten. Für das erste Feld im Menübildschirm codieren wir beispielsweise: INITIAL = 'MENU'. |
4 | JUSTIFY Es wird verwendet, um die gesamte Karte oder die Kartenfelder anzugeben, die links oder rechts ausgerichtet werden sollen. |
5 | ATTRB ATTRB = (ASKIP / PROT / UNPROT, NUM, BRT / NORM / DRK, IC, FSET) Beschreibt die Attribute des Feldes. ASKIP - Autoskip. In dieses Feld können keine Daten eingegeben werden. Der Cursor springt zum nächsten Feld. PROT - Geschütztes Feld. In dieses Feld können keine Daten eingegeben werden. Wenn Daten eingegeben werden, wird der Status der Eingabesperre ausgelöst. UNPROT - Ungeschütztes Feld. Es können Daten eingegeben werden, die für alle Eingabefelder verwendet werden. NUM - Numerisches Feld. Es sind nur Zahlen (0 bis 9) und Sonderzeichen ('.' Und '-') zulässig. BRT - Helle Anzeige eines Feldes (Hervorhebung). NORM - Normale Anzeige. DRK - Dunkle Anzeige. IC - Cursor einfügen. Der Cursor wird in diesem Feld positioniert. Wenn IC mehrmals angegeben wird, wird der Cursor in das letzte Feld gesetzt. FSET - Feldsatz. MDT ist so eingestellt, dass die Felddaten vom Terminal an den Host-Computer gesendet werden sollen, unabhängig davon, ob das Feld tatsächlich vom Benutzer geändert wird. |
6 | PICIN PICIN gilt für das Datenfeld, das als Eingabe wie PICIN = 9 (8) verwendet wird. |
7 | PICOUT PICIN gilt für das Datenfeld, das als Ausgabe wie PICOUT = Z (8) verwendet wird. |
Beispiel
Das folgende Beispiel zeigt, wie eine Felddefinition codiert wird -
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)