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 = |
2 | MODE MODE é usado para indicar operações de entrada / saída. IF MODE = |
3 | LANG LANG = ASM / COBOL / PL1 |
4 | STORAGE Se ARMAZENAMENTO = |
5 | CTRL CRTL é usado para definir as solicitações de controle do dispositivo. Se CTRL = |
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 |
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) |
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 = |
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)