Rutinas Dinámicas en ABAP, ¿ Son Obsoletas ?

Rutinas Dinámicas en ABAP

Las Rutinas Dinámicas en ABAP son un grupo de subrutinas creadas en tiempo de ejecución. El código ABAP del grupo de subrutinas se toma de una tabla interna «itab». Después, el grupo de subrutinas generado se almacena internamente en la sesión actual. Además, el nombre de ocho caracteres del grupo de subrutinas temporal se asigna a una variable «prog».

GENERATE SUBROUTINE POOL itab NAME prog [error_handling].

Cuando existe un error en el código ABAP que se encuentra en la tabla interna, el grupo de subrutinas no se genera. En consecuencia, hay que utilizar la adición error_handling  para analizar errores de generación. Cuando se genera un error de sintaxis, se cargará el valor «4» en la variable sy-subrc.

Al momento de llamar por primera ves una subrutina del grupo de subrutinas, esta se carga en la sesión interna y se genera el evento LOAD-OF-PROGRAM. Cuando se genere un error, se cargará el valor «8» en la variable sy-subrc.

Rutinas Dinámicas en ABAP

Riesgos de las Rutinas Dinámicas en ABAP

En caso de  utilizar incorrectamente la programación dinámica, se puede presentar un riesgo de seguridad grave. Todo contenido dinámico que provenga  programa desde el exterior, debe revisarse o enmascararse antes de que se utilice. Esto se hace utilizando la clase de sistema CL_ABAP_DYN_PRG o la función escape. Esto nos permitirá evitar las inyecciones de comandos ABAP.

¿ Son Obsoletas ?

Las subrutinas son obsoletas como técnica con fines de modularización de programas. Un grupo de subrutinas creado usando GENERATE SUBROUTINE POOL debe contener unicamente una subrutina inicial que llame a un método de una clase local. Además, es necesario dejar de lado cualquier funcionalidad adicional implementada por código.

Esta técnica solo debe utilizarse en casos excepcionales en programas de aplicación. ABAP proporciona otras opciones al momento de aplicar la programación dinámica; generalmente hacen que la creación de código fuente sea dinámicamente innecesaria.

Ejemplo Rutinas Dinámicas

SAP Documentación Oficial

Para más información sobre las características ABAP y acerca de su sintaxis, puedes visitar el siguiente enlace con documentación oficial: SAP ABAP.