A Função transfere o controle para outra função.
>>-função--(--)--;---------------------------------------------><
Atributo | Descrição |
---|---|
função | O nome de uma função. |
Quando a instrução de invocação da função se encerra, o controle é retornado à instrução seguinte à instrução de invocação da função.
As instruções de invocação da função não utilizam as instruções de fluxo. Se a função for utilizada como uma função principal e como uma instrução de invocação da função no mesmo programa, as instruções de fluxo não serão executadas quando a função for realizada.
As instruções de invocação da função não podem ser utilizadas como rotinas de edição para itens do mapa. No entanto, elas podem ser executadas a partir de rotinas de edição de campo variável do mapa. As funções DISPLAY ou CONVERSE não podem ser executadas diretamente a partir de um grupo de edição do mapa ou a partir de qualquer função iniciada durante a execução do grupo de edição do mapa.
Nota: | Não utilize instruções de invocação de função para processamento incondicional de fluxo, transferência ou retorno. Utilize a palavra de função especial EZERTN para um retorno imediato à função que está chamando. Utilize a palavra de função especial EZEFLO para o processamento de "ir para" ou de transferência. |
Qualquer item de dados de registro pode ser especificado como argumento em chamadas de função de cadeia. E os literais numéricos podem ser especificados em chamadas para algumas palavras de função de cadeia. Veja as "Palavras EZE de Função de Cadeia" para determinar se os literais numéricos podem ser usados com uma determinada função de cadeia.
Suportado em todos os ambientes sem considerações de compatibilidade.
Para passar um registro como um argumento e devolver o resultado para ARESULT:
TESTIT-WSREC.ARESULT = RFUNCMAX(TESTIT-WSREC);
Para passar itens de dados como argumentos e devolver o resultado para BIGGESTNUM:
BIGGESTNUM = FUNCMAX(FIRST,SECOND);
Para passar literais numéricos como argumentos e devolver o resultado para BIGGESTNUM:
BIGGESTNUM = FUNCMAX(010,100);