¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Descubre cómo utilizar la declaración SELECT SINGLE en ABAP para verificar la existencia de una fila en una tabla de base de datos

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 210 Vistas
0
Cargando...
Hace algún tiempo ABAP me sorprendió con una característica interesante. Vi una declaración SELECT interesante durante una revisión de código. Aquí está la declaración SELECT. Para fines de demostración, cambié un poco la declaración.
SELECT SINGLE 'X'
       FROM seoclass
       WHERE clsname = 'CL_GUI_FRONTEND_SERVICES'
       INTO @data(x).

CHECK sy-subrc = 0.

Inmediatamente noté la "X" detrás del término "SINGLE". No había visto esa combinación antes. O no podía recordarla. En cualquier caso, aún no había usado esta sintaxis.

Por curiosidad, le pregunté a un colega. Tenía la respuesta correcta: Puedes verificar si hay una fila en la tabla de la base de datos que cumple con la condición WHERE. Con esta pista recordé que había leído sobre esto algún día. Había un blog de Horst Keller (y también el enlace a la ayuda en línea de SAP). A partir de 7.40 SP05, esta característica existe. Aquí está el ejemplo de la Ayuda en línea de SAP.
SELECT SINGLE @abap_true
       FROM scarr
       WHERE carrid = @carrier
       INTO @DATA(exists).

IF exists = abap_true.
  cl_demo_output=>display( |Carrier { carrier } exists in SCARR| ).
ELSE.
  cl_demo_output=>display( |Carrier { carrier } does not exist in SCARR| ).
ENDIF.

Al usar la variable "exists", es mucho más claro lo que significaba la declaración. Debido al desafío de escribir código fuente "fácil de entender", luego intenté el siguiente ejemplo.
CONSTANTS entry_exists TYPE abap_bool VALUE abap_true.

SELECT SINGLE @entry_exists
       FROM seoclass
       WHERE clsname = 'CL_GUI_FRONTEND_SERVICES'
       INTO @DATA(answer_from_db).

IF answer_from_db = entry_exists.
  WRITE 'Entry exists.' COLOR COL_POSITIVE.
ELSE.
  
            
            
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

Sin respuestas

No hay respuestas para mostrar No hay respuestas para mostrar Se el primero en responder

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?