SAP ADBC – Conexión ABAP SQL

SAP ADBC ¿ Qué es ?

SAP ADBC se puede entender como un conjunto de definiciones que se utilizan para poder ejecuta SQL SAP de forma nativa. Es decir, SAP brinda una forma de ejecutar comandos SQL en ABAP, enviando estos comando directamente a la base de datos y posteriormente procesando el resultado

La necesidad de esta funcionalidad es poder hacer consultas a tablas en bases de datos que no se encuentran en el diccionario de datos. Además, a diferencia del SAP AMDP, este no construye ningún procedimiento almacenado en la base de datos.

SAP ADBC

SAP ADBC – Características del SQL Nativo en SAP

  • Se puede utilizar sentencias almacenadas en una variable de tipo string que pertenezcan a la base de datos que se está consultando.
  • No se puede hacer una validación de la sintaxis. Claro está que los errores se presentarán en tiempo de ejecución.
  • Los datos son enviados directamente de la tabla al programa ABAP.
  • El resultado de la consulta sólo se puede utilizar en tablas tipo «standard table», hashed y sorted no están permitidas.

SAP ADBC – ABAP ADBC Class

Las clases para SAP ADBC empiezan con el prefijo CL_SQL_ o en caso de ser una excepción CX_SQL. A continuación te muestro las más importantes al momento de hacer una conexión.

CL_SQL_CONNECTION

La clase cl_sql_connection , como su nombre lo indica, se encarga de hacer la conexión entre el servidor de aplicaciones y la base de datos. De esta forma, el parámetro que recibe es el nombre de la conexión, la cual debe estar dada de alta previamente el DBACockpit.

CL_SQL_STATEMENT

La clase cl_sql_statement se apoya del método execute_query para ejecutar la instrucción de base de datos. Ciertamente, es necesario enviar un parámetro de tipo string con la sentencia a ejecutar.

CL_SQL_RESULT_SET

La clase cl_sql_result_set es la que se encarga de recibir el resultado del query ejecutado con la clase cl_sql_statement. Posteriormente, podremos manejar los resultados con métodos particulares de la clase. Ej: set_param_table y next_package, los cuales nos permitirán manejar los registros en una tabla interna.

Ejemplo ABAP ADBC