CICS - BMS

O BMS é conhecido como suporte de mapeamento básico. Um aplicativo consiste em telas formatadas que atuam como uma ponte entre o terminal e os programas CICS. Para que a comunicação ocorra entre o terminal e os programas CICS, usamos os serviços de entrada / saída do terminal CICS. Usamos o BMS para criar designs de tela com posições e atributos adequados. A seguir estão as funções do BMS -

  • O BMS atua como uma interface entre o terminal e os programas CICS.

  • O design e o formato da tela são separados da lógica de aplicação.

  • O BMS torna o hardware do aplicativo independente.

Tela formatada

A tela mostrada abaixo é uma tela de menu e pode ser projetada usando BMS. Seus pontos principais são os seguintes -

  • A tela pode ter um título, data e qualquer outra informação a ser exibida.

  • As opções 1, 2 e 3 são os campos sem nome que são os títulos da tela.

  • No campo Seleção, precisamos fornecer a entrada. Essa entrada é então enviada ao programa CICS para processamento adicional.

  • Na parte inferior da tela, as teclas de ação são exibidas.

  • Todos os campos e a própria tela são definidos com macros BMS. Quando todo o mapa é definido, podemos usar JCL para montá-lo.

Termos Básicos BMS

A seguir estão os termos básicos que usaremos nos próximos módulos -

Mapa

O mapa é um formato de tela única que pode ser projetado usando macros BMS. Ele pode ter nomes contendo de 1 a 7 caracteres.

Mapset

Mapset é uma coleção de mapas que são vinculados para formar um módulo de carregamento. Deve ter uma entrada PPT. Ele pode ter nomes de 1 a 7 caracteres.

Macros BMS

O mapa BMS é um programa escrito em linguagem Assembly para gerenciar telas. As três macros usadas para definir a tela são DFHMSD, DFHMDI e DFHMDF.

DFHMSD

A macro DFHMSD gera definição de Mapset. É um identificador de macro que mostra que estamos iniciando um mapset. O nome do mapset é o nome do módulo de carregamento e uma entrada na tabela PPT deve estar presente. A tabela a seguir mostra a lista de parâmetros que podem ser usados ​​em DFHMSD -

Sr. Não Parâmetro e Descrição
1

TYPE

TYPE é usado para definir o tipo de mapa. Se TYPE =
MAP - Mapa físico é criado
DSECT - Mapa simbólico é criado
&& SYSPARM - Físico e Simbólico, ambos são criados
FINAL - Para indicar o fim de uma codificação de mapset.

2

MODE

MODE é usado para indicar operações de entrada / saída. IF MODE =
IN - Para um mapa de entrada apenas
OUT - Para um mapa de saída apenas
INOUT Para ambos os mapas de entrada e saída

3

LANG

LANG = ASM / COBOL / PL1
Decide o idioma da estrutura DSECT, para cópia no programa aplicativo.

4

STORAGE

Se ARMAZENAMENTO =
AUTO - Para adquirir uma área de mapa simbólica separada para cada conjunto de mapas
BASE - Ter a mesma base de armazenamento para os mapas simbólicos de mais de um conjunto de mapas

5

CTRL

CRTL é usado para definir as solicitações de controle do dispositivo. Se CTRL =
FREEKB - Para desbloquear o teclado
FRSET - Para redefinir o MDT para o status zero
ALARM - Para definir um alarme no tempo de exibição da tela
PRINT - Para indicar o mapset a ser enviado para a impressora.

6

TERM

TERM = tipo garante a independência do dispositivo, necessária se outro terminal diferente de 3270 estiver sendo usado.

7

TIOAPFX

TIOAPFX = SIM / NÃO
SIM - Para reservar o espaço do prefixo (12 bytes) para comandos BMS para acessar TIOA corretamente. Requerido para o nível de comando CICS.

Exemplo

O exemplo a seguir mostra como codificar uma definição 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

A macro DFHMDI gera definições de mapa. Mostra que estamos iniciando um novo mapa. Mapname é seguido pela macro DFHMDI. Mapname é usado para enviar ou receber mapas. A tabela a seguir mostra os parâmetros que usamos dentro de uma macro DFHMDI -

Sr. Não Parâmetro e Descrição
1

SIZE

SIZE = (linha, coluna)
Este parâmetro fornece o tamanho do mapa. O BMS nos permite construir uma tela usando vários mapas, e este parâmetro torna-se importante quando estamos usando mais de um mapa em um único mapset.

2

LINE

Indica o número da linha inicial do mapa.

3

COLUMN

Indica o número da coluna inicial do mapa.

4

JUSTIFY

É usado para especificar o mapa inteiro ou os campos do mapa a serem justificados à esquerda ou à direita.

5

CTRL

CRTL é usado para definir as solicitações de controle do dispositivo. Se CTRL =
FREEKB - Para desbloquear o teclado
FRSET - Para redefinir o MDT para o status zero
ALARME - Para definir um alarme no tempo de exibição da tela
PRINT - Para indicar o mapa a ser enviado à impressora

6

TIOAPFX

TIOAPFX = SIM / NÃO

SIM - Para reservar o espaço de prefixo (12 bytes) para comandos BMS para acessar TIOA corretamente. Requerido para o nível de comando CICS.

Exemplo

O exemplo a seguir mostra como codificar uma definição de mapa -

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

DFHMDF

A macro DFHMDF é usada para definir nomes de campo. O nome do campo é mencionado com relação ao qual a macro DFHMDF é codificada. Este nome de campo é usado dentro do programa. Não escrevemos o nome do campo contra o campo constante que não queremos usar dentro do programa. A tabela a seguir mostra a lista de parâmetros que podem ser usados ​​dentro de uma macro DFHMDF -

Sr. Não Parâmetro e Descrição
1

POS

Esta é a posição na tela onde o campo deve aparecer. Um campo começa com seu byte de atributo, portanto, se você codificar POS = (1,1), o byte de atributo para esse campo está na linha 1 na coluna 1 e os dados reais começam na coluna 2.

2

LENGTH

Este é o comprimento do campo, sem contar o byte de atributo.

3

INITIAL

Estes são os dados de caractere para um campo de saída. Usamos isso para especificar rótulos e títulos para a tela e mantê-los independentes do programa. Para o primeiro campo na tela do menu, por exemplo, iremos codificar: INITIAL = 'MENU'.

4

JUSTIFY

É usado para especificar o mapa inteiro ou os campos do mapa a serem justificados à esquerda ou à direita.

5

ATTRB

ATTRB = (ASKIP / PROT / UNPROT, NUM, BRT / NORM / DRK, IC, FSET) Descreve os atributos do campo.

ASKIP - Autoskip. Os dados não podem ser inseridos neste campo. O cursor pula para o próximo campo.

PROT - Campo protegido. Os dados não podem ser inseridos neste campo. Se os dados forem inseridos, isso causará o status de inibição de entrada.

UNPROT - Campo desprotegido. Os dados podem ser inseridos e isso é usado para todos os campos de entrada.

NUM - campo numérico. Apenas números (0 a 9) e caracteres especiais ('.' E '-') são permitidos.

BRT - Exibição brilhante de um campo (destaque).

NORM - exibição normal.

DRK - Visor escuro.

IC - Inserir cursor. O cursor ficará posicionado neste campo. Caso IC seja especificado mais de uma vez, o cursor é colocado no último campo.

FSET - Conjunto de campo. O MDT é definido para que os dados do campo sejam enviados do terminal para o computador host, independentemente de o campo ter sido realmente modificado pelo usuário.

6

PICIN

PICIN aplica-se ao campo de dados que é usado como entrada como PICIN = 9 (8).

7

PICOUT

PICIN se aplica ao campo de dados que é usado como saída como PICOUT = Z (8).

Exemplo

O exemplo a seguir mostra como codificar uma definição de campo -

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)