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 =
MAP - Physische Karte erstellt wird
DSECT - Symbolische Karte wird erstellt
&& SYSPARM - Physisch & Symbolisch, werden beide ENDGÜLTIG erstellt
- Um das Ende einer Kartensatzcodierung anzuzeigen.

2

MODE

MODE wird verwendet, um Eingabe- / Ausgabeoperationen anzuzeigen. IF MODE =
IN - Nur für eine Eingabekarte
OUT - Nur für eine Ausgabekarte
INOUT Sowohl für die Eingabe- als auch für die Ausgabekarte

3

LANG

LANG = ASM / COBOL / PL1
Legt die Sprache der DSECT-Struktur für das Kopieren in das Anwendungsprogramm fest.

4

STORAGE

Wenn STORAGE =
AUTO - Um einen separaten symbolischen Kartenbereich für jedes Kartenset zu erhalten.
BASE - Um dieselbe Speicherbasis für die symbolischen Karten von mehr als einem Kartensatz zu haben

5

CTRL

CRTL wird verwendet, um die Gerätesteuerungsanforderungen zu definieren. Wenn
STRG = FREEKB - Zum Entsperren der Tastatur
FRSET - Zum Zurücksetzen des MDT auf den Nullstatus
ALARM - Zum Einstellen eines Alarms zur Bildschirmanzeigezeit
DRUCKEN - Zum Anzeigen des an den Drucker zu sendenden Kartensatzes.

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
YES - Zum Reservieren des Präfixbereichs (12 Byte) für BMS-Befehle, um ordnungsgemäß auf TIOA zuzugreifen. Erforderlich für die CICS-Befehlsebene.

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)
Dieser Parameter gibt die Größe der Karte an. Mit BMS können wir einen Bildschirm mit mehreren Karten erstellen. Dieser Parameter wird wichtig, wenn wir mehr als eine Karte in einem einzelnen Kartensatz verwenden.

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
STRG = FREEKB - Entsperren der Tastatur
FRSET - Zurücksetzen des MDT auf den Nullstatus
ALARM - Einstellen eines Alarms zur Bildschirmanzeigezeit
DRUCKEN - Anzeigen der an den Drucker zu sendenden Karte

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)