TSO-ISPF JCL COBOL VSAM DB2 CICS Ferramentas Artigos Oportunidades Forum Quiz Perguntas e Respostas

COBOL - Declaração CALL

AUm Programa pode chamar outro(s) programa(s) para executar um conjunto de tarefas. Neste caso, o programa que chama outros programas chamamos de Programa CHAMADO (às vezes, também chamado de Programa Principal) enquanto o programa que é chamado é chamado de programa CHAMADO ou Subprograma.

A instrução COBOL CALL é usada para chamar outro programa.

Existem 2 tipos de chamadas –
  1. CHAMADA ESTÁTICA
  2. CHAMADA DINÂMICA

CHAMADA ESTÁTICA:

No caso de CHAMADAS ESTÁTICAS, se tivermos 2 programas MAIN-PROGRAM e SUB-PROGRAM então ambos os Programas são compilados como um membro PDS separado, mas são editados em conjunto ao mesmo tempo. Esta é a razão, CHAMADAS ESTÁTICAS são mais rápidas em comparação com CHAMADAS DINÂMICAS.

  • Se modificarmos o subprograma SUB-PROGRAM, precisamos compilar SUB-PROGRAM e o programa de chamada MAIN-PROGRAM também para vincular de volta a este módulo recém-compilado.

  • CHAMADAS ESTÁTICAS ocupam mais armazenamento, mas levam menos tempo para execução em comparação com CHAMADAS DINÂMICAS.

  • A opção do compilador NODYNAM é usada no caso de STATIC CALLS. Para verificar sua opção de compilador, verifique com seu grupo de suporte/administração do mainframe.

  • Se o programa chamado for muito pequeno, podemos optar por uma chamada estática, caso contrário, a chamada dinâmica será melhor porque, em chamadas estáticas, o programa CALLED está embutido no módulo de carregamento do programa CALLING.

CHAMADA DINÂMICA:

No caso de CHAMADAS DINÂMICAS, se temos 2 programas MAIN-PROGRAM e SUB-PROGRAM então ambos os Programas são compilados como um membro PDS separado e o link editado separadamente também.
  • DYNAMIC CALLS ocupam menos espaço de armazenamento, pois um módulo compilado é carregado na memória apenas quando é chamado, mas leva mais tempo para execução em comparação com STATIC CALLS.

  • A opção do compilador DYNAM é usada para DYNAMIC CALLS.

  • Programas chamados dinamicamente são muito mais fáceis de gerenciar do que programas estáticos

Os parâmetros (variáveis) podem ser passados ​​entre programas de duas maneiras −
  1. Por referência
  2. Por conteúdo

Chamada por referência - Se os valores das variáveis ​​no programa chamado forem modificados, seus novos valores refletirão no programa chamador. Se a cláusula BY não for especificada, as variáveis ​​serão sempre passadas por referência.

A seguir está a syntax de chamada de sub-rotina por referência −

CALL sub-prog-name USING variable-1, variable-2.....

Chamada por conteúdo - Se os valores das variáveis ​​no programa chamado forem modificados, seus novos valores não serão refletidos no programa chamador.

A seguir está a sintaxe de chamada de sub-rotina por conteúdo -

CALL sub-prog-name USING BY CONTENT variable-1, BY CONTENT variable-2......

Agora é hora de ver alguns exemplos para a instrução CALL no próximo capítulo.

Caso tenha alguma dúvida ou pergunta sobre esse assunto, você pode entrar em contato com nossos experts na Comunidade Aprenda COBOL!

Está procurando por alguma oportunidade de trabalho? Veja em nosso Portal de Oportunidades