Você pode utilizar as funções NMIN e NMAX para retornar os valores mínimos e máximos entre pelo menos dois parâmetros. Estas funções fazem o mesmo trabalho da clausula IF efetuando comparações utilizando os sinais de maior (>) ou menor (<), porem possuem uma sintaxe muito menos complexa se utilizados muitos parâmetros.
Fora de uma expressão aritmética, um tipo de cálculo é determinado a partir de todos os argumentos, e é utilizado para realizar a comparação. O tipo de cálculo é determinado apenas como uma expressão aritmética e também determina o tipo do valor de retorno de dados.
Em uma expressão aritmética, os argumentos da função contribuem para o tipo de cálculo de toda a expressão e a função é calculada usando o tipo do cálculo. Se um argumento em si é uma expressão aritmética, os operandos contribuem para todo o tipo de cálculo e o argumento também é calculado usando esse mesmo tipo.
Exemplo:
Neste exemplo criamos uma tela de seleção com três parâmetros e as funções Extremum verificam e exibem uma mensagem retornando o maior e o menor parâmetro dentro das possibilidades alimentadas pelo usuário.
Abap
*&---------------------------------------------------------------------* *& Report ZMAXMIN *& *&---------------------------------------------------------------------* *& Desenvolvimento Aberto *& Numerical Extremum Functions *&---------------------------------------------------------------------* REPORT ZMAXMIN. * Cria parametros de seleção SELECTION-SCREEN COMMENT /1(10) text-par. PARAMETERS: valor1 TYPE i DEFAULT 0, valor2 TYPE i DEFAULT 0, valor3 TYPE i DEFAULT 0. * Declara variáveis DATA: minimo TYPE decfloat34, maximo TYPE decfloat34, val1 TYPE decfloat34, val2 TYPE decfloat34, val3 TYPE decfloat34, txt TYPE string. * Inicio da seleção START-OF-SELECTION. * Verifica os valores minimos e máximos minimo = nmin( val1 = valor1 val2 = valor2 val3 = valor3 ). maximo = nmax( val1 = valor1 val2 = valor2 val3 = valor3 ). * Cria texto da menssagem txt = |{ txt } o valor minimo é: { minimo } e o valor máximo é: { maximo } |. * Exibe menssagem de informação MESSAGE txt TYPE 'I'. * Exibe menssagem de erro (valida campos) AT SELECTION-SCREEN. IF valor1 = 0 or valor2 = 0 or valor3 = 0. MESSAGE 'Você deve entrar com um valor diferente de zero' TYPE 'E'. ENDIF.