Árvore de páginas

Correção - Comportamento de funções sem retorno

Esta build contém uma correção no comportamento de funções sem retorno explícito declaradas na linguagem AdvPL.

Abrangência ERP 10

Situação

Utilização de funções criadas no repositório de funções (Function, User Function, Static Function e etc.), onde a mesma não possui a instrução "RETURN" no final.

Ocorrência

Neste caso, o comportamento esperado era que a função retornasse NIL. Porém, no TOTVS Application Server, a função retornava o resultado correspondente à última instrução executada na função.

Correção

Realizada a correção do comportamento de retorno das funções sem retorno explícito, para retornar NIL.

Informações adicionais

  • Correção realizada mediante testes e validações realizadas com o TOTVS Application Server.
  • Não há BOPS ou FNC Relacionados.

Exemplo

User function Teste() // Função de testes para MinhaFunc()
Local xRet
xRet :=  MinhaFunc()
varinfo(‘xRet’,xRet)
Return

Static function MinhaFunc() // Função sem retorno explícito
Local cRet := ‘ABC’
cRet += ‘DEF’

Para testar o código fonte acima, é necessário compilar e executar o código fonte a partir do TOTVS SmartClient a função U_TESTE(), além de verificar a informação impressa no log de console do TOTVS Application Server.
 

Nas builds anteriores a 7.00.090818P, do TOTVS Application Server, a função MinhaFunc() retornava a string "ABCDEF", pois a última linha executada do código fonte era uma atribuição com o operador +=, onde o resultado implícito do operador é o resultado da atribuição. A partir desta build 7.00.090818P, esta função passa a retornar NIL, pois não existe retorno explícito declarado.

De qualquer forma, mesmo que uma determinada função não tenha retorno, deve-se adotar por boa prática de programação e codificar no final da funçao a instrução RETURN, para indicar explicitamente que neste ponto a função efetivamente termina.

  • Disponível a partir da build 7.00.090818P-091104

  • Sem rótulos