¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Optimiza tus condiciones con una tabla de rango en ABAP

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

Hola,

Tengo el código a continuación. Mi pregunta es, ¿puedo poner las condiciones juntas en una tabla de rango para que se vea mejor? 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...

No estoy convencido de que usar una tabla de rangos haga que el código sea más legible 😉

Puede ser útil almacenar la condición en un método si utilizas la condición más de una vez.

Nota: con una tabla de rangos, solo puede 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...

O esto:

DATA: BEGIN OF range_table OCCURS 0,posid TYPE string,END OF range_table.range_table[] = VALUE #( ( posid = 'V%' ),( posid = 'Y%' ),( posid = '7%HA%' ) ).IF wa_psp-posid CS range_table[].
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Sí, puedes usar una tabla de rangos para hacer tu código más legible y fácil de mantener. En ABAP, una tabla de rangos es un tipo de tabla interna que se utiliza para almacenar un rango de valores. Luego puedes usar esta tabla de rangos en tu código para verificar si un valor está dentro del rango especificado. Aquí tienes un ejemplo de cómo podrías usar una tabla de rangos para combinar las condiciones en tu 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.
        
    

En este ejemplo, creamos una tabla de rangos llamada range_table y agregamos los valores 'V%', 'Y%' y '7%HA%' a ella. Luego usamos el operador CS para verificar si el valor de wa_psp-posid está contenido dentro de la tabla de rangos.

O si realmente son comodines, entonces usa el Patrón de Contenido en su 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...

Sí, puedes usar una tabla de rango para hacer tu código más legible y fácil de mantener. En ABAP, una tabla de rango es un tipo de tabla interna que se utiliza para almacenar un rango de valores. Luego puedes utilizar esta tabla de rango en tu código para verificar si un valor está dentro del rango especificado. Aquí tienes un ejemplo de cómo podrías usar una tabla de rango para combinar las condiciones en tu 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.
    

En este ejemplo, creamos una tabla de rango llamada range_table y agregamos los valores 'V%', 'Y%' y '7%HA%' a ella. Luego utilizamos el operador CS para verificar si el valor de wa_psp-posid está contenido dentro de la tabla de rango.

O si son verdaderamente comodines, entonces usa el Patrón de Contenido en su 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?