Prezados Leitores,Com o intuito de auxilia-los na identificacao e correcao de alguns erros que podem ocorrer, em tempo de execucao, nos programas COBOL, resolvi listar alguns dos principais System Codes, descrevendo as possiveis causas e solucoes para cada um deles. Lembrando que os System Codes descritos abaixo, sao relativos ao COBOL de Grande Porte (Mainframe).S001Causas: Erro de DCB - O tamanho do registro ou do bloco nao corresponde ao que foi definido no programa ou no JCL.Tentativa de copiar em fita arquivo de organizacao nao sequencial. Solucoes: Conferir os subparametros BLKSIZE e LRECL do DCB.Tratando-se de fitas sem LABEL, verificar se o volume montado esta correto.No caso de fita de movimento verificar se nao esta sendo fornecido arquivo Cobra/DE no lugar de arquivo disquete ou vice-versa.Nao sendo possivel a exata identificacao da causa, consultar o manual especifico.S002 Causas: Foi tentada a transferencia de bloco maior que 32.767 bytes.Foi definido LRECL maior que 19.069 - capacidade de 1 trilha em disco.Foi definido RDW - Descritor de Tamanho de Registro - de registro variavel maior do que 4 bytes.Foi encontrado registro VS (variavel expandido) maior que o LRECL. No registro VS o registro pode ser maior que o BLKSIZE.Solucoes:Corrigir o LRECL no DCB, tratando-se de erra na codificacao do JCL.Comunicar-se com a programacao se o erro for no tamanho dos registros.S031 Causas:Foi tentada uma operacao de saida em um arquivo aberto como INPUT.Foi detectado INVALID KEY ou registro duplicado no DATA-SET. S036 Causa:Nao foi informada a area primaria no parametro SPACE. Solucao: Corrigir o parametro SPACE, no JCL, e ressubmeter o JOB. S03BCausas: O arquivo nao e sequencial indexado ou nao foi fechado corretamente pelo programa que o gerou.Arquivo de acesso direto na clausula SELECT e o cartao DD aponta para arquivo sequencial. S03DCausa:A definicao do metodo de acesso ao arquivo nao confere com o definido em sua geracao.S0C1Causas: Erro no verbo SORT do COBOL:A logica pode nao estar passando atraves do RETURN AT END para sair da OUTPUT PROCEDURE;Falta nome de secao apos a INPUT ou OUTPUT PROCEDURE;Tentou-se concluir o processamento antes que todos registros tivessem retornado do SORT;Tentada abertura de arquivo usado no comando SORT como USING antes de terminar o comando. Foi tentada leitura ou gravacao de arquivo nao aberto.Foi chamada uma SUBROTINA nao existente.Arquivo de entrada INDEXADO-SEQUENCIAL nao especificado como tal na clausula SELECT.SOC4Causas:Estouro de indexador ou subscritor.Foi tentada leitura ou gravacao de arquivo nao aberto.Falta clausula SELECT em tempo de COMPILACAO cobol.Falta aumentar em 4 bytes a blocagem para registros de tamanho variavel.No verbo SORT do cobol:Falta nome de secao apos a INPUT ou OUTPUT PROCEDURE;STOP RUN na INPUT ou OUTPUT procedure.Uso de uma unica area de SD para mais de um SORT intrinseco.S0C7Ocorrencias:Soma de campo ou em campo com conteudo nao numerico.Movimentacao de dados nao numericos para uma PIC de edicao numerica.Comparacao de campos numericos com conteudo nao numerico.Causas:Falta de inicializacao em campos de WORKING STORAGE SECTION.Dados nao numericos num registro lido ou criado.Soma de campo sinalizado sobre um campo COMP-3 nao sinalizado.Indexador ou subscritor estourado, isto e, esta apontando para fora da tabela antes ou depois dela,