Rutinas del Generador de Actualización de Tablas y restricciones personalizadas

Controlar el acceso a las tablas en SAP siempre ha sido un desafío. La manera estándar que proporciona SAP para restringir el acceso a tablas es mediante grupos de tablas o tablas específicas (utilizando los objetos de autorizaciones S_TABU_DIS o S_TABU_NAM y las transacciones de visualización y modificación de tablas tradicionales). Los objetos de autorización son la unidad básica para controlar los permisos de los usuarios en un sistema SAP; en este caso los objetos mencionados controlan el acceso a toda la tabla, pero no en base al contenido de esta.

Entre las buenas prácticas, lo más aceptado es crear una parameter transaction con la tabla específica y evitar accesos amplios que pueda comprometer otras tablas indeseadas. Estas parameter transactions no son más que transacciones que tienen como base a otra transacción, pero aplicando parámetros específicos. Así, se puede conseguir crear una nueva transacción que utiliza como base la SM30 (modificación de tablas) pero carga directamente la tabla que se le ha indicado en el parámetro, en lugar de permitir al usuario seleccionar la que desee.

Sin embargo, también es posible implementar chequeos de autorización que comprueben la información interna de la tabla, abriendo el abanico a implementar restricciones más específicas. En este artículo vamos a ver cómo implementar estas restricciones usando los Eventos del Generador de Actualización de Tablas (Table Maintenance Generator – TMG).

 

¿Qué son los Eventos del Generador de Actualización de Tablas?

El Generador de Actualización de Tablas es una herramienta de SAP que permite realizar la configuración necesaria para poder modificar una tabla (en concreto, generar el programa de mantenimiento de la tabla), directamente desde una interfaz estándar. Es posible acceder a él desde las transacciones SE11 – ABAP Dictionary Maintenance o SE54 – Generate table view.

Imagen 1 Accediendo al TMG a través de la SE11

 

Imagen 2 Accediendo al TMG a través de la SE54

 

Con esta herramienta es posible introducir y modificar entradas en la tabla, establecer el Grupo de Autorizaciones, modificar la interfaz y hasta los programas asociados al mantenimiento de esta tabla; en este caso, nos centraremos en los Eventos.

Imagen 3 Eventos del TMG

 

Los Eventos del TMG nos permiten asociar una nueva rutina FORM a un determinado evento que puede ocurrir durante el mantenimiento de una tabla. Esta rutina, será a todos los efectos, un nuevo programa ABAP que se ejecutará en el momento indicado por el evento. Por tanto, es posible incluir en este código ABAP cualquier comportamiento que se desee. SAP proporciona eventos muy variados, se pueden apreciar varios ejemplos en la imagen anterior.

¿Cómo implementar una restricción personalizada?

Utilizando los Eventos que discutimos anteriormente, nuestro objetivo es implementar una restricción personalizada en la modificación de una tabla custom, consiguiendo que sólo los usuarios con autorización para un determinado valor organizativo puedan modificar las filas correspondientes a dicho valor organizativo.

Partimos de la creación y configuración de una tabla custom, utilizando la transacción SE11. Nuestra tabla tiene habilitada la modificación y consta de 4 campos:

    • Client (MANDT): necesario para convertir la tabla en específica del mandante.
    • Company Code (Z_BUKRS): el valor organizativo con el que aplicaremos la restricción.
    • Sales Organization (Z_VKORG): un segundo valor organizativo.
    • Approver (Z_APPROVER): un usuario aprobador según la combinación de valores organizativos anteriores. 
Imagen 4 Configuración de la tabla custom

 

Imagen 5 Campos de la tabla custom

 

En el TMG, hemos asignado un grupo de autorización para nuestra tabla y un grupo de función para el programa de mantenimiento. Además, hemos seleccionado el tipo de mantenimiento one step y obtenido el número de pantalla 1 utilizando Find Scr. Number(s):

Imagen 6 Parámetros del TMG para la tabla custom

 

En este punto, nuestra tabla está lista para ser modificada utilizando el propio TMG.

En este ejemplo, hemos ido un poco más allá y decidimos crear también una transacción custom (parameter transaction de la SM30 – Call View Maintenance) que facilite la modificación de esta tabla. La nueva transacción se creó utilizando la transacción SE93 – Maintain Transaction Codes:

Imagen 7 Configuración de la nueva transacción en la SE93

 

Para configurar la nueva rutina que queremos ejecutar, accedemos a la sección de Eventos del TMG y añadimos una nueva entrada:

Imagen 8 Acceso a los eventos desde el TMG

 

Imagen 9 Selección del Evento en el TMG

 

Seleccionamos el evento que queremos utilizar, le damos un nombre a la rutina y pulsamos el botón de ‘Editor’.

Imagen 10 Definición de la rutina para un Evento

 

Imagen 11 Adición de un nuevo include para añadir el código custom ABAP

 

Seleccionamos la opción de añadir un nuevo Include, lo cual nos abrirá un editor ABAP donde podremos introducir el código de nuestra rutina según nuestras necesidades. Según nuestro ejemplo, nos interesaba añadir una restricción con el valor organizativo Company Code (Z_BUKRS) cuando el usuario intentara modificar la tabla. Para ello hemos utilizado un código muy simple y el evento 01, ya que nos permite comprobar nuevas entradas, modificaciones y eliminaciones.

En este código hemos decidido implementar un chequeo de autorizaciones con el objeto F_BKPF_BUK y el valor organizativo Company Code (Z_BUKRS en nuestra tabla, BUKRS en el estándar), comprobando la actividad ‘02’ (modificación). El objeto de autorizaciones debería utilizarse siempre acorde al valor organizativo que se desea comprobar, y podría incluso crearse un nuevo objeto custom para evitar ampliar las autorizaciones en otras transacciones críticas del estándar.

Conclusión

Las rutinas y eventos del TMG son una herramienta muy versátil que permite aumentar la funcionalidad de las tablas en general. Muchas empresas hoy en día utilizan las tablas custom de SAP para ampliar y adaptar la funcionalidad del estándar a sus procesos de negocio; usando esta herramienta se pueden reducir los desarrollos necesarios para conseguir el objetivo y mejorar el funcionamiento según las necesidades más específicas de cada empresa. Podríamos estar incluyendo validaciones adicionales a la información que se incluye en la tabla, o podríamos modificar la forma en la que se visualiza, por poner algunos ejemplos.

En nuestro caso concreto, hemos conseguido introducir un chequeo de autorización con un valor organizativo, algo que el estándar no contempla para las tablas y que muchas veces es un añadido valioso para la empresa, que requiere que su estructura esté debidamente segregada.

¿Te ha gustado?

¡Compártelo en redes sociales!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Rellena este campo
Rellena este campo
Por favor, introduce una dirección de correo electrónico válida.
Tienes que aprobar los términos para continuar

Categorías

Calendario de entradas

Nuestros servicios

keyboard_arrow_up