domingo, 25 de outubro de 2009

Acucobol + CGI

A utilização do navegador de internet para execução de processos (entrada de dados e exibir resultados), tornou-se comum no desenvolvimento de sistemas. Há alguns dias, tive a necessidade de exibir no browser, um relatório gerado por um programa cobol. A seguir irei demonstrar a melhor maneira que encontrei, com o mínimo de alterações no código-fonte.

Para esta prática, estaremos utilizando a tecnologia CGI que pode ser compreendida na documentação do acucobol (A programmer´s guide to the internet) e exemplos que acompanham o produto.
No formulário HTML, teremos o start do script CGI:
action="cgi-bin/programa.cgi"

No script CGI (programa.cgi) teremos:



Entendendo o script: A variável DATA_HORA obterá a data e hora com nano segundos, e ARQUIVO_RELATORIO possui o caminho e nome do arquivo que será gerado pelo cobol, criando assim a segurança de não termos usuários diferentes criando um mesmo arquivo. Exemplo: 251009Out10902888652.txt

ARQUIVO_RELATORIO é passado como parâmetro ao programa cobol, que deverá gerar o relatório no caminho especificado. Após a execução do programa cobol o arquivo é exibido com outras instruções html informadas no CGI.

E por fim veremos quais as alterações necessárias no programa cobol.
O ARQUIVO_RELATORIO que foi enviado como parâmetro ao cobol, será recebido quando informado junto a PROCEDURE DIVISION a declaração CHAINING ARQ-TXT.
Ex.
PROCEDURE DIVISION CHAINING ARQ-TXT.

ARQ-TXT é uma variável a ser definida na WORKING-STORAGE SECTION do programa.
Ex.
77 ARQ-TXT PIC X(100).

Também deve ser informado no ASSIGN do arquivo.
Ex.
SELECT SAIDA ASSIGN TO ARQ-TXT

Resta salientar que para utilizar o mesmo programa cobol rodando pelo CGI e SSH, devemos separar a entrada de dados (ACCEPT) da rotina principal que irá gerar o relatório. E os comandos DISPLAY devem estar de acordo com o tipo de chamada, pelo CGI ou SSH.

Grato pela oportunidade e até a próxima.

Nenhum comentário:

Postar um comentário