Segunda, Abril 06, 2020

O comando EXEC CICS RECEIVE MAP lê a tela enviada pelo terminal. 

A sintaxe básica deste comando é:

       EXEC CICS RECEIVE

          MAP(nome-do-mapa)

          MAPSET(nome-do-mapset)

          INTO(area)

       END-EXEC.

Parâmetros pouco usados do comando:

  • SET(pointer)
  • FROM (area)
  • LENGTH(compr)

Descrição dos parâmetros:

MAP(nome) Informa o nome da tela a ser enviada (definido pela macro DFHMDI).
MAPSET(nome) Informa o nome do MAPSET (definido pela macro DFHMSD).
INTO(area) Nome da área da working-storage para receber os dados da tela. (<mapa>I).
SET(pointer) Esta opção é uma alternativa ao parâmetro INTO para tratamento dos dados da tela diretamente no bufer do CICS. Veja observações abaixo.
FROM(area) Este parâmetro aponta para uma área contendo os dados da tela que serão mapeados, quando estes dados não estão na tabela TCT.
LENGTH(compr) Usado com o parâmetro FROM, contem o tamanho da área de dados. A variável compr deve ter formato S9(4) COMP.

Argumento SET(pointer).

É usado para se acessar os dados da tela diretamente no bufer do CICS. Para isso é necessário definir a área copy gerada pelo mapa BMS na LINKAGE SECTION do programa Cobol. O comando EXEC CICS RECEIVE deve endereçar esta área como no exemplo abaixo:

    LINKAGE SECTION.

    COPY ´TELA´.

1 TELAI.

2 ....................

    PROCEDURE DIVISION.

         EXEC CICS RECEIVE MAP(..................

             SET(ADDRESS OF TELAI)

         END-EXEC.

 

Erros do comando(HANDLE CONDITION)

MAPFAIL Ocorre quando a tela lida não está formatada (não tem campos com atributos).

 

Condições: EOC, EODS, INVMPSZ, INVPARTN, INVREQ, MAPFAIL, PARTNFAIL, RDATT, UNEXPIN

 

Descrição

RECEIVE MAP mapeia os dados de entrada de um terminal para uma área de dados em um programa aplicativo.

 

Os dados de determinadas unidades lógicas não são mapeados, mas permanecem inalterados. Consulte o guia do subsistema CICS apropriado para ver se isso é verdade para uma unidade lógica específica.

 

Após um comando RECEIVE MAP, a posição do cursor de entrada é colocada no EIBCPOSN e o identificador de atenção do terminal (AID) colocado no EIBAID.

 

Para receber dados, você deve especificar a opção INTO ou SET. Se um RECEIVE for emitido exclusivamente para detectar um identificador de atenção (AID), você poderá omitir as opções INTO e SET.

 

Opções:

 

ASIS

especifica que caracteres minúsculos no fluxo de dados de entrada 3270 não são traduzidos para maiúsculas; isso permite que a tarefa atual receba uma mensagem contendo dados em maiúsculas e minúsculas.

Esta opção não tem efeito no primeiro comando RECEIVE de uma transação ou se a tela contiver dados antes de uma transação ser iniciada. Por exemplo, se uma transação for iniciada por outra transação e começar recebendo dados originalmente produzidos por essa transação, ela não poderá suprimir a conversão em maiúscula nos dados. Esses dados são lidos e traduzidos em preparação para a próxima tarefa e o primeiro comando RECEIVE nessa tarefa recupera os dados traduzidos.

 

FROM(data-area)

especifica a área de dados que contém os dados a serem mapeados por um comando RECEIVE MAP. Isso inclui o prefixo de 12 bytes gerado pela opção TIOAPFX = YES nas definições de mapa DFHMDI e DFHMSD BMS (consulte Operandos DFHMDI, TERM e especificando NODDS no operando BMS ).

 

INPARTN(name)

especifica o nome (1 a 2 caracteres) da partição na qual o operador do terminal deve inserir dados. Se o operador do terminal digitar dados em alguma outra partição, a partição INPARTN será ativada, o teclado será desbloqueado para a partição e uma mensagem de erro será exibida em qualquer partição de mensagem de erro. Esta opção é ignorada se o terminal não suportar partições ou se não houver uma partição de aplicativo definida.

 

INTO(data-area)

especifica a área de dados na qual os dados mapeados devem ser gravados. Se esse campo não for especificado, o nome padrão será o nome do mapa com o sufixo I.

 

LENGTH(data-value)

especifica o comprimento dos dados a serem formatados como um valor binário de meia palavra. Ele não deve exceder o comprimento da área de dados FROM, mas deve incluir o comprimento do prefixo de 12 bytes gerado pela opção TIOAPFX = YES nas definições de mapa DFHMDI e DFHMSD BMS (consulte Operandos DFHMDI, TERM e especificando NODDS no Operando BMS ).

Para obter uma descrição de um limite superior seguro, consulte Opções de COMPRIMENTO nos comandos do CICS .

 

MAP(name)

especifica o nome (1 a 7 caracteres) do mapa a ser usado.

 

MAPSET (name)

especifica o nome não substituído (1 a 7 caracteres) do conjunto de mapas a ser usado. O conjunto de mapas deve residir na biblioteca de programas do CICS. O conjunto de mapas pode ser definido usando o RDO ou a instalação automática do programa quando o conjunto de mapas é usado pela primeira vez. Se essa opção não for especificada, o nome fornecido na opção MAP é assumido como sendo o do conjunto de mapas.

 

SET(ptr-ref)

especifica o ponteiro que deve ser definido como o endereço do prefixo de 12 bytes para os dados mapeados. O prefixo de 12 bytes é gerado pela opção TIOAPFX = YES nas definições de mapa DFHMDI e DFHMSD BMS (consulte Operandos DFHMDI, TERM e especificando NODDS no operando BMS ).

A referência do ponteiro é válida até o próximo comando de recebimento ou o fim da tarefa.

 

Se DATALOCATION (QUALQUER) estiver associado ao programa aplicativo, o endereço dos dados poderá estar acima ou abaixo da linha de 16 MB. A área de dados inclui o prefixo de 12 bytes. Verifique se o prefixo de 12 bytes não é substituído, pois isso pode causar uma violação de armazenamento.

 

Se DATALOCATION (ABAIXO) estiver associado ao programa de aplicativo e os dados residirem acima da linha de 16 MB, os dados serão copiados abaixo da linha de 16 MB e o endereço desta cópia será retornado.

 

Se TASKDATAKEY (USER) for especificado para a tarefa em execução e a proteção de armazenamento estiver ativa, os dados retornados estarão em uma chave de usuário. Se TASKDATAKEY (CICS) for especificado e a proteção de armazenamento estiver ativa, os dados retornados estarão em uma chave do CICS.

 

TERMINAL

especifica que os dados de entrada devem ser lidos no terminal que originou a transação.

 

Condições

Algumas das seguintes condições podem ocorrer em combinação. Se mais de um ocorrer, apenas o primeiro será passado para o programa aplicativo.

EIBRCODE, no entanto, está configurado para indicar todas as condições que ocorreram.

 

06 EOC

ocorre se a unidade de solicitação / resposta (RU) for recebida com o conjunto de indicadores de fim de cadeia (EOC). Aplica-se apenas a unidades lógicas.

Ação padrão: ignore a condição.

 

05 EODS

ocorre se nenhum dado for recebido (apenas um FMH). Aplica-se apenas às LUs de lote 3770 e às LUs de troca de dados em lote 3770 e 3790.

Ação padrão: finalize a tarefa de forma anormal.

 

38 INVMPSZ

ocorre se o mapa especificado for muito amplo ou muito longo para o terminal.

Ação padrão: finalize a tarefa de forma anormal.

 

65 INVPARTN

ocorre se a partição especificada não estiver definida no conjunto de partições associado ao programa de aplicativo.

Ação padrão: finalize a tarefa de forma anormal.

 

16 INVREQ

ocorre se um comando RECEIVE MAP for emitido em uma tarefa não-terminal; essas tarefas não possuem um TIOA ou um TCTTE.

Ação padrão: finalize a tarefa de forma anormal.

 

36 MAPFAIL

ocorre se os dados a serem mapeados tiverem um comprimento igual a zero ou não contiver uma sequência de conjunto de buffer-endereço (SBA). Aplica-se apenas a dispositivos 3270. A área de dados de recebimento contém o fluxo de dados de entrada não mapeado. A quantidade de dados não mapeados movidos para a área do usuário é limitada ao comprimento especificado na opção COMPRIMENTO. O mapa de entrada não está definido como nulo.

Essa condição também surge se um programa emite um comando RECEIVE MAP ao qual o operador do terminal responde pressionando uma tecla CLEAR ou PA, ou pressionando ENTER ou uma tecla de função sem inserir dados.

Ação padrão: finalize a tarefa de forma anormal.

 

66 PARTNFAIL

ocorre se o operador do terminal tentar inserir dados mais de três vezes em uma partição diferente daquela especificada pela opção INPARTN.

Ação padrão: finalize a tarefa de forma anormal.

 

02 RDATT

ocorre se um comando RECEIVE MAP for encerrado pelo operador usando a tecla ATTN em vez da tecla RETURN. Aplica-se apenas ao 2741 Communications Terminal e apenas se o suporte à atenção de leitura 2741 tiver sido gerado para o CICS.

Ação padrão: ignore a condição.

 

49 UNEXPIN

ocorre quando dados inesperados ou não reconhecidos são recebidos. Isso se aplica apenas aos terminais de intercâmbio de dados em lote.

Ação padrão: finalize a tarefa de forma anormal.

 

ABEND code

CICS - Customer Information Control Syst…

CICS significa Sistema de Controle de Informações do Cliente (Customer Information Control System), ou simplesmente CICS®, é um monitor de transações utilizado inicialmente nos sistemas operacionais z/OS e z/VSE dos...

Command Level

O Command Level é um conjunto de comandos usados em programas COBOL ou ASSEMBLER para fazer a interação com os módulos do Cics (PCP, TCP, FCP etc.). A sintaxe básica...

Construção de um mapa BMS

As telas do Mainframe são escritas em uma linguagem fonte chamada BMS. O mapa BMS para descrever uma tela deve ser codificado usando a sintaxe do Assembler do Mainframe. Nesta...

DFHMDF

A macro DFHMDF define os atributos sobre a tela. É necessario uma macro DFHMDF para cada atributo da tela. Como exemplo, suponhamos que na coluna 10 de uma tela desejamos criar...

DFHMDI

A sintaxe desta macro é   Mapa DFHMDI argumentos Mapa (Na coluna 1) é o nome da tela. Este nome será usado nos programas para leitura e gravação da tela.  Os argumentos da macro...

DFHMSD

A sintaxe desta macro é   Label DFHMSD argumentos O Label desta macro define o nome do mapset. Ele deverá ser usado nos programas dentro dos comandos de leitura e gravação da tela. Os...

EXEC CICS ABEND

ABEND   O comando ABEND encerra uma tarefa de forma anormal.   O CICS libera o armazenamento principal associado à tarefa finalizada; opcionalmente, você pode obter um despejo de transação desse armazenamento.   A chamada do...

EXEC CICS ADDRESS

Descrição: ADDRESS ​​acessa as seguintes áreas: O elemento do ambiente de controle de acesso (ACEE) A área de comunicação disponível para o programa invocado (COMMAREA) A área de trabalho comum (CWA) O bloco de interface...

EXEC CICS ASSIGN

O comando ASSIGN obtém valores de fora do ambiente local do programa de aplicativo. Os dados obtidos dependem das opções especificadas. Você pode especificar até 16 opções em um comando...

EXEC CICS BIF DEEDIT

Descrição O BIF DEEDIT fornece a função incorporada DEEDIT. Ele especifica que caracteres alfabéticos e especiais são removidos de um campo de dados EBCDIC e os dígitos restantes alinhados à direita...

EXEC CICS HANDLE ABEND

HANDLE ABEND   Condições: NOTAUTH, PGMIDERR (apenas PROGRAMA)   Descrição Use o comando HANDLE ABEND para ativar, cancelar ou reativar uma saída para processamento de finalização anormal. Você pode suspender o comando usando os comandos...

EXEC CICS HANDLE CONDITION

Descrição Use o comando HANDLE CONDITION para especificar o rótulo para o qual o controle deve ser passado se ocorrer uma condição. Você deve incluir o nome da condição e, opcionalmente,...

EXEC CICS IGNORE CONDITION

Use o comando IGNORE CONDITION para especificar que nenhuma ação será executada se ocorrer uma condição (ou seja, o controle retornará à instrução após o comando que falhou na execução...

EXEC CICS READ

READ lê um registro de um arquivo em um sistema local ou remoto.   Para comandos UPDATE e não UPDATE, você deve identificar o registro a ser recuperado pelo campo de identificação...

EXEC CICS RECEIVE MAP

O comando EXEC CICS RECEIVE MAP lê a tela enviada pelo terminal.  A sintaxe básica deste comando é:        EXEC CICS RECEIVE           MAP(nome-do-mapa)        ...

EXEC CICS SEND MAP

O comando EXEC CICS SEND MAP envia a tela para o terminal.  Existem 2 formas basicas para este comando: A primeira é usada no inicio do processamento para enviar para o...

Retorno dos comandos

Cada um dos comandos acima possui um conjunto especifico de condições de retorno. Por exemplo o comando: EXEC CICS READ(CLIENTE)  RIDFLD(CODCLI) END-EXEC Pode retornar situações como: Erro Código do erro Registro não encontrado NOTFND Arquivo não está...