123
CICS Comandos

CICS_Comandos

Embed Size (px)

Citation preview

Page 1: CICS_Comandos

CICS

Comandos

NOV/2004

Page 2: CICS_Comandos

SUMÁRIO

24 – COMANDOS PARA ENVIAR E RECEBER MAPAS..................................................................................................3

RECEIVE MAP......................................................................................................................................................................3SEND MAP.............................................................................................................................................................................6

25 – COMANDOS PARA TRATAMENTO DE ARQUIVOS.............................................................................................10

DELETE................................................................................................................................................................................12ENDBR.................................................................................................................................................................................14READ....................................................................................................................................................................................15READNEXT.........................................................................................................................................................................18READPREV..........................................................................................................................................................................21RESETBR.............................................................................................................................................................................24REWRITE.............................................................................................................................................................................26STARTBR.............................................................................................................................................................................28UNLOCK..............................................................................................................................................................................30WRITE..................................................................................................................................................................................31

26 – COMANDOS PARA TRANSFERÊNCIA DE CONTROLE ENTRE PROGRAMAS...........................................33

LINK.....................................................................................................................................................................................34RETURN...............................................................................................................................................................................38XCTL....................................................................................................................................................................................40EXEMPLO DE PROGRAMA COM DIVERSAS FUNÇÕES CICS....................................................................................................42EXEMPLO DE PROGRAMA COM LINK....................................................................................................................................43EXEMPLO DE PROGRAMA COM PASSAGEM DE DADOS VIA RETURN...................................................................................44

27 – COMANDOS PARA MANIPULAÇÃO DE TS / TD..................................................................................................45

DELETEQ.............................................................................................................................................................................45READQ TD...........................................................................................................................................................................47READQ TS...........................................................................................................................................................................49WRITEQ TD.........................................................................................................................................................................52WRITEQ TS..........................................................................................................................................................................54

28 – OUTROS COMANDOS.................................................................................................................................................56

ASKTIME.............................................................................................................................................................................56ASSIGN................................................................................................................................................................................56BIF DEEDIT.........................................................................................................................................................................56FORMATTIME....................................................................................................................................................................57HANDLE ABEND................................................................................................................................................................60HANDLE AID......................................................................................................................................................................62HANDLE CONDITION.......................................................................................................................................................64IGNORE CONDITION........................................................................................................................................................65POP HANDLE......................................................................................................................................................................66PUSH HANDLE...................................................................................................................................................................66SEND....................................................................................................................................................................................66SYNCPOINT........................................................................................................................................................................67

APÊNDICES............................................................................................................................................................................68

EXEC INTERFACE BLOCK - EIB FIELDS...............................................................................................................................69RESUMO COMANDOS CICS....................................................................................................................................................78EIBRESP CODES (COVERS CODES PRODUCED FROM I/O CALLS).........................................................................................83RETORNOS / HANDLE CONDITIONS.......................................................................................................................................84ASSIGN’S : INFORMAÇÕES QUE PODEM SER OBTIDAS..........................................................................................................86ABENDS MAIS COMUNS DO CICS........................................................................................................................................88

2

Page 3: CICS_Comandos

24 – Comandos para enviar e receber mapas

RECEIVE MAP

Recebe dados digitados em uma área de um programa aplicativo.A posição do cursor após o RECEIVE MAP é colocada em EIBCPOSN, e o terminal attention identifier (AID) é colocado em EIBAID. Se dados devem ser recebidos, deve-se especificar opção INTO ou SET. Se o RECEIVE foi emitido somente para detectar o attention identifier (AID), pode-se omitir tanto o INTO quanto o SET.

Sintaxe

EXEC CICS RECEIVE MAP() < SET() | INTO() > < MAPSET() > < FROM() < LENGTH() > < MAPPINGDEV() < AID() > < CURSOR() > > | TERMINAL < ASIS > < INPARTN() > >END-EXEC

Parâmetros

ASIS Indica que o que for digitado em minúsculo não deve ser convertido para maiúsculo (não se aplica ao primeiro RECEIVE de uma transação ou se a tela tem dados antes de a transação ser iniciada).

FROM(data-area) Indica a área de dados que contém os dados a serem mapeados. Isto deve incluir o prefixo de 12 bytes gerado pelo parâmetro TIOAPFX=YES das macros DFHMDI e DFHMSD.

INPARTN(name) Somente para terminais que suportam partições (indica o nome, com 1 a 2 caracteres, da partição na qual o operador do terminal deve digitar os dados).

INTO(data-area) Indica o nome da área onde os dados devem ser colocados. Se não for especificado, o nome default é o nome do mapa sufixado da letra I.

LENGTH(data-value)Indica o tamanho da área (colocado em uma half-word). Não deve ser maior que o tamanho especificado no parâmetro FROM, mas o LENGTH deve incluir os 12 bytes de prefixo gerados pelo TIOAPFX=YES nas macros DFHMDI e DFHMSD.

MAP(name) Indica o nome do mapa (1-7 caracteres).

MAPSET(name) Indica o nome do mapset (1-7 caracteres).

SET(ptr-ref)

3

Page 4: CICS_Comandos

Indica o ponteiro que deve ser posicionado com o endereço do prefixo de 12 bytes da área de dados do mapa. A referência é válida até o próximo receive ou o fim da task.

TERMINAL Indica que os dados de entrada devem ser lidos do terminal que originou a transação.

Exemplos

EXEC CICS RECEIVE INTO (WS-ATIV-ENTRADA) LENGTH (WS-LEN-RECEIVE) END-EXEC.

EXEC CICS RECEIVE MAP('PRINC') MAPSET('TABMTRJ') INTO(PRINCI) END-EXEC

Retornos

Algumas condições podem ocorrer combinadas; neste caso, somente uma é passada para o programa. EIBRCODE, entratanto, indica TODAS as condições ocorridas.

EOC Se a RU (request/response unit) foi recebida com end-of-chain. Somente para LU’s (logical units). Default action: ignorado.

EODS Ocorre se não foram recebidos dados (somente um FMH). Vale para 3770 batch LUs e 3770/3790 batch data interchange LUs. Default: task terminada anormalmente.

INVMPSZ Se o mapa é grande demais para o terminal. Default : task terminada anormalmente

INVPARTN Se a partição especificada não está definida no partition set associado ao programa. Default : task terminada anormalmente

INVREQ Se o comando RECEIVE MAP é emitido numa task nonterminal (tasks nonterminal não tem TIOA ou TCTTE). Default : task terminada anormalmente

MAPFAIL Se os dados tem tamanho zeroou não contém SBA. Ocorre também se o programa emite o comando RECEIVE MAP e o operador responde pressionando a CLEAR ou uma PA key, ou ENTER ou PF key sem ter digitado dados. Default : task terminada anormalmente

4

Page 5: CICS_Comandos

PARTNFAIL Se o operador do terminal tenta digitar mais de 3 vezes dados numa partiçãoque não seja a especificada na opção INPARTN. Default : task terminada anormalmente

RDATT Se o comando RECEIVE MAP é terminado pelo operador pressionando uma ATTN key que não a RETURN (só para 2741). Default : ignorado.

UNEXPIN Se dados inesperados ou irreconhecíveis são recebidos. Somente para terminais batch. Default : task terminada anormalmente

5

Page 6: CICS_Comandos

SEND MAP

Envia dados do mapa para o terminal.

Sintaxe :

SEND MAP(name)ACCUMALARMCURSOR(data-value)DATAONLYERASE[|DEFAULT|ALTERNATE|ERASEAUP|]FMHPARM(name)FORMFEEDFREEKBFROM(data-area)FRSET|LDC(name)|[ACTPARTN(name)|OUTPARTN(name)]LENGTH(data-value)MAPONLYMAPSET(name)MSR(data-value)NLEOMNOEDIT <MAPPED>|ACCUM<<JUSFIRST|JUSLAST|JUSTIFY()><HEADER()><TRAILER()>>NOFLUSH|L40|L64|L80|HONEOM| PAGINGPRINTREQID(name)SET(ptr-ref) < MAPPingdev() > | PAGING | TERMINAL < WAIT > < LAST >

Parâmetros

ACCUM Indica que é um comando que faz parte de uma mensagem lógica (completada por SEND PAGE ou deletada por PURGE MESSAGE).

ACTPARTN(name) Somente para terminais que suportam partições. Indica o nome (1-2 caracteres) da partição a ser ativada.

ALARM Indica que o alarme deve ser ativado.

ALTERNATE Indica que o terminal deve usar o tamanho de tela ALTERNATE.

CURSOR(data-value) Indica onde o cursor deve ser posicionado após o SEND MAP. O campo indicado em data-value deve ser uma half-word.

DATAONLY

6

Page 7: CICS_Comandos

Indica que somente dados do programa devem ser enviados. Os bytes de atributo devem ser especificados para cada campo.

DEFAULT Indica que o terminal deve usar o tamanho de tela DEFAULT.

ERASE Indica que o buffer (ou partição) deve ser limpo e o cursor deve voltar para o canto superior esquerdo após o SEND. IMPORTANTE : em qualquer transação, a primeira operação de SEND deve sempre ter ERASE.

ERASEAUP Indica que antes da exibição, todos os campos não protegidos (All UnProtected) devem ser limpos.

FMHPARM(name) Somente para LU 3650.

FORMFEED Indica que deve ser feito pulo para a próxima página (em terminais impressores). Neste caso, lembrar que o controle de FORMFEED deve estar no início do buffer; o programa (mapa) não pode por nenhuma informação nele.

FREEKB Indica que o teclado deve ser destravado após a exibição dos dados.

FROM(data-area) Indica a área com os dados a enviar. Se omitido, assume o nome do mapa com o sufixo O. A área deve incluir os 12 bytes de prefixo da opção TIOAPFX=YES das macros DFHMDI e DFHMSD.

FRSET Indica que os MDTs de todos os campos devem ser posicionados na condição de “unmodified” (field reset) antes de o mapa ser exibido.

HONEOM Indica que deve ser usado o tamanho default da linha da impressora.

LAST Somente para LU’s.

LDC(name) Indica o nome do logical device code (LDC).

LENGTH(data-value) Indica o tamanho dos dados (numa half-word). Deve incluir os 12 bytes de prefixo.

MAP(name) Indica o nome do mapa a ser usado (1-7 caracteres).

MAPONLY Indica que somente os dados default do mapa devem ser enviados.

7

Page 8: CICS_Comandos

MAPSET(name) Indica o nome do mapset (1-7 caracteres) a ser usado.

MSR(data-value) Somente para cartucho de fitas em terminais 8775 ou 3643.

NLEOM Indica que os dados de impressao devem ter brancos e o caracter NL (new line) , além do caracter de EOM (end of message). Deve ser especificao para o primeiro comando SEND MAP usado para construir uma logical message.

NOFLUSH Indica que o CICS não deve limpar as páginas ao final, mas deve retornar o controle ao programa (com a condição OVERFLOW posicionada em EIBRESP).

OUTPARTN(name) Indica o nome (1-2 caracteres) da partição para a qual os dados devem ser enviados.

PAGING Indica que os dados de saída não devem ser enviados imediatamente para o terminal, mas colocados em TS e exibidos em resposta a comandos de paginação dados pelo operador.

PRINT Indica que uma operação de impressão deve ser iniciada numa impressora 3270.

REQID(name) Indica um prefixo de 2 caracteres a ser usado como parte do TS identifier para CICS message recovery.

SET(ptr-ref) Especifica o pointer a ser colocado como endereço dos dados. Se houver TIOAPFX=YES no mapa, o pointer retornado contem o endereço do prefixo da TIOA. Os dados do usuário começam no deslocamento 12 a partir do início da TIOA.

TERMINAL Indica que os dados de saída devem ser enviados para o terminal que iniciou a transação.

WAIT Indica que o controle não deve ser retornado ao aplicativo até que a operação de saída tenha sido completada. Se WAIT não for especificado, o controle volta ao aplicativo quando a operação foi iniciada, mas ainda não terminou.

Exemplos

EXEC CICS SEND MAP('PRINC') MAPSET('TABMTRJ') FROM(PRINCO) ERASE FREEKB END-EXEC

EXEC CICS SEND

8

Page 9: CICS_Comandos

FROM (WS-AREA-RETORNO) LENGTH (100) ERASE END-EXEC.

Retornos

Algumas condições podem ocorrer combinadas; neste caso, somente uma é passada para o programa. EIBRCODE, entratanto, indica TODAS as condições ocorridas.

IGREQCD Se houve uma tentativa de executar um comando SEND MAP depois que um comando SIGNAL data-flow control com RCD code foi recebido de uma LUTYPE4. Default : task terminada anormalmente

IGREQID Se o prefixo especificado em REQID é diferente do estabelecido por um REQID anterior, ou do default estabelecido para esta mensagem logica --REQID (**). Default : task terminada anormalmente

INVLDC Se o mnemônico LDC especificado não está incluido n alista LDC para a LU. Default : task terminada anormalmente

INVMPSZ Se o mapa é grande demais para o terminal.

INVPARTN Se a partição especificada não está definida no partition set associado ao aplicativo. Default : task terminada anormalmente

OVERFLOW Se os dados não cabem na página. Default : condição ignorada.

RETPAGE Se a opção SET for especificada e uma página completada está pronta para retorno ao aplicativo. Default : controle volta ao aplicativo no ponto seguinte ao SEND MAP.

TSIOERR Erro irrecuperável de I/O em TS. Default : task terminada anormalmente

WRBRK Somente para 2741. Default : condição ignorada.

9

Page 10: CICS_Comandos

25 – Comandos para tratamento de arquivos

RESUMO DE COMANDOS PARA TRATAMENTO DE ARQUIVOS VSAM

Leitura de registros

Leitura direta

o READ

Leitura sequencial (browsing)

o STARTBR

o READNEXT

o READPREV

o RESETBR

o ENDBR

Leitura skip-sequencial

o READNEXT

Atualização de registros

REWRITE

UNLOCK

Deleção de registros

DELETE

Inclusão de registros

WRITE

10

Page 11: CICS_Comandos

LEITURA DIRETA (em KSDS)Deve-se identificar / fornecer : a chave (inteira) do registro que se deseja ler (obtenção de registro único – Unique key)) ou a chave parcial (primeiras n posições à esquerda) do registro no qual deseja-se “posicionar” o

arquivo para que as leituras seqüenciais subseqüentes obtenham os registros desejados (Generic Key).

LEITURA SEQUENCIAL - BROWSING (em KSDS) Inicia-se o browse com o comando STARTBR, identificando o registro (inicial) de forma

análoga à leitura direta. No entanto, o STARTBR não disponibiliza o registro, apenas “posiciona” o arquivo no

registro desejado, para que o READNEXT emitido em seguida efetue a leitura propriamente dita.

READNEXT lê seqüencialmente (à frente) desde o ponto marcado pelo STARTBR (pode-se posicionar o arquivo no início colocando low-values na chave para posicionamento do STARTBR).

READPREV lê seqüencialmente (para trás) desde o ponto marcado pelo STARTBR (pode-se posicionar o arquivo no final colocando high-values na chave para posicionamento do STARTBR).

RESETBR pode ser utilizado para reposicionar o arquivo em outro registro. Para terminar uma seqüência de Browse, é obrigatório dar o comando ENDBR.

ATUALIZAÇÃO (em KSDS) Para atualizar o conteúdo de um registro, deve-se acessá-lo inicialmente através de sua leitura

(READ UPDATE). Após obtido o registro, providencia-se sua modificação pelo aplicativo, e, em seguida, através do REWRITE efetua-se sua atualização.

Cada REWRITE deve estar associado a um READ UPDATE através de um elemento comum (especificado em TOKEN).

READ UPDATE providencia o LOCK e, após o REWRITE (ou não) deve-se providenciar o UNLOCK.

INCLUSÃO (em KSDS) Deve-se preparar o registro a ser incluído, identificar a chave que irá ser a base para inclusão

na area de dados e nos índices (através do parâmetro Ridfld) e emitir o comando WRITE. Para atualizar o conteúdo de um registro, deve-se acessá-lo inicialmente através de sua

leitura. Após obtido o registro,

DELEÇÃO (em KSDS) Para deletar UM registro : acessá-lo inicialmente através de sua leitura (READ UPDATE);

após obtido o registro, providencia-se sua deleção através do DELETE (sem Ridfld). Para deletar UM CONJUNTO de registros, utilizar o comando DELETE com generic key :

todos os registros com chave que casem com a parte (que deve ter tamanho menor que a chave total) da chave especificada serão deletados; a quantidade de registros deletados é devolvida para o programa se for especificada a opção NUMREC.

11

Page 12: CICS_Comandos

DELETE

O DELETE elimina (deleta) um registro lógico de um arquivo. É necessário que antes tenha sido dado um comando READNEXT ou READPREV co UPDATE para deletar o registro lido (se houver duplicidade de chave é responsabilidade do programa acessar cada um dos registros e deletar um a um).

Sintaxe

EXEC CICS DELETE FILE() < SYSID() > < TOKEN() | RIDFLD() < KEYLENGTH() < GENERIC < NUMREC() > > > > < RBA | RRN > < NOSUSPEND >END-EXEC

Parâmetros

FILE(filename) nome do arquivo

GENERIC (Somente Vsam KSDS) indica que a chave de pesquisa é genérica (KEYLENGTH é menor que o tamanho da chave total).

KEYLENGTH(data-value)tamanho da chave (em uma halfword, em binário) para comparação, que está no RIDFLD.

NOSUSPENDnão aguardar se o registro estiver com LOCK.

NUMREC(data-area)(Somente para Vsam KSDS) : especifica uma halfword onde o CICS coloca, em binário, o número de registros deletados.

|RBA|RRN|RRN : para RRDS; RBA : indica que o RIDFLD especifica um rba (relative byte address) indica para VSAM KSDS

RIDFLD(data-area)(Record IDentification FieLD) = area que contém a chave do registro que se deseja ler; se for x’FF’ em todos os bytes, indica preparação para browse com READPREV.

SYSID(systemname)para sistemas remotos (não locais)

TOKEN(data-area)Somente para RLS; identificador para este READ UPDATE (valor em binário numa fullword) : valor retornado para o aplicativo pelo CICS, para uso em (eventual futuro) REWRITE / DELETE / UNLOCK referente ao registro trazido por um READ UPDATE.

12

Page 13: CICS_Comandos

Exemplos

EXEC CICS DELETE FILE('MASTVSAM') RIDFLD(ACCTNO) KEYLENGTH(len) GENERIC NUMREC(NUMDEL) END-EXEC

Retornos CHANGED DISABLED DUPKEY FILENOTFOUND ILLOGIC INVREQ IOERR ISCINVREQ LOADING LOCKED NOTAUTH NOTFND NOTOPEN RECORDBUSY SYSIDERR

13

Page 14: CICS_Comandos

ENDBR

O ENDBR termina um browse.

Sintaxe

EXEC CICS ENDBR FILE() < SYSID() > < REQID( +00000 ) >END-EXEC

Parâmetros

FILE(filename) Nome do arquivo.

REQID(data-value) Indica um valor (em uma half-word, em binário), que identifica o browse a ser terminado, quando se usa multiplos browses num mesmo arquivo.

SYSID(systemname)para sistemas remotos (não locais)

Exemplos

EXEC CICS ENDBR FILE(‘TABA501’)END-EXEC.

Retornos

DISABLED FILENOTFOUND ILLOGIC INVREQ IOERR ISCINVREQ LOADING NOTAUTH NOTFND NOTOPEN SYSIDERR

14

Page 15: CICS_Comandos

READ

Para o leitura de um registro de um arquivo VSAM.

Sintaxe :

EXEC CICS READ FILE() < SYSID() > ( SET() | INTO() ) < LENGTH() > RIDFLD() < KEYLENGTH() < GENERIC > > < RBA | RRN | DEBREC | DEBKEY > < GTEQ | EQUAL > < UNCOMMITTED | CONSISTENT | REPEATABLE | UPDATE < TOKEN() > > < NOSUSPEND >END-EXEC

Parâmetros

EQUAL ou GTEQcondição para READ genérico : igual ou (maior ou igual)

|DEBKEY|DEBREC|RBA|RRN|DBEKEY e DEBREC : para DBAM blocado; RRN : para RRDS; RBA : indica que o RIDFLD especifica um rba (relative byte address) indica para VSAM KSDS

CONSISTENT (RLS only)

FILE(filename) nome do arquivo

INTO(data-area) nome da área para leitura do registro

KEYLENGTH(data-value)tamanho para comparação de GENERIC KEY

GENERICchave base para pesquisa

NOSUSPENDnão aguardar se o registro estiver com LOCK.

REPEATABLE (RLS only)

RIDFLD(data-area)

15

Page 16: CICS_Comandos

(Record IDentification FieLD) = area que contém a chave do registro que se deseja ler

SETo CICS deve providenciar um buffer para a leitura, e retornar sua localização para o aplicativo, após nele colocar o registro lido.

SYSID(systemname)para sistemas remotos (não locais)

TOKEN(data-area)identificador para este READ UPDATE (valor em binário numa fullword) : valor retornado para o aplicativo pelo CICS, para uso em (eventual futuro) REWRITE / DELETE / UNLOCK referente ao registro trazido por um READ UPDATE.

UNCOMMITTEDRegistro lido sem integridade de leitura (mesmo que haja (esteja havendo) alguma atualização nele por outra task.

UPDATEIndica que o registro deve ser obtido (lido) para que se possa efetuar um update ou delete. Se não for especificado, assume read-only.

Exemplos

EXEC CICS READ INTO (RG-TABA537-537) LENGTH (WS-LEN-TABA537) KEYLENGTH (WS-KEYLEN-TABA537) DATASET ('TABA537') RIDFLD (ST-CHV-ARQ-537) UPDATE END-EXEC.

EXEC CICS READ INTO(WS-REGTABEMP) FILE('TABEMP') RIDFLD(CODEMP) END-EXEC.

EXEC CICS READ INTO(WS-REGTABEMP) LENGTH(RECLEN) FILE('TABEMP') RIDFLD(CODEMP) KEYLENGTH(4) GENERIC GTEQ UPDATE END-EXEC.

16

Page 17: CICS_Comandos

Retornos

DISABLED DUPKEY FILENOTFOUND ILLOGIC INVREQ IOERR ISCINVREQ LENGERR LOADING LOCKED NOTAUTH NOTFND NOTOPEN RECORDBUSY SYSIDERR

17

Page 18: CICS_Comandos

READNEXT

Usado para efetuar leitura sequencial para a frente de registros em um arquivo (leitura sequencial = browse).

A sequência de READNEXT`s deve iniciar por um STARTBR e o fim deve ser por um ENDBR. UDATE pode ser especificado somente se o arquivo estiver sendo acesado no modo RLS

(UPDATE não pode ser especificado no STARTBR ou RESETBR). CICS suporta somente 1 TOKEN num browse; o TOKEN de um (cada) READNEXT invalida o

TOKEN anterior.

Sintaxe

EXEC CICS READNEXT FILE() < SYSID() > ( SET() | INTO() ) < LENGTH() > RIDFLD() < KEYLENGTH() > < REQID( +00000 ) > < RBA | RRN > < UNCOMMITTED | CONSISTENT | REPEATABLE | UPDATE TOKEN() > < NOSUSPEND >END-EXEC

Parâmetros

CONSISTENT (RLS only)

FILE(filename) nome do arquivo

INTO(data-area) nome da área para leitura do registro

KEYLENGTH(data-value)tamanho da chave (em uma halfword, em binário) para comparação, que está no RIDFLD.

LENGTH(data-area) Tamanho (em uma halfword, em binário) do registro a ser lido.

NOSUSPENDnão aguardar se o registro estiver com LOCK.

|RBA|RRN|RRN : para RRDS; RBA : indica que o RIDFLD especifica um rba (relative byte address) indica para VSAM KSDS

18

Page 19: CICS_Comandos

REPEATABLE (RLS only)

REQID(data-value) Indica um valor (em uma half-word, em binário), que identifica um browse, quando se usa multiplos browses num mesmo arquivo.

RIDFLD(data-area)(Record IDentification FieLD) = area que contém a chave do registro que se deseja ler; se for x’FF’ em todos os bytes, indica preparação para browse com READPREV.

SETo CICS deve providenciar um buffer para a leitura, e retornar sua localização para o aplicativo, após nele colocar o registro lido.

SYSID(systemname)para sistemas remotos (não locais)

TOKEN(data-area)identificador para este READ UPDATE (valor em binário numa fullword) : valor retornado para o aplicativo pelo CICS, para uso em (eventual futuro) REWRITE / DELETE / UNLOCK referente ao registro trazido por um READ UPDATE.

UNCOMMITTEDRegistro lido sem integridade de leitura (mesmo que haja (esteja havendo) alguma atualização nele por outra task.

UPDATEIndica que o registro deve ser obtido (lido) para que se possa efetuar um update ou delete. Se não for especificado, assume read-only.

Exemplos

EXEC CICS READNEXT DATASET ('TABA538') RIDFLD (ST-CHV-ARQ-538) INTO (RG-TABA538-538) END-EXEC.

EXEC CICS READNEXT DATASET ('TABP138') INTO (RG-TABA538-538) LENGTH (LENGTH OF RG-TABA538-538) RIDFLD (ST-CHV-ALTER-538) NOHANDLE END-EXEC.

Retornos

DUPKEY

19

Page 20: CICS_Comandos

ENDFILE FILENOTFOUND ILLOGIC INVREQ IOERR ISCINVREQ LENGERR LOADING LOCKED NOTAUTH NOTFND RECORDBUSY SYSIDERR

20

Page 21: CICS_Comandos

READPREV

Usado para efetuar leitura sequencial para trás de registros em um arquivo (leitura sequencial = browse).

A sequência de READPREV`s deve iniciar por um STARTBR e o fim deve ser por um ENDBR. UDATE pode ser especificado somente se o arquivo estiver sendo acesado no modo RLS

(UPDATE não pode ser especificado no STARTBR ou RESETBR). CICS suporta somente 1 TOKEN num browse; o TOKEN de um (cada) READPREV invalida o

TOKEN anterior.

Sintaxe

EXEC CICS READPREV FILE() < SYSID() > ( SET() | INTO() ) < LENGTH() > RIDFLD() < KEYLENGTH() > < REQID( +00000 ) > < RBA | RRN > < UNCOMMITTED | CONSISTENT | REPEATABLE | UPDATE TOKEN() > < NOSUSPEND > END-EXEC

Parâmetros

CONSISTENT (RLS only)

FILE(filename) nome do arquivo

INTO(data-area) nome da área para leitura do registro

KEYLENGTH(data-value)tamanho da chave (em uma halfword, em binário) para comparação, que está no RIDFLD.

LENGTH(data-area) Tamanho (em uma halfword, em binário) do registro a ser lido.

NOSUSPENDnão aguardar se o registro estiver com LOCK.

|RBA|RRN|RRN : para RRDS; RBA : indica que o RIDFLD especifica um rba (relative byte address) indica para VSAM KSDS

REPEATABLE (RLS only)

21

Page 22: CICS_Comandos

REQID(data-value) Indica um valor (em uma half-word, em binário), que identifica um browse, quando se usa multiplos browses num mesmo arquivo.

RIDFLD(data-area)(Record IDentification FieLD) = area que contém a chave do registro que se deseja ler; se for x’FF’ em todos os bytes, indica preparação para browse com READPREV.

SETo CICS deve providenciar um buffer para a leitura, e retornar sua localização para o aplicativo, após nele colocar o registro lido.

TOKEN(data-area)Somente para RLS; identificador para este READ UPDATE (valor em binário numa fullword) : valor retornado para o aplicativo pelo CICS, para uso em (eventual futuro) REWRITE / DELETE / UNLOCK referente ao registro trazido por um READ UPDATE.

SYSID(systemname)para sistemas remotos (não locais)

TOKEN(data-area)Somente para RLS; identificador para este READ UPDATE (valor em binário numa fullword) : valor retornado para o aplicativo pelo CICS, para uso em (eventual futuro) REWRITE / DELETE / UNLOCK referente ao registro trazido por um READ UPDATE.

UNCOMMITTEDRegistro lido sem integridade de leitura (mesmo que haja (esteja havendo) alguma atualização nele por outra task.

UPDATEIndica que o registro deve ser obtido (lido) para que se possa efetuar um update ou delete. Se não for especificado, assume read-only.

Exemplos

EXEC CICS READPREV DATASET ('TABA538') RIDFLD (ST-CHV-ARQ-538) INTO (RG-TABA538-538) END-EXEC.

EXEC CICS READPREV DATASET('TABA505') LENGTH(WS-LEN) INTO(RG-TABA505-505) RIDFLD(ST-CHV-ARQ-505) NOHANDLE END-EXEC.

22

Page 23: CICS_Comandos

Retornos

DUPKEY ENDFILE FILENOTFOUND INVREQ IOERR ISCINVREQ LENGERR LOCKED NOTAUTH NOTFND RECORDBUSY SYSIDERR

23

Page 24: CICS_Comandos

RESETBR

Usado para reposicionar um arquivo durante um browse (o reposicionamento pode também ser feito, ao invés de usar o RESETBR, se modificar o RIDFLD antes de um READNEXT ou READPREV) ou para mudar as características do browse (indicadas no STARTBR ; as características que podem ser alteradas são as especificadas nas opções GENERIC, GTEQ, e RBA).

Sintaxe

EXEC CICS RESETBR FILE() < SYSID() > RIDFLD() < KEYLENGTH() < GENERIC > > < REQID( +00000 ) > < RBA | RRN > < GTEQ | EQUAL >END-EXEC

Parâmetros

FILE(filename) nome do arquivo

GENERIC = (VSAM KSDS) chave base para pesquisa (tamanho especificado em KEYLENGTH).

GTEQ ou EQUALcondição para READ genérico : igual ou (maior ou igual)

KEYLENGTH(data-value)tamanho da chave (em uma halfword, em binário) para comparação, que está no RIDFLD.

REQID(data-value) Indica um valor (em uma half-word, em binário), que identifica um browse, quando se usa multiplos browses num mesmo arquivo.

RIDFLD(data-area)(Record IDentification FieLD) = area que contém a chave do registro que se deseja ler; se for x’FF’ em todos os bytes, indica preparação para browse com READPREV.

|RBA|RRN|RRN : para RRDS; RBA : indica que o RIDFLD especifica um rba (relative byte address) indica para VSAM KSDS

SYSID(systemname)para sistemas remotos (não locais)

24

Page 25: CICS_Comandos

Exemplos

EXEC CICS RESETBR FILE ('TABA501') RIDFLD (ST-CHV-ARQ-501)END-EXEC

Retornos

FILENOTFOUND ILLOGIC INVREQ IOERR ISCINVREQ NOTAUTH NOTFND SYSIDERR

25

Page 26: CICS_Comandos

REWRITE

O REWRITE atualiza (in-place) um registro lógico num arquivo. Deve-se antes emitir um READ com a opção UPDATE.

Sintaxe

EXEC CICS REWRITE FILE() < SYSID() > FROM() < LENGTH() > < TOKEN() > < NOSUSPEND >END-EXEC

Parâmetros

FILE(filename) nome do arquivo

FROM(data-area) nome da área para regravação do registro

LENGTH(data-area) Tamanho (em uma halfword, em binário) do registro a ser atualizado.

NOSUSPENDnão aguardar se o registro estiver com LOCK.

SYSID(systemname)para sistemas remotos (não locais)

TOKEN(data-area)Somente para RLS; identificador para este READ UPDATE (valor em binário numa fullword) : valor retornado para o aplicativo pelo CICS, para uso em (eventual futuro) REWRITE / DELETE / UNLOCK referente ao registro trazido por um READ UPDATE.

Exemplos

EXEC CICS REWRITE FROM(RECORD) FILE('MASTER') TOKEN(APTOK) END-EXEC

EXEC CICS REWRITE DATASET ('TABA538') FROM (RG-TABA538-538) LENGTH (WS-LEN-TABA538) END-EXEC

26

Page 27: CICS_Comandos

Retornos

CHANGED DUPREC FILENOTFOUND ILLOGIC INVREQ IOERR ISCINVREQ LENGERR NOTFND LOCKED NOSPACE NOTAUTH RECORDBUSY SYSIDERR

27

Page 28: CICS_Comandos

STARTBR

O STARTBR posiciona (somente ponteiros !!!) um arquivo num ponto especificado, para, a partir daí, efetuar browse. IMPORTANTE : o STARTBR NÃO LÊ registro nenhum; o registro somente será lido quando for emitido um READ NEXT ou READ PREV. O posicionamento pode ser feito com base na chave (primária ou alternada) do registro (KSDS ou data-table), no RBA (normal ou alternado) (KSDS ou ESDS), no RRN (RRDS)

Sintaxe

STARTBR FILE(filename) [SYSID()] RIDFLD(data-area) [KEYLENGTH() [GENERIC] ] [REQID(data_value)] [RBA | RRN | DEBREC | DEBKEY ] [GTEQ | EQUAL ]

Parâmetros

EQUAL ou GTEQ condição para READ genérico : igual ou (maior ou igual)

FILE(filename) Nome do arquivo a ser acessado.

GENERIC = (VSAM KSDS) chave base para pesquisa (tamanho especificado em KEYLENGTH).

KEYLENGTH(data-value) Tamanho da chave (colocado em uma harf-word, em binário). Obrigatório se GENERIC foi especificado.

|DEBKEY|DEBREC|RBA|RRN|DBEKEY e DEBREC : para DBAM blocado; RRN : para RRDS; RBA : indica que o RIDFLD especifica um rba (relative byte address) indica para VSAM KSDS

REQID(data-value) Indica um valor (em uma half-word, em binário), que identifica um browse, quando se usa multiplos browses num mesmo arquivo.

RIDFLD(data-area)(Record IDentification FieLD) = area que contém a chave do registro que se deseja ler; se for x’FF’ em todos os bytes, indica preparação para browse com READPREV.

SYSID(systemname)

28

Page 29: CICS_Comandos

para sistemas remotos (não locais)Exemplos

EXEC CICS READ INTO (RG-TABA537-537) LENGTH (WS-LEN-TABA537) END-EXEC.

EXEC CICS STARTBR DATASET ('TABA538') RIDFLD (ST-CHV-ARQ-538) END-EXEC.

EXEC CICS STARTBR FILE ('TABA627') RIDFLD (ST-CHV-TAB-627) KEYLENGTH (WS-KEY-LEN) GTEQ NOHANDLE END-EXEC

Retornos

DISABLED FILENOTFOUND ILLOGIC INVREQ IOERR ISCINVREQ LOADING NOTAUTH NOTFND NOTOPEN SYSIDERR

29

Page 30: CICS_Comandos

UNLOCK

O UNLOCK libera um recurso (registro lógico) previamente colocado em lock por meio de um READ com UPDATE.

Sintaxe

EXEC CICS UNLOCK FILE() < SYSID() > < TOKEN() > END-EXEC

Parâmetros

FILE(filename) nome do arquivo

SYSID(systemname)para sistemas remotos (não locais)

TOKEN(data-area)Somente para RLS; identificador para este READ UPDATE (valor em binário numa fullword) : valor retornado para o aplicativo pelo CICS, para uso em (eventual futuro) REWRITE / DELETE / UNLOCK referente ao registro trazido por um READ UPDATE.

Exemplos

EXEC CICS UNLOCK FILE(‘TABA501’)END-EXEC

Retornos

DISABLED FILENOTFOUND ILLOGIC INVREQ IOERR ISCINVREQ NOTAUTH NOTOPEN SYSIDERR

30

Page 31: CICS_Comandos

WRITE

O WRITE grava (adiciona) um registro lógico (novo) num arquivo. Os conteúdos do campo chave no registro e no campo RIDFLD devem ser o mesmo.

Sintaxe

EXEC CICS WRITE FILE() < SYSID() > FROM() < LENGTH() > RIDFLD() < KEYLENGTH() > < RBA | RRN > < MASSINSERT > < NOSUSPEND > END-EXEC

Parâmetros

FILE(filename) nome do arquivo

FROM(data-area) Indica a área de onde deve ser obtido o registro lógico a ser gravado.

KEYLENGTH(data-value)tamanho da chave (em uma halfword, em binário) para comparação, que está no RIDFLD.

LENGTH(data-area) Tamanho (em uma halfword, em binário) do registro a ser lido.

MASSINSERT Indica que o WRITE é parte de um conjunto (operação de inclusão em massa).

NOSUSPENDnão aguardar se o registro estiver com LOCK.

|RBA|RRN|RRN : para RRDS; RBA : indica que o RIDFLD especifica um rba (relative byte address) indica para VSAM KSDS

RIDFLD(data-area)(Record IDentification FieLD) = area que contém a chave do registro que se deseja ler; se for x’FF’ em todos os bytes, indica preparação para browse com READPREV.

SYSID(systemname)para sistemas remotos (não locais)

31

Page 32: CICS_Comandos

Exemplos

EXEC CICS WRITE DATASET ('TABA538') FROM (RG-TABA538-538) LENGTH (WS-LEN-TABA538) KEYLENGTH (WS-KEYLEN-TABA538) RIDFLD (ST-CHV-ARQ-538) END-EXEC

Retornos DISABLED DUPREC FILENOTFOUND ILLOGIC INVREQ IOERR ISCINVREQ LENGERR LOADING LOCKED NOSPACE NOTAUTH NOTOPEN RECORDBUSY SUPPRESSED SYSIDERR

32

Page 33: CICS_Comandos

26 – Comandos para transferência de controle entre programas

Application program logical levels

33

Page 34: CICS_Comandos

LINK

Efetua o link com outro programa (chamada para transferência de controle), esperando que haja retorno para o programa CHAMADOR. Quando o comando RETURN for emitido pelo programa CHAMADO, o controle é retornado a ele, na instrução subseqüente ao LINK.Durante a execução do programa CHAMADO, valem os processos (handling conditions, attention id’s, abends, etc) dele e não do chamador; quando o controle retorna ao chamador, passam a valer novamente os processos do CHAMADOR.

Sintaxe

EXEC CICS LINK PROGRAM() < COMMAREA() < LENGTH() > < DATALENGTH() > > < SYSID() > < SYNCONRETURN > < TRANSID() > < INPUTMSG() < INPUTMSGLEN() > >END-EXEC

Parâmetros

COMMAREA(data-area) Indica a communication area que deve ser passada para o pragrama chamado (em COBOL, o programa chamado deve dar a ela o nome de DFHCOMMAREA).

DATALENGTH(data-value) Indica uma halfword que contem, em binário, o tamanho da área (contígua) de comunicação (COMMAREA), a ser passada para o programa chamado (o qual, é conveniente que verifique o tamanho).

INPUTMSG(data-area) Indica o nome da área que tem os dados a serempassados para o programa chamado (no primeiro RECEIVE). Os dados ficam disponíveis até o RECEIVE.

INPUTMSGLEN(data-value) Indica o nome da halfword que deve conter, em binário, o tamanho da área passada (INPUTMSG).

LENGTH(data-value) Indica o tamanho (em binário, numa halfword), em bytes, da communication area (máximo = 32500 bytes).

PROGRAM(name) Indica o nome do programa para o qual o controle deve ser passado. Uso de apóstrofes : EXEC CICS LINK PROGRAM('PROGX')

PROGX é o nome do programa EXEC CICS LINK PROGRAM(DAREA)

DAREA é o nome de uma área (variável) que contém o nome do programa

SYNCONRETURNPara sistemas remotos (não locais)

34

Page 35: CICS_Comandos

SYSID(systemname)para sistemas remotos (não locais)

TRANSID(name)Indica o nome da transação “espelho” que a região remota deve “attachar” e sob a qual deve ser executado o programa (se não especificado, assume CSMI, CPMI, ou CVMI).

Exemplo

EXEC CICS LINK PROGRAM(PROGNAME) COMMAREA(COMA) LENGTH(LENA) DATALENGTH(LENI) SYSID('CONX') END-EXEC

Retornos

INVREQ, LENGERR, NOTAUTH, PGMIDERR, ROLLEDBACK, SYSIDERR, TERMERR

INVREQ RESP2 values: 8 A LINK command with the INPUTMSG option is issued for a program that is not associated

with a terminal, or that is associated with an APPC logical unit, or an IRC session. 14 The SYNCONRETURN option is specified but the program issuing the link request (the client

program) is already in conversation with a mirror task in the remote region specified on the SYSID option. (That is, a unit of work (UOW) is in progress, or the system initialization parameter MROFSE=YES has been specified in the client region.) In this case, the client program is in an incorrect state to support the SYNCONRETURN option.

15 The program issuing the link request is already in conversation with a mirror task and the TRANSID specified is different from the transaction identifier of the active mirror.

16 The TRANSID specified is all blanks. 17 The TRANSID supplied by the dynamic routing program is all blanks. 19 A LINK command with the INPUTMSG option is issued for a program that is the subject of a

DPL request; that is, SYSID is also specified. 30 The program manager domain has not yet been initialized. This is probably due to a link request

having been made in a first stage PLT. 41 A LINK has been attempted to a Java program while there is already a JVM program on the

link stack. 43 A LINK has been attempted to a hot-pooled Java program object while there is already a hot-

pooled program on the link stack. 44 A LINK has been attempted to a Java program, but the JVMpool is disabled. 45 A LINK has been attempted to a Java program, but the JVM profile cannot be found. 46 A LINK has been attempted to a Java program, but the JVM profile is not valid. 47 A LINK has been attempted to a Java program, but the system properties file cannot be found. 48 A LINK has been attempted to a Java program, but the user class cannot be found. Default action: terminate the task abnormally. Note: RESP2 values are not returned to the client for conditions occurring in a DPL server program.

35

Page 36: CICS_Comandos

LENGERR RESP2 values: 11 The COMMAREA length is less than 0 or greater than 32767. 12 The length specified on the DATALENGTH option is a negative value. 13 The length specified on the DATALENGTH option is > the length specified on the LENGTH option. 26 The COMMAREA address is zero, but the COMMAREA length is non zero. 27 The INPUTMSG length is < 0 or > 32767. Also occurs in any of the following situations:

The length specified on the LENGTH option is greater than the length of the data area specified in the COMMAREA option, and

while that data was being copied a destructive overlap occurred because of the incorrect length. Default action: terminate the task abnormally. Note: RESP2 values are not returned to the client for conditions occurring in a DPL server program.

NOTAUTH RESP2 values: 101 A resource security check has failed on PROGRAM(name). Default action: terminate the task abnormally.

PGMIDERR RESP2 values: 1 A program has no entry in the PPT and either program autoinstall was switched off, or the

program autoinstall control program indicated that the program should not be autoinstalled. 2 A program is disabled. 3 A program could not be loaded because

This was the first load of the program and the program load failed, usually because the load module could not be found.

This was a subsequent load of the program, but the first load failed. In order to reset the load status the load module must be in the DFHRPL concatenation, and

a SET PROGRAM NEWCOPY will be required. 21 The program autoinstall control program failed either because the program autoinstall control

program is incorrect, incorrectly defined, or as a result of an abend in the program autoinstall control program. Program autoinstall is disabled and message DFHPG0202 or DFHPG0203 written to the CSPL.

22 The model returned by the program autoinstall control program was not defined in the PPT table, or was not enabled.

23 The program autoinstall control program returned invalid data. 24 Define for the program failed due to autoinstall returning an invalid program name or

definition. 25 The dynamic routing program rejected the link request. Default action: terminate the task abnormally. Note: RESP2 values are not returned to the client for conditions occurring in a DPL server program.

ROLLEDBACK RESP2 values: 29 The SYNCONRETURN is specified and the server program is unable successfully to take a syncpoint. The server program has taken a rollback, and all changes made to recoverable resources in the remote region, within the current unit of work, are backed out. Default action: terminate the task abnormally.

36

Page 37: CICS_Comandos

SYSIDERR RESP2 values: 18 The SYSID specified cannot be found in the intersystem table. 20 The remote system specified by SYSID is an LUTYPE6.1-connected system. Distributed

program link requests are not supported on LUTYPE6.1 connections. Notes: 1. There is no local queuing in the event of a SYSIDERR. 2. RESP2 values are not returned for conditions occurring on DPL requests.

28 The remote system specified by SYSID is not in service.This response can also indicate that the transaction has not been defined on the remote system.

29 The remote system specified by SYSID is in service, but there are no sessions available, and the dynamic routing program has chosen not to queue the link request.

31 The request to allocate a session to the remote system has been rejected. 32 The queue of allocate requests for sessions to the remote system has been purged. Default action: terminate the task abnormally.

TERMERR RESP2 values: 17 An irrecoverable error occurs during the conversation with the mirror (for example, if the session fails, or if the server region fails). Default action: terminate the task abnormally. Note: RESP2 values are not returned to the client for conditions occurring in a DPL server program.

37

Page 38: CICS_Comandos

RETURN

Retorna o controle para o programa chamador (ou , em última instância, para o CICS).

Sintaxe

EXEC CICS RETURN < TRANSID() < COMMAREA() < LENGTH() > > < IMMEDIATE > > < INPUTMSG() < INPUTMSGLEN() > > < ENDACTIVITY > END-EXEC

Parâmetros

COMMAREA(data-area) Indica a communication area que deve ser passada para o pragrama chamado (em COBOL, o programa chamado deve dar a ela o nome de DFHCOMMAREA). A commarea é liberada antes de o próximo programa ser iniciado; uma cópia dela é criada e um pointeiro é passado.

ENDACTIVITY Somente para programas com BTS (Business Transaction Services) activities.

IMMEDIATE Assegura que a commarea seja passada para o programa correto; pode ser usado somente pelo programa dce mais alto nível (o que retornar o controle para o CICS).

INPUTMSG(data-area) Indica o nome da área que tem os dados a serempassados para o programa chamado (no primeiro RECEIVE). Os dados ficam disponíveis até o RECEIVE.

INPUTMSGLEN(data-value) Indica o nome da halfword que deve conter, em binário, o tamanho da área passada (INPUTMSG).

LENGTH(data-value) Indica o tamanho (em binário, numa halfword), em bytes, da communication area (máximo = 32500 bytes).

TRANSID(name) Indica o nome da transação (1-4 caracteres) a ser usada com a próxima mensagem de entrada do terminal da task que emitiu o RETURN.

Exemplos

EXEC CICS RETURN END-EXEC.

EXEC CICS RETURN TRANSID('TBTJ') COMMAREA(WS-CTRL-MAPA) END-EXEC.

38

Page 39: CICS_Comandos

Retornos

INVREQ, LENGERR

INVREQ RESP2 values: 1 A RETURN command with the TRANSID option is issued in a program that is not associated

with a terminal. 2 A RETURN command with the COMMAREA or IMMEDIATE option is issued by a program

that is not at the highest logical level. 4 A RETURN command with the TRANSID option is issued in a program that is associated with

an APPC logical unit. 8 A RETURN command with the INPUTMSG option is issued for a program that is not

associated with a terminal, or that is associated with an APPC logical unit, or an IRC session. 30 PG domain not initialized. Parameters are not allowed on the EXEC RETURN statement in first

stage PLT programs. 200 A RETURN command is issued with an INPUTMSG option by a program invoked by DPL. Default action: terminate the task abnormally.

LENGERR RESP2 values: 11 The COMMAREA length is less than 0 or greater than 32763. 26 The COMMAREA ADDRESS passed was zero, but the commarea length was non-zero. 27 The INPUTMSG LENGTH was less than 0 or greater than 32767. Default action: terminate the task abnormally.

39

Page 40: CICS_Comandos

XCTL

Transfere o controle de um programa para outro (num mesmo nível). O programa emitente do XCTL é liberado (encerrado).Se o programa para o qual o controle é transferido não está carregado na memória, ele é carregado.

Sintaxe

EXEC CICS XCTL PROGRAM() < COMMAREA() < LENGTH() > > < INPUTMSG() < INPUTMSGLEN() > >END-EXEC

Parâmetros

COMMAREA(data-area) Indica a communication area que deve ser passada para o pragrama chamado (em COBOL, o programa chamado deve dar a ela o nome de DFHCOMMAREA).

INPUTMSG(data-area) Indica o nome da área que tem os dados a serempassados para o programa chamado (no primeiro RECEIVE). Os dados ficam disponíveis até o RECEIVE.

INPUTMSGLEN(data-value) Indica o nome da halfword que deve conter, em binário, o tamanho da área passada (INPUTMSG).

LENGTH(data-value) Indica o tamanho (em binário, numa halfword), em bytes, da communication area.

PROGRAM(name) Indica o nome do programa para o qual o controle deve ser passado.

Exemplo

EXEC CICS XCTL PROGRAM('PROG2')

Retornos

INVREQ, LENGERR, NOTAUTH, PGMIDERR

INVREQ RESP2 values: 8 An XCTL command with the INPUTMSG option is issued for a program that is not associated

with a terminal, or that is associated with an APPC logical unit, or an IRC session. 29 EXEC XCTL is not allowed in a GLUE or TRUE. 30 The program manager domain has not yet been initialized. This is probably due to a XCTL

request having been made in a first stage PLT. 43 An XCTL has been attempted to a hot-pooled Java program object while there is already a hot-

pooled program on the stack. 200 An XCTL command with the INPUTMSG option is issued in a program invoked by DPL.

40

Page 41: CICS_Comandos

Default action: terminate the task abnormally.

LENGERR RESP2 values: 11 LENGTH is less than 0 or greater than 32763. 26 The COMMAREA address passed was zero, but LENGTH was non-zero. 27 INPUTMSGLEN was less than 0 or greater than 32767. 28 LENGTH or INPUTMSGLEN is greater than the length of the data area specified in the

COMMAREA or INPUTMSG options, and while that data was being copied a destructive overlap occurred because of the incorrect length.

Default action: terminate the task abnormally.

NOTAUTH RESP2 values: 101 A resource security check has failed on PROGRAM(name). Default action: terminate the task abnormally.

PGMIDERR RESP2 values: 1 A program has no entry in the PPT and either program autoinstall was switched off, or the

program autoinstall control program indicated that the program should not be autoinstalled. 2 The program is disabled. 3 A program could not be loaded because:

This was the first load of the program and the program load. failed, usually because the load module could not be found.

This was a subsequent load of the program, but the first load failed. 9 The installed program definition is for a remote program. 21 The program autoinstall control program failed either because the program autoinstall control

program is incorrect, incorrectly defined, or as a result of an abend in the program autoinstall control program.

22 The model returned by the program autoinstall control program was not defined in the PPT table, or was not enabled.

23 The program autoinstall control program returned invalid data. 24 Define for the program failed due to autoinstall returning an invalid program name or

definition. Default action: terminate the task abnormally.

41

Page 42: CICS_Comandos

Exemplo de programa com diversas funções CICS ID DIVISION. PROGRAM-ID. PLTPROG. ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 77 APPLID PIC X(8) VALUE SPACES. 77 SYSID PIC X(4) VALUE SPACES. 01 COMM-DATA. 03 AREA-PTR USAGE IS POINTER. 03 AREA-LENGTH PIC S9(8) COMP. LINKAGE SECTION. 01 COMMON-WORK-AREA. 03 APPL-1-ID PIC X(4). 03 APPL-1-PTR USAGE IS POINTER. 03 APPL-2-ID PIC X(4). 03 APPL-2-PTR USAGE IS POINTER. PROCEDURE DIVISION. MAIN-PROCESSING SECTION. * Obtain APPLID and SYSID values EXEC CICS ASSIGN APPLID(APPLID) SYSID(SYSID) END-EXEC. * Set up addressability to the CWA EXEC CICS ADDRESS CWA(ADDRESS OF COMMON-WORK-AREA) END-EXEC. * Get 12KB of CICS-key storage for the first application ('APP1') MOVE 12288 TO AREA-LENGTH. EXEC CICS GETMAIN SET(AREA-PTR) FLENGTH(AREA-LENGTH) SHARED END-EXEC. * Initialize CWA fields and link to load program * for storage area 1. MOVE 'APP1' TO APPL-1-ID. SET APPL-1-PTR TO AREA-PTR. EXEC CICS LINK PROGRAM('LOADTAB1') COMMAREA(COMM-DATA) END-EXEC. * Get 2KB of user-key storage for the second application ('APP2') MOVE 2048 TO AREA-LENGTH. EXEC CICS GETMAIN SET(AREA-PTR) FLENGTH(AREA-LENGTH) SHARED USERDATAKEY END-EXEC. * Initialize CWA fields and link to load program * for storage area 2. MOVE 'APP2' TO APPL-2-ID. SET APPL-2-PTR TO AREA-PTR. EXEC CICS LINK PROGRAM('LOADTAB2') COMMAREA(COMM-DATA) END-EXEC. EXEC CICS RETURN END-EXEC. MAIN-PROCESSING-EXIT. GOBACK. Sample code for loading the CWA

42

Page 43: CICS_Comandos

Exemplo de programa com LINK

* Programa chamador IDENTIFICATION DIVISION. PROGRAM ID. 'PROG1'. . WORKING-STORAGE SECTION. 01 COM-REGION. 02 FIELD PICTURE X(3). . PROCEDURE DIVISION. MOVE 'ABC' TO FIELD. EXEC CICS LINK PROGRAM('PROG2') COMMAREA(COM-REGION) LENGTH(3) END-EXEC. .

* Programa chamado IDENTIFICATION DIVISION. PROGRAM-ID. 'PROG2'. . LINKAGE SECTION. 01 DFHCOMMAREA. 02 FIELD PICTURE X(3). . PROCEDURE DIVISION. IF EIBCALEN GREATER ZERO THEN IF FIELD EQUALS 'ABC' ...

43

Page 44: CICS_Comandos

Exemplo de programa com passagem de dados via RETURN * Programa chamador IDENTIFICATION DIVISION. PROGRAM-ID. 'PROG1'. . WORKING-STORAGE SECTION. 01 TERMINAL-STORAGE. 02 FIELD PICTURE X(3). 02 DATAFLD PICTURE X(17). . PROCEDURE DIVISION. MOVE 'XYZ' TO FIELD. EXEC CICS RETURN TRANSID('TRN2') COMMAREA(TERMINAL-STORAGE) LENGTH(20) END-EXEC. . * Programa chamado IDENTIFICATION DIVISION. PROGRAM-ID. 'PROG2' . LINKAGE SECTION. 01 DFHCOMMAREA. 02 FIELD PICTURE X(3). 02 DATAFLD PICTURE X(17). . PROCEDURE DIVISION. IF EIBCALEN GREATER ZERO THEN IF FIELD EQUALS 'XYZ' MOVE 'ABC' TO FIELD. EXEC CICS RETURN END-EXEC.

44

Page 45: CICS_Comandos

27 – Comandos para manipulação de TS / TD

DELETEQ

Deleta dados (registros) da TS ou da TD.

Sintaxe

EXEC CICS DELETEQ | TD | TS | QUEUE(name) [SYSID(name)] END-EXEC

Parâmetros

|TD|TS| Indica se o registro a deletar é da TD ou da TS.

QUEUE(name) Indica o nome da queue onde está o registro a ser deletado.

SYSID(systemname)para sistemas remotos (não locais)

Exemplo

EXEC CICS DELETEQ TS QUEUE (WS-NOME-TS)END-EXEC

Retornos

IOERRErro indeterminado durante operação de I/O

ISCINVREQErro indeterminado em sistema remoto

ITEMERRNúmero do ítem especificado é inválido

LENGERRTamanho do registro é inválido ou inexistente.

NOSPACEFalta de espaço para efetuar a operação.

QIDERR

45

Page 46: CICS_Comandos

A queue indicada não pôde ser encontrada.

QZEROA queue indicada está vazia.

SYSIDERRO sistema remoto indicado está indisponível ou não está definido.

46

Page 47: CICS_Comandos

READQ TD

Lê dados (registros) da TD. READQ TD reads transient data from a queue (after which the record is no longer available). If the READQ TD command attempts to access a record in a logically recoverable intrapartition queue that is being written to, or deleted by, another task, and there are no more committed records, the command waits until the queue is no longer being used for output. If, however, the NOSUSPEND option has been specified, or there is an active HANDLE CONDITION for QBUSY, the QBUSY condition is raised.

Sintaxe

READQ TD QUEUE(name) INTO(data-area) SET(ptr-ref) LENGTH(data-area) SYSID(systemname) NOSUSPEND

Parâmetros

INTO(data-area) Nome da área para leitura do registro

LENGTH(data-area) Tamanho (em uma halfword, em binário) do registro a ser lido.

NOSUSPENDNão aguardar se o registro estiver com LOCK.

QUEUE(name) Indica o nome da queue (1-4 caracteres) a ser lida.

SET(pointer)O CICS deve providenciar um buffer para a leitura, e retornar sua localização para o aplicativo, após nele colocar o registro lido.

SYSID(systemname)Para sistemas remotos (não locais)

Exemplos

EXEC CICS READQ TD QUEUE('CSML') INTO(WS-REG-CSML) LENGTH(TAM-REG)END-EXEC

EXEC CICS READQ TD QUEUE(EX1) SET(PREF) END-EXEC

47

Page 48: CICS_Comandos

Retornos

DISABLED, INVREQ, IOERR, ISCINVREQ, LENGERR, LOCKED, NOTAUTH, NOTOPEN, QBUSY, QIDERR, QZERO, SYSIDERR

DISABLED A queue está indisponível.Default : a task termina anormalmente.

INVREQ A queue expartition foi aberta como saída e foi dado um READQ. Default : a task termina anormalmente.

IOERR Erro de I/O e o registro foi lido (se ele não conseguiu ser lido, a condição indicada é QZERO). Default : a task termina anormalmente.

ISCINVREQ O sistema remoto indica uma falha desconhecida. Default : a task termina anormalmente.

LENGERR Um READQ foi dado para uma área cujo tamanho é insuficiente para conter o registro. Default : a task termina anormalmente.

LOCKED A queue está com o acesso bloqueado. Default : a task termina anormalmente.

NOTAUTH A task solicitante não tem autorização para acessar a queue indicada. Default : a task termina anormalmente.

NOTOPEN A queue extrapartition está fechada. Default : a task termina anormalmente.

QBUSY Foi dado um READQ TD numa queue intrapartition que está sendo gravada / atualizada por outra task. Default : condição ignorada

QIDERR A queue indicada não pôde ser localizada. Default : a task termina anormalmente.

QZERO A queue está vazia ou seu fim (EOF) foi atingido. Default : a task termina anormalmente.

SYSIDERR O sistema remoto indicado não existe ou o link está fechado. Default : a task termina anormalmente.

48

Page 49: CICS_Comandos

READQ TS

Lê dados (registros) da queue de TS.

Sintaxe

EXEC CICS READQ TS ( QUEUE() | QNAME() ) < SYSID() > ( SET() | INTO() ) < LENGTH() > < ITEM() | NEXT > < NUMITEMS() >END-EXEC

Parâmetros INTO(data-area) Indica a área onde o registro deve ser lido.

ITEM(data-value) Indica uma halfword que contém o número do ítem que corresponde ao registro que se deseja ler.

LENGTH(data-area) Indica uma halfword que contém o tamanho do registro a ser lido. Se for especificado INTO, não é necessário especificar LENGTH. Se for especificado SET, LENGTH é obrigatório.

NEXT Indica que a leitura deve ser do próximo registro lógico sequencial (em relação ao último lido pela task – ou o primeiro, se não foi lido nenhum).

NUMITEMS(data-area) Indica uma halfword na qual o CICS coloca o número de itens que há na queue.

QUEUE(name) Indica o nome simbólico (1-8 caracteres) da queue a ser lida.

QNAME(name) Indica nome simbólico (1-16 caracteres) da queue a ser lida (alternativa a QUEUE).

SETo CICS deve providenciar um buffer para a leitura, e retornar sua localização para o aplicativo, após nele colocar o registro lido.

SYSID(systemname)para sistemas remotos (não locais)

49

Page 50: CICS_Comandos

Exemplos

EXEC CICS READQ TS ITEM(1) QUEUE(UNIQNAME) INTO(DATA) LENGTH(LDATA)

EXEC CICS READQ TS QUEUE(DESCRQ) SET(PREF) LENGTH(LENG) NEXT

Retornos

INVREQ, IOERR, ISCINVREQ, ITEMERR, LENGERR, NOTAUTH, QIDERR, SYSIDERR

INVREQ occurs in either of the following situations:

the queue was created by CICS internal code. the queue name specified consists solely of binary zeroes.

Default action: terminate the task abnormally.

IOERR RESP2 values: 5 There is an irrecoverable input/output error for a shared queue. Default action: terminate the task abnormally.

ISCINVREQ O sistema remoto indica uma falha desconhecida. Default action: terminate the task abnormally.

ITEMERR occurs in any of the following situations:

The item number specified is invalid (that is, outside the range of item numbers written to the queue).

An attempt is made to read beyond the end of the queue using the NEXT (default) option. Default action: terminate the task abnormally.

LENGERR occurs when the length of the stored data is greater than the value specified by the LENGTH option. This condition only applies to the INTO option and cannot occur with SET. Default action: terminate the task abnormally.

NOTAUTH RESP2 values: 101 A resource security check has failed on QUEUE(name). Default action: terminate the task abnormally.

QIDERR A queue indicada não pôde ser localizada. Default action: terminate the task abnormally.

50

Page 51: CICS_Comandos

SYSIDERR RESP2 values: 4 The CICS region in which the temporary storage command is executed fails to connect to the TS server managing the TS pool that supports the referenced temporary storage queue. (For example, this can happen if the CICS region is not authorized to access the temporary storage server). SYSIDERR can also occur if the temporary storage server has not been started, or because the server has failed (or been stopped) while CICS continues executing.Also occurs in any of the following situations: When the SYSID option specifies a name that is neither the local system nor a remote system

(made known to CICS by defining a CONNECTION). When the link to the remote system is closed. Default action: terminate the task abnormally.

51

Page 52: CICS_Comandos

WRITEQ TD

Grava um registro lógico na TD.

Sintaxe

EXEC CICS WRITEQ TD QUEUE() < SYSID() > FROM() < LENGTH() >END-EXEC

Parâmetros

FROM(data-area) Indica a área de onde o registro será obtido para gravação.

LENGTH(data-value) Indica uma halfword que contém o tamanho do registro a ser gravado.

QUEUE(name) Indica o nome simbólico (1-4 caracteres) da queue a ser gravada.

SYSID(systemname)para sistemas remotos (não locais).

Exemplos

EXEC CICS WRITEQ TD QUEUE('CSML') FROM(MESSAGE) LENGTH(LENG)

Retornos

DISABLED A queue está indisponível. Default : task terminada anormalmente.

INVREQ Foi dado um WRITEQ numa extrapartition queue aberta como input. Default : task terminada anormalmente.

IOERR Um I/O error ocorreu na gravação. Default : task terminada anormalmente.

ISCINVREQ O sistema remoto indica uma falha desconhecida. Default : task terminada anormalmente.

52

Page 53: CICS_Comandos

LENGERR A WRITEQ não especifica um tamanho (LENGTH) consistente com o RECORDSIZE ou com o control interval do arquivo intrapartition. Default : task terminada anormalmente.

LOCKED A queue está com o acesso bloqueado. Default : task terminada anormalmente.

NOSPACE Falta de espaço para efetuar a operação. Default : task terminada anormalmente.

NOTAUTH A task solicitante não tem autorização para acessar a queue indicada. Default : task terminada anormalmente.

NOTOPEN A queue extrapartition está fechada. Default : task terminada anormalmente.

QIDERR A queue indicada não pôde ser localizada. Default : task terminada anormalmente.

SYSIDERR O sistema remoto indicado não existe ou o link está fechado. Default : task terminada anormalmente.

53

Page 54: CICS_Comandos

WRITEQ TS

Grava dados (registros) na TS.

Sintaxe

EXEC CICS WRITEQ TS ( QUEUE() | QNAME() ) < SYSID() > FROM() < LENGTH() > < NUMITEMS() | ITEM() < REWRITE > > < MAIN | AUXILIARY > < NOSUSPEND >END-EXEC

Parâmetros

AUXILIARY Indica que o registro deve ser gravado em disco (e não em memória).

FROM(data-area) Indica a área de onde os dados são obtidos para a gravação.

ITEM(data-area) Indica uma halfword que contém o número do ítem (registro) a ser substituído (REWRITE deve ter sido também especificado).

LENGTH(data-value) Indica uma halfword que contém o tamanho do registro a ser gravado (max.= 32763).

MAIN Indica que o registro deve ser gravado em memória (e não em disco).

NOSUSPEND Não suspender o programa se não houver espaço (prosseguir, avisando por meio da condição de retorno NOSPACE). Somente para queue em disco.

NUMITEMS(data-area) Indica uma halfword na qual o CICS coloca o número de itens que há na queue, após o WRITE.

QUEUE(name) Indica o nome simbólico (1-8 caracteres) da queue a ser lida.

QNAME(name) Indica nome simbólico (1-16 caracteres) da queue a ser lida (alternativa a QUEUE). Não usar X'FA' a X'FF', ou **, ou $$, ou DF no início do nome (reservados para o CICS).

REWRITE Indica que o registro referenciado existe e será regravado.

SYSID(systemname)para sistemas remotos (não locais)

54

Page 55: CICS_Comandos

Retornos

INVREQ, IOERR, ISCINVREQ, ITEMERR, LENGERR, LOCKED, NOSPACE, NOTAUTH, QIDERR, SYSIDERR

INVREQ O nome da queue é somente zeros binários ou a queue está com lock ou a queue foi criada por CICS internal code. Default : task termina anormalmente.

IOERR RESP2 values: 5 There is an irrecoverable input/output error for a shared queue. Default : task termina anormalmente.

ISCINVREQ O sistema remoto indica uma falha desconhecida. Default : task termina anormalmente.

ITEMERR O número do ítem (registro) não é válido ou maior que o máximo (32767) Default : task termina anormalmente.

LENGERR O tamanho especificado é negativo, zero ou > 32763 Default : task termina anormalmente.

LOCKED RESP2 values: 0 The request cannot be performed because use of the queue has been restricted owing to a unit of work failing in-doubt. Default : task termina anormalmente.

NOSPACE Foi especificado NOSUSPEND e não há espaço para a gravaçãoda TS. Default : task termina anormalmente.

NOTAUTH RESP2 values: 101 A resource security check has failed on QUEUE(name). Default : task termina anormalmente.

QIDERR A queue referenciada não pôde ser encontrada. Default : task termina anormalmente.

SYSIDERR RESP2 values: 4 The CICS region in which the temporary storage command is executed fails to connect to the TS server managing the TS pool that supports the referenced temporary storage queue, or TS server has not been started, or server has failed (or been stopped), or the SYSID option specifies na invalid name or the link to the remote system is closed. Default : task termina anormalmente.

55

Page 56: CICS_Comandos

28 – Outros comandos

ASKTIME

Obtém data e hora (e atualiza EIBDATE e EIBTIME).

Sintaxe

ASKTIME ABSTIME(data-area)

Parâmetros

ABSTIME(data-area) Indica uma área que receberá a hora no formato decimal compactado (milisegundos arredondados em centésimos desde 00:00 de 1 de Janeiro de 1900.

Exemplos

EXEC CICS ASKTIME ABSTIME(utime)

01 UTIME PIC S9(15) COMP-3. Fica com conteúdo similar a 002837962864820.

ASSIGN

Coloca na variável especificada a informação solicitada. Ex. nome do usuário.

Sintaxe

ASSIGN informação_solicitada(variável)

Ver no Apêndice a relação completa das informações que podem ser obtidas.

Exemplo

03 WS-USUARIO-ID PIC X(08) VALUE SPACES.EXEC CICS ASSIGN USERID (WS-USUARIO-ID) END-EXEC.

BIF DEEDIT

“Desedita” um campo (built-in function). Caracteres alfabéticos e especiais são removidos, e os dígitos restantes são alinhados à direita e feito o preenchimento com zeros à esquerda. Se o campo terminar com hífen (-) ou carriage return (CR) é colocada zona negativa (X'D') no último byte à direita. Se o último byte à direita tiver zona X'A' a X'F', e a parte numérica for X'0' a X'9', ele não é alterado.

Sintaxe

BIF DEEDIT FIELD(data-area)

56

Page 57: CICS_Comandos

LENGTH(data-value)

Parâmetros

FIELD(data-area) Indica o campo a ser editado.

LENGTH(data-value) Indica o tamanho, em bytes.

Exemplo

EXEC CICS BIF DEEDIT FIELD(CONTG) LENGTH(9)

Remove todos os caracteres que não sejam dígitos decimais do campo CONTG, e retorna o resultado no mesmo campo.

Conteúdo Original Conteúdo retornado 14-6704/B 00146704B $25.68 000002568

Retornos

LENGERR Se o LENGTH for menor que 1. Default : task termina anormalmente.

FORMATTIME

Transforma data e hora do formato absoluto (oriundo do ASKTIME) num formato conforme solicitado. Valores (de milisegundos, de origem) de meio segundo (ou menos) faltando para meia-noite são arredondados para 23:59:59.

Sintaxe

EXEC CICS FORMATTIME ABSTIME() < YYDDD() > < YYMMDD() > < YYDDMM() > < DDMMYY() > < MMDDYY() > < YYYYDDD() > < YYYYMMDD() > < YYYYDDMM() > < DDMMYYYY() > < MMDDYYYY() > < FULLDATE() > < DATE() > < DATEFORM() > < DATESEP() > < DAYCOUNT() > < DAYOFWEEK() >

57

Page 58: CICS_Comandos

< YYYYDDMM() > < DDMMYYYY() > < MMDDYYYY() > < FULLDATE() > < DATE() > < DATEFORM() > < DATESEP() > < DAYCOUNT() > < DAYOFWEEK() > < DAYOFMONTH() > < MONTHOFYEAR() > < YEAR() > < TIME() < TIMESEP() > >

Parâmetros

ABSTIME(data-area) Indica a área que contém o valor (em decimal compactado) que equivale à quantidade de milisegundos decorridos desde 00:00 de 1 de Janeiro de 1900, e deve ser convertido (em Cobol : PIC S9(15) COMP-3)

DATE(data-area) Indica a variável que deve receber a data no formato especificado em DATEFORM.Separadores serão colocados se necessário. Se não for solicitado separadores, o valor retornado é alinhado à esquerda, em 8 bytes.

DATEFORM(data-area) Indica a variável onde o CICS devolve o formato definido pela instalação. O CICS retorna YYMMDD, DDMMYY, ou MMDDYY (6 caracteres) de acordo com o definido no sistema.

DATESEP(data-value) Indica o caracter que o CICS deve colocar como separador entre YY e MM e DD. Se omitido, não será colocado separador. Se especificado DATESEP(), assume barra (/).

DAYCOUNT(data-area) Indica a variável onde o CICS coloca o número de dias decorridos desde 1 de Janeiro de1900 (dia 1); deve ser uma fullword (o número será devolvido em binário).

DAYOFMONTH(data-area) Indica a variável onde o CICS deve retornar o número do dia no mês (número binário em fullword).

DAYOFWEEK(data-area) Indica o nome da variável (fullword) onde o CICS coloca o número (binário) que indica o dia da semana : Domingo=0; 2ªfeira=1; 3ª feira=2; 4ª feira=3; 5ªfeira=4;6ªfeira=5;Sábado=6.

DDMMYY(data-area) Indica a variável (8 bytes em caracter) onde o CICS deve retornar a data, no formato dia/mes/ano (por ex.: 21/10/98 – se for pedido separator ‘/’) ou sem as barras (por ex.: 211098 seguidos de 2 brancos – se não for pedido separator).

DDMMYYYY(data-area) Indica a variável (10 bytes em caracter) onde o CICS deve retornar a data, no formato dia/mes/ano (por ex.: 21/10/1998 – se for pedido separator ‘/’) ou sem as barras (por ex.: 21101998 seguidos de 2 brancos – se não for pedido separator).

58

Page 59: CICS_Comandos

FULLDATE(data-area) Indica a variável (10 bytes em caracter) onde o CICS deve retornar a data, no formato indicado poer DATEFORM , com o ano com 4 dígitos.

MMDDYY(data-area) Indica a variável (8 bytes em caracter) onde o CICS deve retornar a data, no formato mês/dia/ano (por ex.: 10/21/98 – se for pedido separator ‘/’) ou sem as barras (por ex.: 102198 seguidos de 2 brancos – se não for pedido separator).

MMDDYYYY(data-area) Indica a variável (10 bytes em caracter) onde o CICS deve retornar a data, no formato mês/dia/ano (por ex.: 10/21/98 – se for pedido separator ‘/’) ou sem as barras (por ex.: 102198 seguidos de 2 brancos – se não for pedido separator).

MONTHOFYEAR(data-area) Indica a variável na qual é colocado o número do mês (fullword em binário) : (Janeiro=1,... Dezembro=12).

TIME(data-area) Indica a variável que deve receber o horário (tipo 24hs , formato hh:mm:ss); Separadores serão colocados conforme especificado em TIMESEP.

TIMESEP(data-value) Indica o caracter que o CICS deve colocar como separador entre HH e MM e SS. Se omitido, será assumido “:”.

YEAR(data-area) Indica a variável na qual é colocado o número do ano (fullword em binário).

YYDDD(data-area) Indica a variável (6 bytes) na qual o CICS coloca a data na forma YY/DDD (com separator se assim solicitado por DATESEP).

YYDDMM(data-area) Indica a variável (8 bytes) na qual o CICS coloca a data na forma YY/DD/MM (ex.: 95/30/10) , com separator se assim solicitado via DATESEP.

YYMMDD(data-area) Indica a variável (8 bytes) na qual o CICS coloca a data na forma YY/MM/DD (ex.: 95/10/30) , com separator se assim solicitado via DATESEP.

YYYYDDD(data-area) Indica a variável (8 bytes) na qual o CICS coloca a data na forma YYYY/DDD (ex.: 1995/200) , com separator se assim solicitado via DATESEP.

YYYYDDMM(data-area) Indica a variável (10 bytes) na qual o CICS coloca a data na forma YYYY/DD/MM (ex.: 1995/30/12) , com separator se assim solicitado via DATESEP.

YYYYMMDD(data-area) Indica a variável (10 bytes) na qual o CICS coloca a data na forma YYYY/MM/DD (ex.: 1995/12/30) , com separator se assim solicitado via DATESEP.

59

Page 60: CICS_Comandos

Exemplos

EXEC CICS ASKTIME ABSTIME(ws-time) Se devolver 002837962864828 em ws-time EXEC CICS FORMATTIME ABSTIME(ws-time) DATESEP('-') DDMMYY(ws-date) TIME(ws-time) TIMESEP Devolve 06-12-89 em ws-date e 19:01:05 em "ws-time".

EXEC CICS FORMATTIME ABSTIME(WS-ABS) YYMMDD (WS-YYMMDD) END-EXEC...03 WS-YYMMDD. 05 WS-ANO PIC 9(02). 05 FILLER PIC X(01). 05 WS-MES PIC 9(02). 05 FILLER PIC X(01). 05 WS-DIA PIC 9(02).

Retornos

INVREQ RESP2 values: 1 The ABSTIME value is less than zero or not in packed-decimal format. Default action: terminate the task abnormally.

HANDLE ABEND

Para tratamento de término anormal.Pode ser emitido para ativar, reativar ou cancelar (desativar) um processamento do usuário (exit) referente a um término anormal. Pode-se suspender o comando por meio de PUSH HANDLE e POP HANDLE. Quando uma task termina anormalmente, o CICS verifica se deve ser ativada uma rotina do usuário (abend exit) ; a verificação começa no nível do programa onde ocorreu o abend e continua nos níveis mais altos. No primeiro que for achada a existência de exit (via HANDLE) o desvio (para a rotina indicada no HANDLE) é efetuado. Se for especificada COMMAREA, ela será passada para o programa (caso PROGRAM seja especificado).

Sintaxe

EXEC CICS Handle ABend < Label() | Program() | Cancel | Reset >END-EXEC

Parâmetros

CANCEL Indica que um exit estabelecido (ativado) anteriormente deve ser cancelado (desativado).

60

Page 61: CICS_Comandos

LABEL(label) Indica o procedure name do programa para onde deve ser efetuado o desvio quando o término anormal for detectado (só para Cobol).

PROGRAM(name) Indica o nome do programa para o qual o controle é passado se a task terminar anormalmente. O programa deve sempre terminar com ABEND (exceto se for chamado por erro de lógica do chamador).

RESET Indica que o exit desativado por um HANDLE ABEND CANCEL deve ser reativado.

Exemplo EXEC CICS HANDLE ABEND PROGRAM('EXITPGM') END-EXEC

Retornos

NOTAUTH, PGMIDERR (PROGRAM only)

NOTAUTH Se o programa emitente não tiver autorização para executar (chamar) o PROGRAM(name). Default : task termina anormalmente.

PGMIDERR RESP2 values: 1 The program has no entry in the PPT and autoinstall for programs is not active. 2 The program is disabled. 9 The installed program definition is for a remote program. Default : task termina anormalmente.

61

Page 62: CICS_Comandos

HANDLE AID

Estabelece que o processamento das condições de attention (AIDs = attention identifiers) especificadas deve ser feito pelo aplicativo (válido somente para Cobol e PL/I). Indica labels (nomes de pontos do programa; procedure names, no caso de Cobol) de rotinas para as

quais o CICS deve passar o controle quando um AID é recebido de um device (após um RECEIVE).

Para indicar que o programa não irá efetuar processamento do AID, deve-se especificar a condição sem mencionar um label; usa-se para desativar HANDLEs anteriores que não mais se deseja estejam ativos.

Se nenhum HANDLE AID estiver ativo para uma condição, após o RECEIVE o processamento continua na instrução seguinte (ao RECEIVE), quando então pode-se testar EIBAID para verificar qual tecla foi pressionada.

Num comando pode-se especificar no máximo 16 condições.

Sintaxe

EXEC CICS HANDLE AID < ANYKEY() > < CLEAR() > < CLRPARTN() > < ENTER() > < LIGHTPEN() > < OPERID() > < TRIGGER() > < PA1() > < PA2() > < PA3() > < PF1() > < PF2() > < PF3() > < PF4() > < PF5() > < PF6() > < PF7() > < PF8() > < PF9() > < PF10() > < PF11() > < PF12() > < PF13() > < PF14() > < PF15() > < PF16() > < PF17() > < PF18() > < PF19() > < PF20() > < PF21() > < PF22() > < PF23() > < PF24() >END-EXEC

62

Page 63: CICS_Comandos

Parâmetros

ANYKEY (PA key, qualquer PF key, ou CLEAR key, mas não o ENTER) CLEAR (Clear key) CLRPARTN (Clrpartn key) ENTER (ENTER key) LIGHTPEN (attention de light-pen) OPERID (card reader do operador, magnetic slot reader - MSR, ou MSRE – MSR Extended) PA1, PA2, or PA3 (PA keys) PF1 through PF24 (PF keys) TRIGGER (trigger field attention)

Exemplo

EXEC CICS HANDLE AID PA1(LAB1) ANYKEY(LAB2) PF10 END-EXEC

Para PA : procedure name LAB1; Para CLEAR , PA2, PA3 e todas PFs (exceto PF10) : procedure name LAB2Para PF10 ou ENTER : controle retorna para a instrução seguinte ao comando de input

Retornos

INVREQ RESP2 values: 200 The command was issued by a distributed program link server application. Default action: terminate the task abnormally.

63

Page 64: CICS_Comandos

HANDLE CONDITION

Para tratamento de condições (como fim de arquivo, registro duplicado, I/O error, etc..) pelo programa; ver a relação completa das condições no apêndice. Pode ser emitido para ativar, reativar ou cancelar (desativar) um processamento do usuário (exit)

referente a um término anormal. Especifica-se a condição desejada e o procedure name correspondente à instrução para a qual

deseja-se passar o controle. Se o procedure name for omitido, o tratamento pelo programa (previamente ativado) é desativado. Num comando pode-se especificar no máximo 16 condições. Se ocorrer uma condição que não tenha sido especificada no HANDLE CONDITION a ação

default será feita (ver no apêndice) O escopo de um HANDLE CONDITION refere-se somente ao programa onde ele foi especificado /

executado. O comando HANDLE CONDITION fica ativo enquanto o programa está sendo executado OU

Um comando IGNORE CONDITION para a mesma condição é executado Outro comando HANDLE CONDITION com a mesma condição for executado Um comando LINK é executado para chamar outro programa CICS : o tratamento em vigor

para a(s) condição(ções) não é herdado pelo programa chamado. O comando HANDLE CONDITION é (pode ser) temporariamente desativado por um parâmetro

NOHANDLE ou RESP

Sintaxe

HANDLE CONDITION condition[(label)]

Parâmetros

condition(label) Indica o nome da condição e o label do programa para onde será efetuado o desvio; ver no apêndice a relação completa das condições.

Exemplos

EXEC CICS HANDLE CONDITION ERROR(ERRHANDL) DUPREC(DUPRTN) LENGERR END-EXEC

EXEC CICS HANDLE CONDITION DUPREC (200-TRATA-ALTERACAO)

NOTOPEN (510-CLIENTES-NOT-OPEN) ERROR (522-CLIENTES-ERROR) LENGERR (560-CLIENTES-LENGTH) DSIDERR (565-CLIENTES-DSIDERR) IOERR (570-CLIENTES-IOERR) END-EXEC.

64

Page 65: CICS_Comandos

IGNORE CONDITION

Para desativar o tratamento de condições pelo programa, previamente ativadas por HANDLE CONDITION. Caso, portanto, ocorra a condição, o processamento continua na instrução seguinte ao comando que causou a condição, e o EIB é posicionado para que possa ser testado (caso o programa não seja terminado anormalmente).Num comando pode-se especificar no máximo 16 condições.

Sintaxe

IGNORE CONDITION condition

Parâmetros

condition Indica o nome da condição que se deseja ignorar; ver no apêndice a relação completa das condições.

65

Page 66: CICS_Comandos

POP HANDLE

Restaura a condição de HANDLE salva por PUSH.

Sintaxe

EXEC CICS POP HANDLE END-EXEC

Exemplo

EXEC CICS POP HANDLE END-EXEC

PUSH HANDLE

Salva a condição de HANDLE ativa.

Sintaxe

EXEC CICS PUSH HANDLE END-EXEC

Exemplo

EXEC CICS PUSH HANDLE END-EXEC

SEND

Sintaxe

EXEC CICS SEND TEXT FROM() < LENGTH() > < FMHPARM() > < REQID() > < CURSOR() > < LDC() | < ACTPARTN() > < OUTPARTN() > > < MSR() > < SET() | PAGING | TERMINAL < WAIT > < LAST > > < PRINT > < FREEKB > < ALARM > < L40 | L64 | L80 | HONEOM > < ERASE < DEFAULT | ALTERNATE > > < NLEOM > < NOEDIT < MAPPED > | ACCUM << JUSFIRST | JUSLAST | JUSTIFY() > < HEADER() > < TRAILER() > > > < FORMFEED >

66

Page 67: CICS_Comandos

Exemplos

EXEC CICS SEND TEXT FROM (WS-TEXTO3) LENGTH (+60) END-EXEC.

SYNCPOINT

Sintaxe

EXEC CICS SYNCPOINT <ROLLBACK> END-EXEC

Exemplos

EXEC CICS SYNCPOINT ROLLBACK END-EXEC

67

Page 68: CICS_Comandos

APÊNDICES

68

Page 69: CICS_Comandos

EXEC Interface Block - EIB fields

Um programa pode ler o conteúdo de qualquer campo do EIB, mas não pode alterar seu conteúdo.

EIBAID X(1). Tem o attention identifier (AID) associado à última operação (input ou control).

EIBATT X(1). Indica que a RU contem dados header incluidos (X'FF').

EIBCALEN S9(4) COMP. Tem o tamanho ca communication area que foi passada ao aplicativo pelo último programa, usando as opções COMMAREA e LENGTH. Se não foi passada communication area, tem zeros.

EIBCOMPL X(1). Indica, num comando RECEIVE, se os dados estão completos (X'FF'). Se a opção NOTRUNCATE foi usada no comando RECEIVE, o CICS retem os dados em excesso (além do especificado no LENGTH ou MAXLENGTH). O campo EIBRECV é posicionado indicando que mais RECEIVE são necessários. O campo EIBCOMPL não é posicionado até que o último dado seja obtido. O campo EIBCOMPL sempre é posicionado se o comando RECEIVE não tiver a opção NOTRUNCATE.

EIBCONF X(1). Indica que um CONFIRM foi recebido (X'FF') para uma APPC conversation.

EIBCPOSN S9(4) COMP Tem a posição (endereço) do cursor associado à última operação de input / control.

EIBDATE S9(7) COMP-3 Tem a data em que a task foi iniciada. Este campo é atualizado quando é emitido o comando ASKTIME. O formato é decimal compactado (0CYYDDD+) onde C indic ao século (0 = 1900; 1 = 2000) . Por ex. : 31 de dezembro de 1999 e 1de janeiro de 2000 tem valores de EIBDATE respectivamente de 0099365 e 0100001 .

EIBDS X(8) Tem o identificador simbólico do último arquivo referenciado numa operração de arquivo.

EIBEOC X(1) Indica end-of-chain na RU recebida (X'FF').

EIBERR X(1) Indica que um erro foi recebido (X'FF') numa APPC conversation.

EIBERRCD X(4) Se EIBERR é posicionado, EIBERRCD tem o código do erro que foi rcebido. Nos 2 primeiros bytes de EIBERRCD pode ter : X'0889' (Conversation error detectado) ou X'0824' (SYNCPOINT ROLLBACK requested).

EIBFMH X(1) Indica que os dados do usuário recebidos ou acessados tem um FMH (X'FF').

EIBFN X(2) Tem um código que identifica o último comando CICS emitido pela task. Code Command

0202 ADDRESS 0204 HANDLE CONDITION 0206 HANDLE AID 0208 ASSIGN 020A IGNORE CONDITION 020C PUSH HANDLE 020E POP HANDLE 0210 ADDRESS SET

0402 RECEIVE 0404 SEND 0406 CONVERSE 0408 ISSUE EODS 040A ISSUE COPY 040C WAIT TERMINAL 040E ISSUE LOAD 0410 WAIT SIGNAL 0412 ISSUE RESET 0414 ISSUE DISCONNECT 0416 ISSUE ENDOUTPUT 0418 ISSUE ERASEAUP 041A ISSUE ENDFILE 041C ISSUE PRINT 041E ISSUE SIGNAL 0420 ALLOCATE 0422 FREE 0424 POINT 0426 BUILD ATTACH 0428 EXTRACT ATTACH 042A EXTRACT TCT 042C WAIT CONVID 042E EXTRACT PROCESS 0430 ISSUE ABEND 0432 CONNECT PROCESS 0434 ISSUE CONFIRMATION 0436 ISSUE ERROR 0438 ISSUE PREPARE 043A ISSUE PASS

Page 70: CICS_Comandos

043C EXTRACT LOGONMSG 043E EXTRACT ATTRIBUTES

0602 READ 0604 WRITE 0606 REWRITE 0608 DELETE 060A UNLOCK 060C STARTBR 060E READNEXT 0610 READPREV 0612 ENDBR 0614 RESETBR

0802 WRITEQ TD 0804 READQ TD 0806 DELETEQ TD

0A02 WRITEQ TS 0A04 READQ TS 0A06 DELETEQ TS

0C02 GETMAIN 0C04 FREEMAIN

0E02 LINK 0E04 XCTL 0E06 LOAD 0E08 RETURN 0E0A RELEASE 0E0C ABEND 0E0E HANDLE ABEND

1002 ASKTIME 1004 DELAY 1006 POST 1008 START 1008 START ATTACH 1008 START BREXIT 100A RETRIEVE 100C CANCEL

1202 WAIT EVENT 1204 ENQ 1206 DEQ 1208 SUSPEND

1402 WRITE JOURNALNUM 1404 WAIT JOURNALNUM 1406 WRITE JOURNALNAME 1408 WAIT JOURNALNAME

1602 SYNCPOINT

1802 RECEIVE MAP 1804 SEND MAP 1806 SEND TEXT 1808 SEND PAGE 180A PURGE MESSAGE 180C ROUTE 180E RECEIVE PARTN 1810 SEND PARTNSET 1812 SEND CONTROL

1C02 DUMP

1E02 ISSUE ADD 1E04 ISSUE ERASE 1E06 ISSUE REPLACE 1E08 ISSUE ABORT 1E0A ISSUE QUERY 1E0C ISSUE END 1E0E ISSUE RECEIVE 1E10 ISSUE NOTE 1E12 ISSUE WAIT 1E14 ISSUE SEND

70

Page 71: CICS_Comandos

2002 BIF DEEDIT

2004 DEFINE COUNTER 2006 GET COUNTER 2008 UPDATE COUNTER 200A DELETE COUNTER 200C REWIND COUNTER 200E QUERY COUNTER 2014 DEFINE DCOUNTER 2016 GET DCOUNTER 2018 UPDATE DCOUNTER 201A DELETE DCOUNTER 201C REWIND DCOUNTER 201E QUERY DCOUNTER

3402 DEFINE ACTIVITY 3404 DEFINE PROCESS 3406 RUN ACTIVITY 3408 RUN ACQPROCESS 340E ACQUIRE PROCESS 3410 ACQUIRE ACTIVITYID 3412 DELETE CONTAINER 3414 GET CONTAINER 3416 PUT CONTAINER 3418 RESET ACTIVITY 341A CHECK ACTIVITY 341C CANCEL ACTIVITY 341E CANCEL ACQPROCESS 3420 SUSPEND ACTIVITY 3422 SUSPEND ACQPROCESS 3424 RESUME ACTIVITY 3426 RESUME ACQPROCESS 3428 DELETE ACTIVITY 342A LINK ACQPROCESS 342C LINK ACTIVITY 342E CANCEL ACQACTIVITY 3430 RUN ACQACTIVITY 3432 LINK ACQACTIVITY 3434 SUSPEND ACQACTIVITY 3436 RESUME ACQACTIVITY 3438 CHECK ACQPROCESS 343A CHECK ACQACTIVITY 343C RESET ACQPROCESS

3602 DEFINE INPUT EVENT 3602 DEFINE COMPOSITE EVENT 3604 DELETE EVENT 3608 ADD SUBEVENT 360A REMOVE SUBEVENT 360E TEST EVENT 3610 RETRIEVE REATTACH EVENT 3612 RETRIEVE SUBEVENT 3614 DEFINE TIMER 3616 DELETE TIMER 3618 CHECK TIMER 361A FORCE TIMER

3802 WEB RECEIVE 3804 WEB SEND 3806 WEB READ 3808 WEB STARTBROWSE 380A WEB READNEXT 380C WEB ENDBROWSE HTTPHEADER 380E WEB WRITE 3810 WEB EXTRACT 3814 WEB RETRIEVE

3C02 DOCUMENT CREATE 3C04 DOCUMENT INSERT 3C06 DOCUMENT RETRIEVE 3C08 DOCUMENT SET

3E0E EXTRACT TCPIP 3E10 EXTRACT CERTIFICATE

4802 ENTER TRACENUM 4804 MONITOR

71

Page 72: CICS_Comandos

4A02 ASKTIME ABSTIME 4A04 FORMATTIME

5602 SPOOLOPEN 5604 SPOOLREAD 5606 SPOOLWRITE 5610 SPOOLCLOSE

5E06 CHANGE TASK 5E22 WAIT EXTERNAL 5E32 WAITCICS

6A02 QUERY SECURITY 6C02 WRITE OPERATOR 6C12 ISSUE DFHWTO

7402 SIGNON 7404 SIGNOFF 7406 VERIFY PASSWORD 7408 CHANGE PASSWORD

7E02 DUMP TRANSACTION

Codes 82nn and 84nn are used by the CICS Front End Programming Interface.

EIBFREE X(1) Indica que o programa aplicativo não pode continuar usando um recurso. Deve liberar o recurso ou terminar para que o recurso seja liberado pelo CICS. (X'FF').

EIBNODAT X(1) Indica que não foram enviados dados pela aplicação remota (X'FF'). Uma mensagem foi recebida do sistema remoto somente com informações de controle.

EIBRCODE X(6) Tem o response code (código de retorno) do CICS depois que uma função solicitada pelo último comando CICS foi completada. Nota: para novos comandos onde EIBRESP e EIBRESP2 são os meios adequados de obter o retorno do CICS, o byte 3 do EIBRCODE tem o mesmo valor de EIBRESP. Para retorno normal, este campo tem 6X'00'A lista a seguir tem os valores dos bytes e seus respectivos nomes associados aos retornos, para teste (NOTAS NO FIM DESTA TABELA)

EIBFN EIBRCODE Condition 02 .. E0 .. .. .. .. .. INVREQ       04 .. 04 .. .. .. .. .. EOF 04 .. 10 .. .. .. .. .. EODS 04 .. C1 .. .. .. .. .. EOF 04 .. C2 .. .. .. .. .. ENDINPT 04 .. D0 .. .. .. .. .. SYSIDERR (see note 1) 04 .. D2 .. .. .. .. .. SESSIONERR (see note 2) 04 .. D3 .. .. .. .. .. SYSBUSY (see note 3) 04 .. D4 .. .. .. .. .. SESSBUSY 04 .. D5 .. .. .. .. .. NOTALLOC 04 .. E0 .. .. .. .. .. INVREQ (see note 4) 04 .. E1 .. .. .. .. .. LENGERR (see note 5) 04 .. E3 .. .. .. .. .. WRBRK 04 .. E4 .. .. .. .. .. RDATT 04 .. E5 .. .. .. .. .. SIGNAL 04 .. E6 .. .. .. .. .. TERMIDERR 04 .. E7 .. .. .. .. .. NOPASSBKRD 04 .. E8 .. .. .. .. .. NOPASSBKWR 04 .. EA .. .. .. .. .. IGREQCD 04 .. EB .. .. .. .. .. CBIDERR 04 .. EC .. .. .. .. .. PARTNERIDERR 04 .. ED .. .. .. .. .. NETNAMEIDERR 04 .. F1 .. .. .. .. .. TERMERR 04 .. .. 20 .. .. .. .. EOC 04 .. .. 40 .. .. .. .. INBFMH 04 .. .. .. .. F6 .. .. NOSTART 04 .. .. .. .. F7 .. .. NONVAL       06 .. 01 .. .. .. .. .. FILENOTFOUND 06 .. 02 .. .. .. .. .. ILLOGIC (see note 6) 06 .. 03 .. .. .. .. .. LOCKED 06 .. 05 .. .. .. .. .. RECORDBUSY 06 .. 08 .. .. .. .. .. INVREQ 06 .. 0C .. .. .. .. .. NOTOPEN 06 .. 0D .. .. .. .. .. DISABLED 06 .. 0F .. .. .. .. .. ENDFILE

72

Page 73: CICS_Comandos

06 .. 80 .. .. .. .. .. IOERR (see note 6) 06 .. 81 .. .. .. .. .. NOTFND 06 .. 82 .. .. .. .. .. DUPREC 06 .. 83 .. .. .. .. .. NOSPACE 06 .. 84 .. .. .. .. .. DUPKEY 06 .. 85 .. .. .. .. .. SUPPRESSED 06 .. 86 .. .. .. .. .. LOADING 06 .. D0 .. .. .. .. .. SYSIDERR (see note 1) 06 .. D1 .. .. .. .. .. ISCINVREQ 06 .. D6 .. .. .. .. .. NOTAUTH 06 .. E1 .. .. .. .. .. LENGERR       08 .. 01 .. .. .. .. .. QZERO 08 .. 02 .. .. .. .. .. QIDERR 08 .. 04 .. .. .. .. .. IOERR 08 .. 08 .. .. .. .. .. NOTOPEN 08 .. 10 .. .. .. .. .. NOSPACE 08 .. C0 .. .. .. .. .. QBUSY 08 .. D0 .. .. .. .. .. SYSIDERR (see note 1) 08 .. D1 .. .. .. .. .. ISCINVREQ 08 .. D6 .. .. .. .. .. NOTAUTH 08 .. D7 .. .. .. .. .. DISABLED 08 .. E0 .. .. .. .. .. INVREQ 08 .. E1 .. .. .. .. .. LENGERR       0A .. 01 .. .. .. .. .. ITEMERR 0A .. 02 .. .. .. .. .. QIDERR 0A .. 04 .. .. .. .. .. IOERR 0A .. 08 .. .. .. .. .. NOSPACE 0A .. 20 .. .. .. .. .. INVREQ 0A .. D0 .. .. .. .. .. SYSIDERR (see note 1) 0A .. D1 .. .. .. .. .. ISCINVREQ 0A .. D6 .. .. .. .. .. NOTAUTH 0A .. E1 .. .. .. .. .. LENGERR       0C .. E1 .. .. .. .. .. LENGERR 0C .. E2 .. .. .. .. .. NOSTG       0E .. 01 .. .. .. .. .. PGMIDERR 0E .. D6 .. .. .. .. .. NOTAUTH 0E .. E0 .. .. .. .. .. INVREQ 0E .. E1 .. .. .. .. .. LENGERR 0E .. F1 .. .. .. .. .. TERMERR       10 .. 01 .. .. .. .. .. ENDDATA 10 .. 04 .. .. .. .. .. IOERR 10 .. 11 .. .. .. .. .. TRANSIDERR 10 .. 12 .. .. .. .. .. TERMIDERR 10 .. 20 .. .. .. .. .. EXPIRED 10 .. 81 .. .. .. .. .. NOTFND 10 .. D0 .. .. .. .. .. SYSIDERR (see note 1) 10 .. D1 .. .. .. .. .. ISCINVREQ 10 .. D6 .. .. .. .. .. NOTAUTH 10 .. D8 .. .. .. .. .. USERIDERR 10 .. E1 .. .. .. .. .. LENGERR 10 .. E9 .. .. .. .. .. ENVDEFERR 10 .. FF .. .. .. .. .. INVREQ       12 .. 32 .. .. .. .. .. ENQBUSY 12 .. E0 .. .. .. .. .. INVREQ 12 .. E1 .. .. .. .. .. LENGERR       14 .. 01 .. .. .. .. .. JIDERR 14 .. 02 .. .. .. .. .. INVREQ 14 .. 05 .. .. .. .. .. NOTOPEN 14 .. 06 .. .. .. .. .. LENGERR 14 .. 07 .. .. .. .. .. IOERR 14 .. 09 .. .. .. .. .. NOJBUFSP 14 .. D6 .. .. .. .. .. NOTAUTH       16 .. 01 .. .. .. .. .. ROLLEDBACK       18 .. 01 .. .. .. .. .. INVREQ 18 .. 02 .. .. .. .. .. RETPAGE 18 .. 04 .. .. .. .. .. MAPFAIL 18 .. 08 .. .. .. .. .. INVMPSZ (see note 7) 18 .. 20 .. .. .. .. .. INVERRTERM

73

Page 74: CICS_Comandos

18 .. 40 .. .. .. .. .. RTESOME 18 .. 80 .. .. .. .. .. RTEFAIL 18 .. E1 .. .. .. .. .. LENGERR 18 .. E3 .. .. .. .. .. WRBRK 18 .. E4 .. .. .. .. .. RDATT 18 .. .. 02 .. .. .. .. PARTNFAIL 18 .. .. 04 .. .. .. .. INVPARTN 18 .. .. 08 .. .. .. .. INVPARTNSET 18 .. .. 10 .. .. .. .. INVLDC 18 .. .. 20 .. .. .. .. UNEXPIN 18 .. .. 40 .. .. .. .. IGREQCD 18 .. .. 80 .. .. .. .. TSIOERR 18 .. .. .. 01 .. .. .. OVERFLOW 18 .. .. .. 04 .. .. .. EODS 18 .. .. .. 08 .. .. .. EOC 18 .. .. .. 10 .. .. .. IGREQID       1A .. E0 .. .. .. .. .. INVREQ 1A .. 04 .. .. .. .. .. DSSTAT 1A .. 08 .. .. .. .. .. FUNCERR 1A .. 0C .. .. .. .. .. SELNERR 1A .. 10 .. .. .. .. .. UNEXPIN 1A .. E1 .. .. .. .. .. LENGERR 1A .. .. 11 .. .. .. .. EODS 1A .. .. 2B .. .. .. .. IGREQCD 1A .. .. .. 20 .. .. .. EOC       22 .. 80 .. .. .. .. .. INVEXITREQ 4A .. .. .. .. 01 .. .. INVREQ       56 .. .. .. .. 0D .. .. NOTFND 56 .. .. .. .. 10 .. .. INVREQ 56 .. .. .. .. 13 .. .. NOTOPEN 56 .. .. .. .. 14 .. .. ENDFILE 56 .. .. .. .. 15 .. .. ILLOGIC 56 .. .. .. .. 16 .. .. LENGERR 56 .. .. .. .. 2A .. .. NOSTG 56 .. .. .. .. 46 .. .. NOTAUTH 56 .. .. .. .. 50 .. .. NOSPOOL 56 .. .. .. .. 55 .. .. ALLOCERR 56 .. .. .. .. 56 .. .. STRELERR 56 .. .. .. .. 57 .. .. OPENERR 56 .. .. .. .. 58 .. .. SPOLBUSY 56 .. .. .. .. 59 .. .. SPOLERR 56 .. .. .. .. 5A .. .. NODEIDERR

EIBRECV X(1) Indica que o programa aplicativo deve continuar a receber dados por RECEIVE (X'FF').

EIBREQID X(1) Tem o request identifier assinalado pelo CICS para um comando que use intervalo.

EIBRESP S9(8) COMP Tem o número que corresponde à condição de RESP que ocorreu. Esses números são (em decimal): No. Condition 00 NORMAL 01 ERROR 02 RDATT 03 WRBRK 04 EOF 05 EODS 06 EOC 07 INBFMH 08 ENDINPT 09 NONVAL 10 NOSTART 11 TERMIDERR 12 FILENOTFOUND 13 NOTFND 14 DUPREC 15 DUPKEY 16 INVREQ 17 IOERR 18 NOSPACE 19 NOTOPEN 20 ENDFILE 21 ILLOGIC 22 LENGERR 23 QZERO 24 SIGNAL

74

Page 75: CICS_Comandos

25 QBUSY 26 ITEMERR 27 PGMIDERR 28 TRANSIDERR 29 ENDDATA 31 EXPIRED 32 RETPAGE 33 RTEFAIL 34 RTESOME 35 TSIOERR 36 MAPFAIL 37 INVERRTERM 38 INVMPSZ 39 IGREQID 40 OVERFLOW 41 INVLDC 42 NOSTG 43 JIDERR 44 QIDERR 45 NOJBUFSP 46 DSSTAT 47 SELNERR 48 FUNCERR 49 UNEXPIN 50 NOPASSBKRD 51 NOPASSBKWR 53 SYSIDERR 54 ISCINVREQ 55 ENQBUSY 56 ENVDEFERR 57 IGREQCD 58 SESSIONERR 59 SYSBUSY 60 SESSBUSY 61 NOTALLOC 62 CBIDERR 63 INVEXITREQ 64 INVPARTNSET 65 INVPARTN 66 PARTNFAIL 69 USERIDERR 70 NOTAUTH 72 SUPPRESSED 80 NOSPOOL 81 TERMERR 82 ROLLEDBACK 83 END 84 DISABLED 85 ALLOCERR 86 STRELERR 87 OPENERR 88 SPOLBUSY 89 SPOLERR 90 NODEIDERR 91 TASKIDERR 92 TCIDERR 93 DSNNOTFOUND 94 LOADING 95 MODELIDERR 96 OUTDESCRERR 97 PARTNERIDERR 98 PROFILEIDERR 99 NETNAMERR 100 LOCKED 101 RECORDBUSY 102 UOWNOTFOUND 103 UOWLNOTFOUND 104 LINKABEND 105 CHANGED 106 PROCESSBUSY 107 ACTIVITYBUSY 108 PROCESSERR 109 ACTIVITYERR 110 CONTAINERERR 111 EVENTERR 112 TOKENERR 113 NOTFINISHED

75

Page 76: CICS_Comandos

114 POOLERR 115 TIMERERR 116 SYMBOLERR 117 TEMPLATERR

EIBRESP2 S9(8) COMP Tem informações mais detalhadas referentes à condição de RESP ocorrida. Para requests de files remotos, EIBRESP2 tem zeros.

EIBRLDBK X(1) Indica rollback.

EIBRSRCE X(8) Tem o symbolic identifier do recurso sendo acessado pelo último comando, conforme tabela a seguir :Command type Resource Length BMS Map name 7 File control File name 8 Interval control Transaction name 4 Journal control Journal number H Journal control Journal name 8 Program control Program name 8 Temporary storage control TS queue name 8 or 16 Terminal control Terminal name; LU name; LU6.1

session or APPC convid 4 Transient data control TD queue name 4

Notes: 1. H= halfword binary. 2. Identifiers less than eight characters in length are padded on the right with blanks. 3. Identifiers greater than eight characters in length will be truncated.

EIBSIG X(1) Indica que foi recebido SIGNAL (X'FF').

EIBSYNC X(1) Indica que o programa aplicativo deve efetuar um syncpoint ou terminar. Antes de fazer isso, ele deve se assegurar que outros recursos que possui sejam postos em send state, ou liberados (X'FF').

EIBSYNRB X(1) Indica que o programa aplicativo deve emitir um comando SYNCPOINT ROLLBACK (X'FF').

EIBTASKN S9(7) COMP-3 Tem o número da task assinalado pelo CICS ( em decimal compactado)

EIBTIME S9(7) COMP-3 Tem o horário em que a task foi iniciada (atualizado pelo comando ASKTIME). Formato decimal compactado (0HHMMSS+), podendo ter valores desde 0000000+ to 0240000+ (0000000+ e 0240000+ são válidos).

EIBTRMID X(4) Tem a identificação do terminal simbólico do terminal ou LU associado à task.

EIBTRNID X(4) Tem o identificador da transação simbólica da task.

Notas: 1. Se ocorrer SYSIDERR, informações complementares existem nos bytes 1 e 2 de EIBRCODE : .. 04 00 .. .. .. request was for a function that is not valid .. 04 04 .. .. .. no session available and NOQUEUE .. 04 08 .. .. .. modename not found (for APPC only). .. 04 0C .. .. .. modename not valid (for APPC only). .. 04 10 .. .. .. task canceled or timed out during allocation (for APPC only). .. 04 14 .. .. .. mode group is out of service (for APPC only). .. 04 18 .. .. .. close - DRAIN=ALL (for APPC only). .. 08 .. .. .. .. sysid is not available. .. 08 00 .. .. .. no session available, all sessions are out of service, or released, or being quiesced. .. 08 04 .. .. .. no session available, request to queue rejected by XZIQUE global user exit program. .. 08 08 .. .. .. no session available; request rejected by XZIQUE global user exit program. .. 0C xx .. .. .. sysid definition error. .. 0C 00 .. .. .. name not that of TCTSE. .. 0C 04 .. .. .. name not that of remote TCTSE. .. 0C 08 .. .. .. mode name not found. .. 0C 0C .. .. .. profile not found.

2. Se ocorrer SESSIONERR, informações complementares existem nos bytes 1 e 2 de EIBRCODE : .. 08 .. .. .. .. session out of service .. 0C xx .. .. .. session definition error .. 0C 00 .. .. .. name not found .. 0C 0C .. .. .. profile not found.

76

Page 77: CICS_Comandos

3. Se ocorrer SYSBUSY num comando ALLOCATE, o byte 3 de EIBRCODE indica onde a condição de erro foi detectada : .. .. .. 00 .. .. the request was for a session to a connected terminal or system. .. .. .. 01 .. .. the request was for a session to a remotely connected terminal or system, and the error

occurred in the terminal-owning region (TOR) or an intermediate system. .. .. .. 02 .. .. the request was for a session to a remotely connected terminal or system, and the error

occurred in the application-owning region (AOR)

4. Se ocorrer INVREQ, informações adicionais podem existir nos bytes 1 ou 3 de EIBRCODE : .. 24 .. .. .. .. ISSUE PREPARE command – STATE error. .. .. .. 04 .. .. ALLOCATE command - TCTTE already allocated. .. .. .. 08 .. .. FREE command - TCTTE in wrong state. .. .. .. 0C .. .. CONNECT PROCESS command. SYNCLVL 2 requested but cannot be supported on session in use. .. .. .. 10 .. .. EXTRACT ATTACH command – incorrect data. .. .. .. 14 .. .. SEND command - CONFIRM option specified, but conversation not SYNCLVL 1. .. .. .. 18 .. .. EXTRACT TCT command - incorrect netname. .. .. .. 1C .. .. an incorrect command has been issued for the terminal or logical unit in use. .. .. .. 20 .. .. an incorrect command has been issued for the LUTYPE6.2 conversation type in use. .. .. .. 28 .. .. GETMAIN failure on ISSUE PASS command. .. .. .. 2C .. .. Command invalid in DPL environment.

5. Se ocorrer LENGERR, informações adicionais podem existir nos bytes 1 ou 3 de EIBRCODE :.. 00 .. .. .. .. input data is overlong and has been truncated. .. 04 .. .. .. .. on output commands, an incorrect (FROM) LENGTH has been specified, either < zero or > 32.767. .. 08 .. .. .. .. on input commands, an incorrect (TO) LENGTH has been specified, > 32.767. .. 0C .. .. .. .. length error has occurred on ISSUE PASS command.Note: This field is not used exclusively for the above and may take other values.

6. Se ocorrer ILLOGIC ou IOERR, informações adicionais existem no campo EIBRCODE .. xx xx xx xx .. BDAM response. .. xx .. .. .. .. VSAM return code. .. .. xx .. .. .. VSAM error code.

onde : byte 3 = VSAM problem determination code (ILLOGIC only) byte 4 = VSAM component code (ILLOGIC only)

7. Se ocorrer INVMPSZ, o byte 3 do campo EIBRCODE tem o código do terminal : .. .. .. xx .. .. terminal code.

77

Page 78: CICS_Comandos

Resumo comandos CICS

[ ] indicate optional parameters, [ | ] indicates a choice of one of the options listed (or none), { | } indicates you must specify one of the options.

Abend force the current task to terminate abnormallyEXEC CICS ABEND [ABCODE(name)] [CANCEL] [NODUMP] END-EXEC.

Address lets you access system information maintained in storage outside your programEXEC CICS ADDRESS [ACEE(pointer-ref)] [COMMAREA(pointer-ref)] [CSA(pointer-ref)] [CWA(pointer-ref)] [EIB(pointer-ref)] [TCTUA(pointer-ref)] [TWA(pointer-ref)] END-EXEC.

Allocate establishes a distributed processing session with another systemEXEC CICS ALLOCATE SYSID(name) [PROFILE(name)] [NOQUEUE | NOSUSPEND] [STATE(data-area)] END-EXEC.

Asktime obtain current time and dateEXEC CICS ASKTIME [ABSTIME(data-area)] END-EXEC.

Assign obtain information from various system control areasEXEC CICS ASSIGN option(data-area) END-EXEC.

Bif deedit formats alphanumeric data into numeric dataEXEC CICS BIF DEEDIT FIELD(data-area) [LENGTH(data-value)] END-EXEC.

Build attach creates an ATTACH FMH used to initiate a background transaction with LU6.1 or MROEXEC CICS BUILD ATTACH ATTACHID(name) [PROCESS(name)] [RESOURCE(name)] [RPROCESS(name)] [RRESOURCE(name)] [QUEUE(name)] [IUTYPE(data-value)] [DATASTR(data-value)] [RECFM(data-value)] END-EXEC.

Cancel cancels the effect of a DELAY, POST, or START commandEXEC CICS CANCEL [REQID(name)] [TRANSID(name)] [SYSID(name)] END-EXEC.

Change task changes the priority of the current taskEXEC CICS CHANGE TASK PRIORITY(data-value) END-EXEC.

Connect process initiates an application program on a remote system once a session has been ALLOCATEdEXEC CICS CONNECT PROCESS {CONV(name) | SESSION(name) } PROCNAME(data-area) PROCLENGTH(data-area) SYNCLEVEL(data-area) [PIPLIST(data-area) PIPLENGTH(data-value)] [STATE(data-area)] END-EXEC.

Converse send data to a remote process and receive a responseEXEC CICS CONVERSE [CONVID(name) | SESSION(name)] [ATTACHID(name)] FROM(data-area) { FROMLENGTH(data-area) | FROMFLENGTH(data-area) } { INTO(data-area) | SET(pointer-ref) } {TOLENGTH(data-area) | TOFLENGTH(data-area) } [MAXLENGTH(data-value) | MAXFLENGTH(data-value)] [NOTRUNCATE] [STATE(data-area)] END-EXEC.

Delay suspend a taskEXEC CICS DELAY [INTERVAL(hhmmss) | TIME(hhmmss) | FOR [HOURS(hh)] [MINUTES(mm)] [SECONDS(ss)] | UNTIL [HOURS(hh)] [MINUTES(mm)] [SECONDS(ss)]] [REQID(name)] END-EXEC.

Delete remove a record from a fileEXEC CICS DELETE { DATASET(name) | FILE(name) } [RIDFLD(data-area) [KEYLENGTH(data-value) [GENERIC [NUMREC(data-area)]]]] [RBA | RRN] [SYSID(name)] END-EXEC.

Deleteq td remove a record from a transient data queueEXEC CICS DELETEQ TD QUEUE(name) [SYSID(name)] END-EXEC.

Deleteq ts Remove a record from a temporary storage queueEXEC CICS DELETEQ TS QUEUE(name) [SYSID(name)] END-EXEC.

Deq release a user defined resourceEXEC CICS DEQ RESOURCE(data-area) [LENGTH(data-value)] [LUW | TASK | MAXLIFETIME(data-area)] END-EXEC.

Dump force a storage dumpEXEC CICS DUMP [TRANSACTION] DUMPCODE(name) [FROM(data-area) [LENGTH(data-value) | FLENGTH(data-value)]] [SEGMENTLIST(data-area) LENGTHLIST(data-area) NUMSEGMENTS(data-area)] [COMPLETE] [TRT]

78

Page 79: CICS_Comandos

[TASK] [STORAGE] [PROGRAM] [TERMINAL] [TABLES] [DCT] [FCT] [PCT] [PPT] [SIT] [TCT] END-EXEC.

Endbr terminate a browse operationEXEC CICS ENDBR { DATASET(name) | FILE(name) } REQID(data-value) [SYSID(name)] END-EXEC.

Enq reserve a user defined resourceEXEC CICS ENQ RESOURCE(data-area) [LENGTH(data-value)] [NOSUSPEND] [LUW | TASK | MAXLIFETIME(data-area)] END-EXEC.

Enter write a user trace entry into the CICS trace tableEXEC CICS ENTER {TRACENUM(data-value) | TRACEID(data-value) } [FROM(data-area) [FROMLENGTH(data-area)]] [RESOURE(data-area)] [EXCEPTION] END-EXEC.

Extract attach retrieve values from an ATTACH FMHEXEC CICS EXTRACT ATTACH [ATTACHID(name) | CONVID(name) | SESSION(name)] [PROCESS(name)] [RESOURCE(name)] [RPROCESS(name)] [RRESOURCE(name)] [QUEUE(name)] [IUTYPE(data-value)] [DATASTR(data-value)] [RECFM(data-value)] END-EXEC.

Extract attributes determine the current state of an MRO or APPC conversationEXEC CICS EXTRACT ATTRIBUTES [CONVID(name) | SESSION(name)] [STATE(data-value)] END-EXEC.

Extract process used in a back end program to obtain information passed via the CONNECT PROCESS command in the front end programEXEC CICS EXTRACT PROCESS [CONVID(name) | SESSION(name)] [PROCNAME(data-value)PROCLENGTH(data-area) [MAXPROCLEN(data-value)]] [SYNCLEVEL(data-area)] [PIPLIST(data-area) PIPLENGTH(data-value)] END-EXEC.

Formattime convert time to required formatEXEC CICS FORMATTIME ABSTIME(data-value) [YYDDD(data-area)] [YYMMDD(data-area)] [YYDDMM(data-area)] [DDMMYY(data-area)] [MMDDYY(data-area)] [DATE(data-area) [DATEFORM(data-area)]] [DATESEP[(data-value)]] [DAYCOUNT(data-area)] [DAYOFWEEK(data-area)] [DAYOFMONTH(data-area)] [MONTHOFYEAR(data-area)] [YEAR(data-area)] [TIME(data-area) [TIMESEP[(data-value)]]] END-EXEC.

Free release a distributed processing sessionEXEC CICS FREE [CONVID(name) | SESSION(name)] [STATE(data-area)] END-EXEC.

Freemain release virtual storageEXEC CICS FREEMAIN { DATA(data-area) | DATAPOINTER(pointer-ref) } END-EXEC.

Getmain acquire virtual storageEXEC CICS GETMAIN SET(pointer-ref) { LENGTH(data-value) | FLENGTH(data-value) [BELOW] } [INITIMG(data-value)] [NOSUSPEND] [SHARED] {USERKEY | CICSKEY] END-EXEC.

Handle abend establish abend exitsEXEC CICS HANDLE ABEND { PROGRAM(name) | LABEL(label) | CANCEL | RESET } END-EXEC.

Handle aid establish routines to be invoked when AID keys (enter, pf and pa keys) are detected by a receive mapEXEC CICS HANDLE AID option [(label)] END-EXEC.

Handle condition specifies how certain exception conditions should be processedEXEC CICS HANDLE CONDITION condition-name [(label)] END-EXEC.

Ignore condition specifies that certain exception conditions should be ignoredEXEC CICS IGNORE CONDITION condition-name ... END-EXEC.

Link invoke a program, return to the next statement after completionEXEC CICS LINK PROGRAM(name) [COMMAREA(data-area) [LENGTH(data-value)] [DATALENGTH(data-value)]] [INPUTMSG(data-area) [INPUTMSGLEN(data-value)]] [SYSID(name)] [SYNCONRETURN] [TRANSID(name)] END-EXEC.

Load retrieve and load an object module and return its length and addressEXEC CICS LOAD PROGRAM(name) [SET(pointer-ref)] [LENGTH(data-area) |

79

Page 80: CICS_Comandos

FLENGTH(data-area)] [ENTRY(pointer-ref)] [HOLD] END-EXEC.Pop handle restores handle abend, aid, and conditions temporarily suspended by push handle

EXEC CICS POP HANDLE END-EXEC.Post create a Timer Event Control Area

EXEC CICS POST [INTERVAL(hhmmss) | TIME(hhmmss) | AFTER [HOURS(hh)] [MINUTES(mm)] [SECONDS(ss)] | AT [HOURS(hh)] [MINUTES(mm)] [SECONDS(ss)]] SET(pointer-ref) [REQID(name)] END-EXEC.

Purge message delete a logical message before the task terminatesEXEC CICS PURGE MESSAGE END-EXEC.

Push handle temporarily suspend handle abend, aid, and conditionsEXEC CICS PUSH HANDLE END-EXEC.

Read read a record from a fileEXEC CICS READ { DATASET(name) | FILE(name) } { INTO(data-area) | SET(pointer-ref) } [LENGTH(data-area)] RIDFLD(data-area) [KEYLENGTH(data-area) [GENERIC]] [SYSID(name)] [RBA | RRN] [GTEQ | EQUAL] [UPDATE] END-EXEC.

Readnext read the next sequential record from a fileEXEC CICS READNEXT { DATASET(name) | FILE(name) } { INTO(data-area) | SET(pointer-ref) } [LENGTH(data-area)] RIDFLD(data-area) [KEYLENGTH(data-area)] [SYSID(name)] [RBA | RRN] [REQID(data-value)] END-EXEC.

Readprev read the previous sequential record from a fileEXEC CICS READPREV { DATASET(name) | FILE(name) } { INTO(data-area) | SET(pointer-ref) } [LENGTH(data-area)] RIDFLD(data-area) [KEYLENGTH(data-area)] [SYSID(name)] [RBA | RRN] [REQID(data-value)] END-EXEC.

Readq td read a record from a transient data queueEXEC CICS READQ TD QUEUE(name) { INTO(data-area) | SET(pointer-ref) } [LENGTH(data-area)] [SYSID(name)] [NOSUSPEND] END-EXEC.

Readq ts read a record from a temporary storage queueEXEC CICS READQ TS QUEUE(name) { INTO(data-area) | SET(pointer-ref) } [LENGTH(data-area)] [NUMITEMS(data-area)] [ITEM(data-value) | NEXT] [SYSID(name)] END-EXEC.

Receive (distributed) receive data sent by a remote processEXEC CICS RECEIVE [CONVID(name) | SESSION(name)] { INTO(data-area) | SET(pointer-ref) } { LENGTH(data-area) | FLENGTH(data-area) } [MAXLENGTH(data-value) | MAXFLENGTH(data-value)] [NOTRUNCATE] [STATE(data-area)] END-EXEC.

Receive (terminal) retrieve input data from a terminalEXEC CICS RECEIVE { INTO(data-area) | SET(pointer-ref) } { LENGTH(data-area) | FLENGTH(data-area) } [MAXLENGTH(data-value) | MAXFLENGTH(data-value)] [NOTRUNCATE] [ASIS] [BUFFER] END-EXEC.

Receive map receive data from a terminal via BMSEXEC CICS RECEIVE MAP(name) [MAPSET(name)] [INTO(data-area) | SET(pointer-ref)] [ASIS] END-EXEC.

Release free virtual storage acquired via a load commandEXEC CICS RELEASE PROGRAM(name) END-EXEC.

Resetbr re-establish position for a browseEXEC CICS RESETBR { DATASET(name) | FILE(name) } RIDFLD(data-area) [KEYLENGTH(data-value) [GENERIC]] [RBA | RRN] [GTEQ | EQUAL] [REQID(data-value)] [SYSID(name)] END-EXEC.

Retrieve retrieves data passed to another program via the start commandEXEC CICS RETRIEVE [INTO(data-area) | SET(pointer-ref)] [LENGTH(data-area)] [RTRANSID(data-area)] [RTERMID(data-area)] [QUEUE(data-area)] [WAIT] END-EXEC.

Return return to the invoking programEXEC CICS RETURN [TRANSID(name) [COMMAREA(data-area) LENGTH(data-value)]] [IMMEDIATE]] [INPUTMSG(data-area) [INPUTMSGLEN(data-value)]] END-EXEC.

Rewrite updates a record in a file

80

Page 81: CICS_Comandos

EXEC CICS REWRITE { DATASET(name) | FILE(name) } FROM(data-area) [LENGTH(data-area)] [SYSID(name)] END-EXEC.

Route allows BMS messages to be routed to multiple terminalsEXEC CICS ROUTE [LIST(data-area)] [OPCLASS(data-area)] [INTERVAL(hhmmss) | AFTER [HOURS(hh)] [MINUTES(mm)] [SECONDS(ss)] | AT [HOURS(hh)] [MINUTES(mm)] [SECONDS(ss)]] [ERRTERM{(name)]] [TITLE(data-area)] [REQID(name)] [NLEOM] END-EXEC.

Send (distributed) send data to a remote processEXEC CICS SEND [CONVID(name) | SESSION(name)] [ATTACHID(name)] [FROM(data-area) [LENGTH(data-area) | FLENGTH(data-area)]] [INVITE | LAST] [CONFIRM | WAIT] [STATE(data-area)] END-EXEC.

Send (terminal) send data to a terminalEXEC CICS SEND FROM(data-area) [LENGTH(data-area) | FLENGTH(data-area)] [DEST(name)] [WAIT] [INVITE | LAST] [DEFRESP] [STRFIELD] [ERASE] [CTLCHAR(data-area)] END-EXEC.

Send control send device control instructions to a terminalEXEC CICS SEND CONTROL [ERASEAUP | ERASE] [ALARM] [FREEKB] [FRSET] [CURSOR(data-value)] [PRINT] [FORMFEED] [ACCUM] [PAGING | TERMINAL [WAIT] [LAST]] [L40 | L64 | L80 | HONEOM] [REQID(name)] END-EXEC.

Send map send data to a terminal via BMSEXEC CICS SEND MAP(name) [MAPSET(name)] [FROM(data-area)] [LENGTH(data-value)] [DATAONLY | MAPONLY] [ERASEAUP | ERASE] [ALARM] [FREEKB] [FRSET] [CURSOR(data-value)] [PRINT] [FORMFEED] [NLEOM] [ACCUM] [PAGING | TERMINAL [WAIT]] [LAST] [L40 | L64 | L80 | HONEOM] [REQID(name)] END-EXEC.

Send page write the last page of a BMS message to temporary storageEXEC CICS SEND PAGE [RELEASE [TRANSID(name)] | RETAIN] [AUTOPAGE | NOAUTOPAGE] [OPERPURGE] [TRAILER(data-area)] END-EXEC.

Send text send data to a terminal letting BMS automatically format the dataEXEC CICS SEND TEXT FROM(data-area) [LENGTH(data-value)] [ERASE] [ALARM] [FREEKB] [CURSOR(data-value)] [PRINT] [FORMFEED] [NLEOM] [ACCUM] [PAGING | TERMINAL [WAIT]] [LAST] [HEADER(data-area)] [TRAILER(data-area)] [JUSTIFY(datavalue) | JUSFIRST | JUSLAST] [L40 | L64 | L80 | HONEOM] [REQID(name)] END-EXEC.

Send text noedit send data to a terminal similar to terminal control but can direct to temporary storage using paging optionEXEC CICS SEND TEXT NOEDIT FROM(data-area) [LENGTH(data-value)] [ERASE] [ALARM] [FREEKB] [PRINT] [PAGING | TERMINAL [WAIT] [LAST]] [L40 | L64 | L80 | HONEOM] [REQID(name)] END-EXEC.

Signoff signs the user off cicsEXEC CICS SIGNOFF END-EXEC.

Signon signs the user on to cicsEXEC CICS SIGNON USERID(datavalue) [PASSWORD(data-value)] [NEWPASSWORD(data-value)] [OIDCARD(data-value)] [NATLANG(data-value)] [natlanginuse(data-area)] [ESMRESP(data-area)] END-EXEC.

Start initiate another task after or at a specified timeEXEC CICS START TRANSID(name) [INTERVAL(hhmmss) | TIME(hhmmss) | AFTER [HOURS(hh)] [MINUTES(mm)] [SECONDS(ss)] | AT [HOURS(hh)] [MINUTES(mm)] [SECONDS(ss)]] [TERMID(name)] [SYSID(name)] [REQID(name)] [FROM(data-area) [LENGTH(data-value)]] [RTRANSID(name)] [RTERMID(name)] [QUEUE(name)] [NOCHECK] [PROTECT] END-EXEC.

Startbr initiate a browseEXEC CICS STARTBR { DATASET(name) | FILE(name) } RIDFLD(data-area) [KEYLENGTH(data-area) [GENERIC]] [SYSID(name)] [RBA | RRN] [GTEQ | EQUAL] [REQID(data-value)] END-EXEC.

Suspend temporarily return control to cicsEXEC CICS SUSPEND END-EXEC.

Syncpoint rollback or make permanent updates applied to protected resourcesEXEC CICS SYNCPOINT [ROLLBACK] END-EXEC.

81

Page 82: CICS_Comandos

Unlock release a record held by a READ UPDATE commandEXEC CICS UNLOCK { DATASET(name) | FILE(name) } [SYSID(name)] END-EXEC.

Wait convid suspend task until accumulated data has been transmitted during an APPC conversationEXEC CICS WAIT CONVID(name) [STATE(data-area)] END-EXEC.

Wait event delay the task until a previously issued POST has expiredEXEC CICS WAIT EVENT ECADDR(pointer-value) END-EXEC.

Wait journalnum synchronizes the current task with a previously written journal entry by suspending the task until the record has been successfully written to the journal fileEXEC CICS WAIT JOURNALNUM(data-value) [REQID(data-value)] [STARTIO] END-EXEC.

Write write a record to a fileEXEC CICS WRITE { DATASET(name) | FILE(name) } FROM(data-area) [LENGTH(data-area)] RIDFLD(data-area) [KEYLENGTH(data-area)] [SYSID(name)] [RBA | RRN] [MASSINSERT] END-EXEC.

Write journalnum write a record to the journal fileEXEC CICS WRITE JOURNALNUM(data-value) JTYPEID(data-value) FROM(data-area) [LENGTH(data-area)] [PREFIX(data-value) [PFXLENG(data-value)]] [REQID(data-area)] [WAIT] [STARTIO] [NOSUSPEND] END-EXEC.

Write operator write a message to a system consoleEXEC CICS WRITE OPERATOR TEXT(data-value) [TEXTLENGTH(data-value)] [ROUTECODES(data-value) [NUMROUTES)data-value)]] [ACTION(data-value) | EVENTUAL | IMMEDIATE | CRITICAL | REPLY(data-area) MAXLENGTH(data-value) [REPLYLENGTH(data-area)] [TIMEOUT(data-value)]] END-EXEC.

Writeq td write a record to a transient data queueEXEC CICS WRITEQ TD QUEUE(name) FROM(data-area) [LENGTH(data-area)] [SYSID(name)] END-EXEC.

Writeq ts write a record to a temporary storage queueEXEC CICS WRITEQ TS QUEUE(name) FROM(data-area) [LENGTH(data-area)] [ITEM(data-value) [REWRITE]] [NUMITEMS(data-area)] [SYSID(name)] [MAIN | AUXILIARY] [NOSUSPEND] END-EXEC.

Xctl terminate the current program and execute the one specifiedEXEC CICS XCTL PROGRAM(name) [COMMAREA(data-area) [LENGTH(data-value)]] [INPUTMSG(data-area) [INPUTMSGLEN(data-value)]] END-EXEC.

82

Page 83: CICS_Comandos

EIBRESP Codes (covers codes produced from I/O calls)Value Condition Value Condition

00 NORMAL 55 ENQBUSY01 ERROR 56 ENVDEFERR02 RDATT 57 IGREQCD03 WRBRK 58 SESSIONERR04 EOF 59 SYSBUSY05 EODS 60 SESSBUSY06 EOC 61 NOTALLOC07 INBFMH 62 CBIDERR08 ENDINPT 63 INVEXITREQ09 NONVAL 64 INVPARTNSET10 NOSTART 65 INVPARTN11 TERMIDERR 66 PARTNFAIL12 FILENOTFOUND 69 USERIDERR13 NOTFND 70 NOTAUTH14 DUPREC 72 SUPPRESSED15 DUPKEY 80 NOSPOOL16 INVREQ 81 TERMERR17 IOERR 82 ROLLEDBACK18 NOSPACE 83 END19 NOTOPEN 84 DISABLED20 ENDFILE 85 ALLOCERR21 ILLOGIC 86 STRELERR22 LENGERR 87 OPENERR23 QZERO 88 SPOLBUSY24 SIGNAL 89 SPOLERR25 QBUSY 90 NODEIDERR26 ITEMERR 91 TASKIDERR27 PGMIDERR 92 TCIDERR28 TRANSIDERR 93 DSNNOTFOUND29 ENDDATA 94 LOADING31 EXPIRED 95 MODELIDERR32 RETPAGE 96 OUTDESCRERR33 RTEFAIL 97 PARTNERIDERR34 RTESOME 98 PROFILEIDERR35 TSIOERR 99 NETNAMERR36 MAPFAIL 100 LOCKED37 INVERRTERM 101 RECORDBUSY38 INVMPSZ 102 UOWNOTFOUND39 IGREQID 103 UOWLNOTFOUND40 OVERFLOW 104 LINKABEND41 INVLDC 105 CHANGED42 NOSTG 106 PROCESSBUSY43 JIDERR 107 ACTIVITYBUSY44 QIDERR 108 PROCESSERR45 NOJBUFSP 109 ACTIVITYERR46 DSSTAT 110 CONTAINERERR47 SELNERR 111 EVENTERR48 FUNCERR 112 TOKENERR49 UNEXPIN 113 NOTFINISHED50 NOPASSBKRD 114 POOLERR51 NOPASSBKWR 115 TIMERERR53 SYSIDERR 116 SYMBOLERR54 ISCINVREQ 117 TEMPLATERR

121 RESUNAVAIL

83

Page 84: CICS_Comandos

Retornos / Handle Conditions

ACTIVITYBUSY ACTIVITYERR ALLOCERR CBIDERR CONTAINERERR CHANGED CSDERR DISABLED DSNNOTFOUND DSSTAT DUPKEY DUPREC DUPRES END ENDDATA ENDFILE ENDINPT ENQBUSY ENVDEFERR EOC EODS EOF ERROR EVENTERR EXPIRED FILENOTFOUND FUNCERR IGREQCD IGREQID ILLOGIC INBFMH INVERRTERM INVEXITREQ INVLDC INVMPSZ INVPARTN INVPARTNSET INVREQ INVTSREQ IOERR ISCINVREQ ITEMERR JIDERR LENGERR LINKABEND LOADING LOCKED MAPFAIL MODELIDERR NETNAMEIDERR NODEIDERR NOJBUFSP NONVAL NOPASSBKRD NOPASSBKWR NOSPACE NOSPOOL NOSTART NOSTG NOTALLOC NOTAUTH NOTFINISHED NOTFND NOTOPEN OPENERR

84

Page 85: CICS_Comandos

OUTDESCRERR OVERFLOW PARTNERIDERR PARTNFAIL PGMIDERR POOLERR PROCESSBUSY PROCESSERR PROFILEIDERR QBUSY QIDERR QZERO RDATT RECORDBUSY RESIDERR RESUNAVAIL RETPAGE ROLLEDBACK RTEFAIL RTESOME SELNERR SESSBUSY SESSIONERR SIGNAL SPOLBUSY SPOLERR STRELERR SUPPRESSED SYMBOLERR SYSBUSY SYSIDERR TASKIDERR TCIDERR TEMPLATERR TERMERR TERMIDERR TIMERERR TOKENERR TRANSIDERR TSIOERR UNEXPIN UOWLNOTFOUND UOWNOTFOUND USERIDERR VOLIDERR

85

Page 86: CICS_Comandos

ASSIGN’s : informações que podem ser obtidas

< ABCODE() > < ABDUMP() > < ABPROGRAM() > < ACTIVITY() > < ACTIVITYID() > < ALTSCRNHT() > < ALTSCRNWD() > < APLKYBD() > < APLTEXT() > < APPLID() > < ASRAINTRPT() > < ASRAKEY() > < ASRAPSW() > < ASRAREGS() > < ASRASPC() > < ASRASTG() > < BRIDGE() > < BTRANS() > < CMDSEC() > < COLOR() > < CWALENG() > < DEFSCRNHT() > < DEFSCRNWD() > < DELIMITER() > < DESTCOUNT() > < DESTID() > < DESTIDLENG() > < DS3270() > < DSSCS() > < EWASUPP() > < EXTDS() > < FACILITY() > < FCI() > < GCHARS() > < GCODES() > < GMMI() > < HILIGHT() > < INITPARM() > < INITPARMLEN() > < INPARTN() > < INVOKINGPROG() > < KATAKANA() > < LANGINUSE() > < LDCMNEM() > < LDCNUM() > < MAPCOLUMN() > < MAPHEIGHT() > < MAPLINE() > < MAPWIDTH() > < MSRCONTROL() > < NATLANGINUSE() > < NETNAME() > < NEXTTRANSID() > < NUMTAB() > < OPCLASS() > < OPID() > < ORGABCODE() > < OUTLINE() > < PAGENUM() >

86

Page 87: CICS_Comandos

< PARTNPAGE() > < PARTNS() > < PARTNSET() > < PRINSYSID() > < PROCESS() > < PROCESSTYPE() > < PROGRAM() > < PS() > < QNAME() > < RESSEC() > < RESTART() > < RETURNPROG() > < SCRNHT() > < SCRNWD() > < SIGDATA() > < SOSI() > < STARTCODE() > < STATIONID() > < SYSID() > < TASKPRIORITY() > < TCTUALENG() > < TELLERID() > < TERMCODE() > < TERMPRIORITY() > < TEXTKYBD() > < TEXTPRINT() > < TRANPRIORITY() > < TWALENG() > < UNATTEND() > < USERID() > < USERNAME() > < USERPRIORITY() > < VALIDATION() >

87

Page 88: CICS_Comandos

ABENDS mais comuns do CICS

Erro Explanação Solução / Ação / ObservaçãoABM0 The specified map was not found

in the specified mapset.An ABM0 error means that the map name in the COBOL program does not match the map name in front of the DFHMDI assembler macro. Review the COBOL and assembler programs and make sure that the names match.This error can occur when executing either a SEND MAP or RECEIVE MAP command.Check that you have not misspelled the map name.

AEIx...AEYx

There are numerous abends that start with AEI or AEY. They indicate that an exception has occured, and RESP (or NOHANDLE) is not is use. The last character indicates the exact error.CICS detected an exceptional condition for which no EXEC CICS HANDLE CONDITION command is active and the RESP or NOHANDLE option is not included in the associated command.Because of their similar characteristics, these abnormal termination codes for the EXEC interface program are described as a group.

AEIA ERRORAEID EOF (end of file)AEIE EODSAEIG INBFMHAEIH ENDINPTAEII NONVALAEIJ NOSTARTAEIK TERMIDERRAEIL FILENOTFOUNDAEIM NOTFNDAEIN DUPRECAEIO DUPKEYAEIP INVREQAEIQ IOERRAEIR NOSPACEAEIS NOTOPENAEIT ENDFILEAEIU ILLOGICAEIV LENGERR (*)AEIW QZEROAEIZ ITEMERRAEI0 PGMIDERRAEI1 TRANSIDERRAEI2 ENDDATAAEI3 INVTSREQAEI8 TSIOERRAEI9 MAPFAILAEYA INVERRTERMAEYB INVMPSZAEYC IGREQIDAEYE INVLDCAEYG JIDERRAEYH QIDERRAEYJ DSSTATAEYK SELNERRAEYL FUNCERRAEYM UNEXPINAEYN NOPASSBKRDAEYO NOPASSBKWRAEYP SEGIDERRAEYQ SYSIDERRAEYR ISCINVREQAEYT ENVDEFERRAEYU IGREQCDAEYV SESSIONERRAEYX USERIDERRORAEYY NOTALLOCAEYZ CBIDERRAEY0 INVEXITREQAEY1 INVPARTNSETAEY2 INVPARTNAEY3 PARTNFAILAEY7 NOTAUTHAEY9 DB2/IDMS database is not up

88

Page 89: CICS_Comandos

Alguns detalhes

AEI0 = A PGMIDERR has occurred. This typically occurs if the SNPNAME= operand specified the wrong name for the signon program and TNDGMM has attempted to EXEC CICS LINK to a program that is not defined in the PPT. Check that the TNDCICS SNPNAME= operand during the TNDGMM assembly specified the proper signon program name.

AEI1 = AEI1 is the CICS transaction abend indicating TRANSIDERR or invalid transaction code used. This will typically mean that TNDGMM has attempted to EXEC CICS START an initial transaction which is not known to CICS. The transaction that entered CICS via the SSI or SSX is not defined (or is disabled) within CICS' PCT. Display the status of the transaction (CEMT, etc.) and evaluate why CICS would not accept the transaction id.

AEI9 = There are two possible reasons why this abend has occurred: The data to be mapped has a length of zero or does not contain a set-buffer-address (SBA) sequence. It applies to 3270 devices only. The receiving data area holds the unmapped input data stream. The amount of unmapped data moved to the user's area is limited to the length specified in the LENGTH option of the RECEIVE MAP command. The program has issued a RECEIVE MAP command to which the terminal operator has responded by pressing (a) either a CLEAR or PA key, (b) ENTER, or (c) a function key without entering data.

AEIV = There are 3 possible reasons why this abend has occurred:1 - The record length (01 RECORD-LENGTH PIC S9(4) COMP VALUE...) specified in working-storage does not match the record length stored on the file 2 - The calculated record length, obtained from adding up the number of characters defined in the working storage layout does not match the specified record length (RECORD-LENGTH) or the length stored on the file 3 - The picture given to RECORD-LENGTH is not stored as a two byte field. Usually this error occurs because the picture is S9(8) instead of S9(4) or is not COMP.

AFCA A dataset could not be accessed because it was disabled.

AICA indicates time-out This abend usually occurs if your program is looping. There are CICS parameters that determine how long a task can run without giving up control. The ICVR parameter in the CICS SIT table can be used to specify a value for all tasks running in CICS, or you can specify a RUNAWAY value when you define a transaction . If a program is looping then you may not get an AICA abend, because the timer can be reset when certain events occur, eg some EXEC CICS commands may reset the

89

Page 90: CICS_Comandos

timer to zero.

AKCP AKCP and AKCT indicate that a timeout of the task occurred.

This may be due to a deadlock.

AKCT AKCP and AKCT indicate that a timeout of the task occurred.

This may be due to a deadlock.

APCT A program was not found or was disabled.(An APCT error means that mapset name in the COBOL program does not match the mapset name in front of the DFHMSD assembler macro. Review the COBOL and assembler programs and make sure that the names match. This error can occur when executing either a SEND MAP or RECEIVE MAP command.)

Check the transaction definition to see if the program name was misspelled. Check that the program is enabled. Check that the program is in an appropriate Load Library (ie one defined to the current CICS system).

ASRA It indicates a Program Check Exception, roughly equivalent to having an S0C7 in a batch program.

Check for spaces in a packed decimal numeric field and changes to the file and record layouts.

ATCH ATCH and ATCI indicates that the task was purged. The task may have been purged by someone issuing a CEMT command to purge the task, or by CICS because the Deadlock timeout limit has been exceeded or because there was not enough virtual storage available to run all the tasks in CICS (Short on Storage)

ATCI ATCH and ATCI indicates that the task was purged. The task may have been purged by someone issuing a CEMT command to purge the task, or by CICS because the Deadlock timeout limit has been exceeded or because there was not enough virtual storage available to run all the tasks in CICS (Short on Storage)

90