Olá!
Para não produzir um post extenso, o assunto sobre arquivos está abordado em posts particionados conforme:
- Declarações básicas
- Código básico
- Código intermediário:
O termo balance-line no Cobol refere-se ao ato de realizar a consolidação de dados de duas ou mais base de dados. Ou seja, realizar o balanceamento das informações que estão presentes nestas bases e verificando a existência de compatibilidade ou a inconsistência de registros, está verificação depende da regra negocial a ser aplicada.
No Cobol este termo é aplicado para a verificação das informações que estão presentes em dois ou mais arquivos, com o objetivo de produzir um resultado com o balanço das informações contidas nos arquivos analisados.
Sendo que o resultado produzido pelo balanço dos dados dos arquivos, pode no fim gerar um novo arquivo, ou atualização de registros na base de dados, ou um relatório gerencial, etc.
Para realizar o balanceamento das informações é primordial que os arquivos estejam com os dados ordenados, e também possuam alguma chave para comparação dos registros.
Para exemplo, veja os arquivos abaixo:
Arquivo para cadastro | Arquivo com as pessoas cadastradas | ||||||
Código | Nome | Código | Nome | ||||
1 | Felipe | 2 | Gabi | ||||
3 | Ana | 3 | Ana | ||||
4 | João | 5 | Maira | ||||
5 | Maira | 6 | Jose | ||||
7 | Paulo | 8 | Lara |
No primeiro arquivo está presente as pessoas que devem ser cadastradas, e no segundo arquivo contém as pessoas que já foram cadastradas. Contudo, no primeiro arquivo há pessoas que já foram cadastradas, deste modo como seria um arquivo que contenha somente as novas pessoas para cadastro.
Para isso é necessário realizar o balanceamento das informações contidas nos dois arquivos, a fim de verificar quais pessoas para cadastramento ainda não foram cadastradas. Então, basicamente é criar um programa Cobol que realize a leitura dos dois arquivos, e quando o código da pessoa do arquivo para cadastro não esteja presente no arquivo com as pessoas cadastradas, efetivar a gravação desse registro em um novo arquivo.
O fluxo básico para realizar a leitura de dois arquivos e gerar um terceiro, de modo a verificar a existência de registro com a mesma chave, é:
1. Abre arquivos em modo de leitura1.1. Abrir os arquivos de entrada (arquivos com as informações)
1.2. Abre Input arquivoA
1.3. Abre Input arquivoB
2. Ler arquivos
2.1. Ler arquivoA
2.2. Ler arquivoB
2.3. Se não haver registro em algum destes arquivos, encerrar o programa
3. Abrir terceiro arquivo em modo de gravação (novo arquivo)
3.1. Abre Output arquivoC
4. Faz comparação com registros lidos dos arquivos (realizar o balance-line)
4.1. Se chave-arquivoA igual chave-arquivoB
4.1.1. Realizar gravação dos dados no arquivoC
4.1.2. Ler próximo registro dos arquivos A e B
4.2. Se chave-arquivoA maior que chave-arquivoB, ler próximo registro do arquivoB
4.3. Se chave-arquivoA menor que chave-arquivoB, ler próximo registro do arquivoA
5. Fechar arquivos
5.1. Fechar arquivoA, arquivoB, arquivoC.
O item 4 deve estar em um loop que tenha a condição de terminar quando encontrado o fim de leitura de arquivo (arquivoA ou arquivoB). O encerramento da leitura de arquivo é indicado pelo file-status com código +10 após a ação de leitura do arquivo, este representa que não há mais registros a serem lidos.
Para aplicar o fluxo básico acima de modo que realize a leitura dos arquivos de cadastro de pessoas, é necessário somente fazer uma pequena alteração no item 4 que contém as cláusulas de compatibilidade dos registros contidos nos arquivos, alterando o item 4 para:
4. Faz comparação com registros lidos dos arquivos (realizar o balance-line)
4.1. Se chave-arquivoA igual chave-arquivoB
4.1.1. Ignorar o registro, pois já é uma pessoa cadastrada
4.1.2. Ler próximo registro dos arquivos A e B
4.2. Se chave-arquivoA maior que chave-arquivoB, ler próximo registro do arquivoB
4.3. Se chave-arquivoA menor que chave-arquivoB, ler próximo registro do arquivoA
4.3.1. Realizar a gravação do registro do arquivoA no arquivoC, pois este registro ainda não é uma pessoa cadastrada
Como, pode ser observado, o fluxo básico de exemplo é simples e eficaz, e dependendo da regra a ser aplicada na verificação dos dados, são necessárias poucas alterações no item que de fato realiza o balanceamento dos dados. Caso esteja trabalhando com mais arquivos demais itens também sofreram pequenos ajustes.
O código Cobol para realizar a geração dos registros de pessoas para cadastra é apresentado no próximo post.
Consultar a relação de Termos e Abreviaturas acesse aqui.
FELIPE BARBOSA FERREIRA
FELIPE BARBOSA FERREIRA
Até o próximo post!
Nenhum comentário:
Postar um comentário