¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Otimiza suas condições com uma tabela de intervalo em ABAP

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 11 Vistas
0
Cargando...

Olá,

Tenho o código abaixo. Minha pergunta é, posso colocar as condições juntas em uma tabela de intervalo para que fique melhor? Como "IF wa_psp-posid CS [Range_Table].

IF wa_psp-posid CS 'V%'
  OR wa_psp-posid CS 'Y%'
  OR wa_psp-posid CS '7%HA%'.
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Não estou convencido de que usar uma tabela de intervalos torne o código mais legível 😉

Pode ser útil armazenar a condição em um método se você usar a condição mais de uma vez.

Nota: com uma tabela de intervalos, só pode ser IN:

IF wa_psp-posid IN [Ranges_Table].
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Ou isto:

DADOS: INÍCIO DE range_table OCORRE 0,posid TIPO string,FIM DE range_table.range_table[] = VALOR #( ( posid = 'V%' ),( posid = 'Y%' ),( posid = '7%HA%' ) ).SE wa_psp-posid CS range_table[].
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Sim, você pode usar uma tabela de intervalos para tornar seu código mais legível e fácil de manter. Em ABAP, uma tabela de intervalos é um tipo de tabela interna usada para armazenar um intervalo de valores. Em seguida, você pode usar essa tabela de intervalos em seu código para verificar se um valor está dentro do intervalo especificado. Aqui está um exemplo de como você poderia usar uma tabela de intervalos para combinar condições em seu código:

        
            TYPES range_type TYPE RANGE OF string.
            DATA(range_table) = VALUE range_type(
                ( sign = 'I' option = 'CS' low = 'V%' )
                ( sign = 'I' option = 'CS' low = '7%HA%' )
                ( sign = 'I' option = 'CS' low = 'Y%' )
            ).

            IF 'V14' in range.
            ENDIF.
        
    

Neste exemplo, criamos uma tabela de intervalos chamada range_table e adicionamos os valores 'V%', 'Y%' e '7%HA%' a ela. Em seguida, usamos o operador CS para verificar se o valor de wa_psp-posid está contido na tabela de intervalos.

Ou se forem realmente curingas, então use o Padrão de Conteúdo em seu lugar.

        
            TYPES range_type TYPE RANGE OF string.
            DATA(range) = VALUE range_type(
                ( sign = 'I' option = 'CP' low = 'V*' )
                ( sign = 'I' option = 'CP' low = '7*HA*' )
                ( sign = 'I' option = 'CP' low = 'Y*' )
            ).

            IF 'V14' in range.
            ENDIF.
        
    
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Sim, você pode usar uma tabela de intervalo para tornar seu código mais legível e fácil de manter. Em ABAP, uma tabela de intervalo é um tipo de tabela interna usada para armazenar um intervalo de valores. Em seguida, você pode usar essa tabela de intervalo em seu código para verificar se um valor está dentro do intervalo especificado. Aqui está um exemplo de como você poderia usar uma tabela de intervalo para combinar condições em seu código:

    
        TYPES range_type TYPE RANGE OF string.
        DATA(range_table) = VALUE range_type(
        ( sign = 'I' option = 'CS' low = 'V%' )
        ( sign = 'I' option = 'CS' low = '7%HA%' )
        ( sign = 'I' option = 'CS' low = 'Y%' ) ).

        if 'V14' in range.
        endif.
    

Neste exemplo, criamos uma tabela de intervalo chamada range_table e adicionamos os valores 'V%', 'Y%' e '7%HA%' a ela. Em seguida, usamos o operador CS para verificar se o valor de wa_psp-posid está contido na tabela de intervalo.

Ou se forem verdadeiros curingas, então use o Padrão de Conteúdo no lugar.

    
        TYPES range_type TYPE RANGE OF string.
        DATA(range) = VALUE range_type(
        ( sign = 'I' option = 'CP' low = 'V*' )
        ( sign = 'I' option = 'CP' low = '7*HA*' )
        ( sign = 'I' option = 'CP' low = 'Y*' ) ).

        if 'V14' in range.
        endif.
    
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?