Instrução RETURN

A instrução RETURN encerra o processamento. O que acontece em seguida depende do contexto de programação no qual a instrução RETURN é emitida.

SINTAXE

Quando utilizada em uma função, a instrução RETURN pára o processamento dessa função e o controle é retornado à expressão de chamada. A expression (que deve estar presente) é avaliada e age como o valor de retorno da função. É um erro para uma função retornar executando a lista de instruções. O tipo de dados do valor retornado deve ser o mesmo da instrução da função.

Quando utilizada em um procedimento, a instrução RETURN pára o processamento do procedimento e o controle é retornado à instrução CALL de chamada. Uma instrução RETURN utilizada em um procedimento não deve possuir uma expression.

Quando utilizado em um código de linha principal do nó Filter, Compute ou Database, a instrução RETURN pára o processamento de ESQL do nó e o controle é transmitido para o próximo nó. Nesses casos, se a expression estiver presente, ela deverá ser avaliada como um valor BOOLEAN. Se expression não estiver presente, um nó Filter assumirá um valor de UNKNOWN e será propagado para seu terminal desconhecido; os nós Compute e Database são propagados para seus terminais de saída.

A tabela a seguir descreve as diferenças entre a instrução RETURN quando utilizada nos nós Compute, Filter e Database.
  Valor de Retorno Resultado
Nó Compute:
RETURN TRUE Propagar mensagem para terminal out.
  FALSE Não propaga.
  UNKNOWN Não propaga.
RETURN;   Propagar mensagem para terminal out.
Nó Filter:
RETURN TRUE Propagar mensagem para terminal true.
  FALSE Propagar mensagem para terminal false.
  UNKNOWN Propagar mensagem para terminal unknown.
RETURN;   Propagar mensagem para terminal unknown.
Nó Database:
RETURN TRUE Propagar mensagem para terminal out.
  FALSE Não propaga.
  UNKNOWN Não propaga.
RETURN;   Propagar mensagem para terminal out.

Exemplo

O exemplo a seguir, que é baseado em Mensagem de Exemplo, ilustra como esta instrução pode ser utilizada:
-- Declarar variáveis --
DECLARE a INT;
DECLARE PriceTotal FLOAT;
DECLARE NumItems INT;

-- Inicializar valores --
SET a = 1;
SET NumItems = 0;
SET PriceTotal = 0.0;

-- Calcule o valor do pedido, entretanto se esta for uma compra em massa, o --
-- pedido precisará ser tratado de forma diferente (oferecido desconto), para que seja retornado TRUE --
-- ou FALSE dependendo do tamanho do pedido --
WHILE a <= CARDINALITY(Invoice.Purchases.Item[a] DO
      SET NumItems = NumItems + Invoice.Purchases.Item[a].Quantity;
      SET PriceTotal = PriceTotal + Invoice.Purchases.Item[a].UnitPrice;
      SET a = a + 1;
      END;
RETURN PriceTotal/NumItems > 42;
Se o preço médio de itens for maior que 42, será retornado TRUE; de outra maneira, será retornado FALSE. Assim, um nó Filter pode rotear mensagens que descrevem itens dispendiosos em um caminho diferente para mensagens que descrevem itens baratos.

Consulte Instrução PROPAGATE para obter um exemplo de RETURN FALSE para evitar propagação implícita no final do processamento em um nó Compute.

Conceitos relacionados
Visão Geral do ESQL
Tarefas relacionadas
Desenvolvendo ESQL
Referências relacionadas
Nó Compute
Nó Filter
Diagramas de Sintaxe: Tipos Disponíveis
instruções ESQL
Instrução PROPAGATE
Mensagem de Exemplo
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ak05130_