O ESTADO RESULTANTE DO PEDIDO.SEMPRE QUE O PROGRAMA EMITIR QUALQUERUM DOS COMANDOS ESPECIFICADOS ACIMA, O FILE STATUS TEM QUE SER VERIFICADO PARAQUE SE POSSA DETERMINAR SE O COMANDO SOLICITADO FOI BEM SUCEDIDO OU NAO.(FILE-STATUS = ZEROS INDICA QUE O COMANDO FOI EXECUTADO COM SUCESSO). OPEN a PODERA ABRIR O ARQUIVO COMO ENTRADA(OPEN INPUT), SAIDA (OPEN OUTPUT) OU ENTRADA E SAIDA (OPEN I-O). CLOSE a SERVIRA PARA FECHAR O ARQUIVO.START a FORNECE MEIOS PARA UM POSICIONAMENTOLOGICO PARA SUBSEQUENTE OBTENCAO SEQUENCIAL DE REGISTROS. FORMATO:START NOME-DO-ARQ KEY IS EQUAL TO DATA-NAME GREATER THAN NOT LESSTHANO PONTEIRO E' COLOCADO NO PRIMEIROREGISTRO CUJA CHAVE SATISFACA A CONDICAO ESPECIFICADA. SE HOUVER UM OU MAISREGISTROS QUE SATISFACAM A CONDICAO, O STATUS RETORNARA COM 00. SE NAO HOUVERNENHUM REGISTRO QUE SATISFACA A CONDICAO, O STATUS RETORNARA COM O VALOR 23.O COMANDO START APENAS POSICIONA OPONTEIRO NO REGISTRO DESEJADO MAS NAO PERMITE ACESSO AOS DADOS. APOS OPOSICIONAMENTO DEVE SER DADO UM READ SEQUENCIAL PARA A LEITURA DO REGISTRO.READ a SERVE PARA ACESSO AOS DADOS DOREGISTRO.FORMATO:READ NOME-DO-ARQ {NEXT} INTO AREA-DE-WORKINGSE USADO SEM A PALAVRA NEXT, SERVIRAPARA A LEITURA DO REGISTRO ATRAVES DO SEU CAMPO CHAVE, PORTANTO APENAS UMREGISTRO SERA LIDO.O STATUS 23 INDICA QUE A CHAVESOLICITADA NAO FOI ENCONTRADA NO ARQUIVO.COM A PALAVRA NEXT, SERVIRA PARA ALEITURA SEQUENCIAL DE UM OU MAIS REGISTROS.OSTATUS 00 INDICA QUE O REGISTRO FOI LIDO SEQUENCIALMENTE COM SUCESSO.O STATUS 10 INDICA QUE HOUVE FINALDOS DADOS NO ARQUIVO.WRITE a SERVE PARA GRAVACAO DE DADOS. OSTATUS 22 INDICA QUE JA EXISTE UM REGISTRO NO ARQUIVO COM A MESMA CHAVE DA TENTATIVA DE GRAVACAO.REWRITE a SERVE PARA ATUALIZACAO DE DADOS.DELETE a SERVE PARA A DELECAO DO REGISTRO.Paracriar um arquivo VSAM://DEFINE EXECPGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD* DEL (nomedoarquivo) CLUSTER PURGE DEFINE CLUSTER - (NAME(nomedoarquivo)UNIQUE INDEXED - TRK(1 1)- KEYS(10 0) - ERASE- CISZ(4096)- RECORDSIZE(460460) - FREESPACE(10 5)) - DATA - (NAME(nomedoarquivo.D)) - INDEX - (NAME(nomedoarquivo.I)) ALTERNATE KEY E um recurso do VSAM que permiteacessar um KSDS por um campo diferente da PRIME KEY. No programa: arqW - arquivo "normal" arqI - chavealternadaProgramas batch exemplo: UN186, HPRB08Programas online exemplo: Arquivo C525OW/C525OIBJTP - transacaoprincipal (opcao "renovacao") BJB90(menu) - BJB91 (menu renovacao) BJD01/02/03/04 - manutencaoDefinir os dois arquivos no CICS, naFCT. Oarquivo .PATH e o que sera acessado com a chave alternada. Quandodefine arquivo .PATH, o .AIX e apenas a area onde o vsam guarda o indice.Quando a chave alternada nao fizerparte da chave primaria, no CLUSTER atentar-se ao tamanho correto das chavesnas definicoes dos arquivos.Exemplo Define CLUSTER para ALTERNATEINDEX://STEP01 EXECPGM=IDCAMS//SYSPRINT DD SYSOUT=*//SYSIN DD * DELETE D.CO.BNH.C525OW CLUSTER PURGE DEFINECLUSTER ( - NAME(D.CO.BNH.C525OW) - RECSZ(100 100) - FREESPACE(00 00) - INDEXED - KEY(20 0) - TRK(11) - SHR(33) - SPEED - CONTROLINTERVALSIZE (4096) - TO (99365) - IMBED - NOREUSE - UNIQUE ) - DATA(NAME(D.CO.BNH.C525OW.D)) - INDEX(NAME(D.CO.BNH.C525OW.I)) REPRO IDS(D.CO.BNH.C525OE) - ODS(D.CO.BNH.C525OW) //******************************************************************** //* DEFINICAO CHAVE ALTERNADA * //******************************************************************** //STEP02 EXEC PGM=IDCAMS //SYSPRINTDD SYSOUT=* //SYSIN DD * DEFINE - ALTERNATEINDEX ( - NAME(D.CO.BNH.C525OW.AIX) - RELATE(D.CO.BNH.C525OW) - KEY(11 9)) -a tamanho da chavealternada DATA ( - NAME(D.CO.BNH.C525OW.AIX.D) - CISZ(4096) - TRK(11) - SHR (33)) - INDEX( - NAME(D.CO.BNH.C525OW.AIX.I) - CISZ(2048)) //******************************************************************** //* DEFINICAO CHAVE PATH