Blog
Personalización de un sistema SAP (Customization): riesgos y oportunidades
- 27/02/2022
- Escrito por: Grazia Masulli
- Categoría: Introducción a SAP ERP
¿Qué es una personalización (Customization) de un sistema SAP? Es importante empezar con una buena definición.
Una personalización es cualquier cambio en el funcionamiento de SAP que va más allá de las opciones definidas en el panel de control de SAP (la transacción SPRO).
Por ejemplo, crear un nuevo tipo de informe ABAP es una personalización. Escribir un programa que inserte datos en una tabla de SAP es una personalización.
A veces este término en SAP se utiliza también para la fase en la que SAP se adapta a una empresa cambiando los valores de la IMG con la transacción SPRO. Si no está familiarizado con estos términos, la IMG es la Guía de Aplicación. Con la operación SPRO se puede trabajar en la IMG para adaptar SAP a las necesidades de una empresa concreta: ésta es una de las actividades típicas de un consultor funcional.
En este caso, el cliente elige cómo debe funcionar el sistema a partir de un conjunto de valores predefinidos (o rellena los campos con valores personalizados, pero sin cambiar la lógica del software). Aunque esta actividad suele denominarse “personalización”, es más preciso llamarla “configuración” (“Configuration”). De hecho, la mayoría de los cambios que se realicen en la IMG no se perderán si, por ejemplo, actualizamos el sistema, algo que no es tan evidente con la personalización.
Los programas personalizados en SAP suelen tener un nombre que empieza por Z (a veces también por Y).
¿Cuáles son los diferentes tipos de personalización posibles? Veámoslos juntos.
1. Creación de informes (reports) de sólo lectura.
Este tipo de programa, si se construye de manera que sea independiente de otros procesos, es el que menos riesgo presenta y el que menos impacto tiene en el sistema. No crean registros y no afectan a la capacidad de otros procesos para crear o gestionar datos. Básicamente queremos que SAP nos muestre los datos de una manera determinada y la versión estándar del programa no tiene esta funcionalidad en el paquete estándar.
Este tipo de personalización es muy común: nos permite automatizar procesos que quizás ahora se hacen con Excel o algún otro programa.
Un caso frecuente es cuando queremos extraer datos de varias tablas y combinarlos. A veces la alternativa es trabajar en Excel. Otras veces no hay una alternativa real, ya que Excel tiene un tamaño máximo de archivo de alrededor de un millón de archivos, lo que parece una cifra enorme, pero si se trata de una empresa mediana, puede no ser suficiente.
En general, este tipo de personalizaciones son baratas, seguras y pueden mejorar la forma de llevar a cabo ciertos procesos.
2. Creación de programas que crean registros y los escriben en tablas personalizadas.
Estos tipos de personalización son más complejos que los programas diseñados sólo para leer datos. Su capacidad para generar nuevos registros requiere un poco más de diseño y planificación antes de empezar a escribir el código ABAP.
En comparación con el ejemplo anterior, estos programas personalizados son más complejos porque el modelo de datos debe diseñarse cuidadosamente para garantizar que los registros se generen y escriban de la manera deseada en sus tablas personalizadas.
Sin embargo, estas personalizaciones son menos arriesgadas que los programas que modifican las tablas estándar de SAP porque, en general, no debería haber riesgo de “dependencia descendente” (o tanto en teoría los datos que se escriben en estas tablas personalizadas no deberían ser utilizados por otros procesos). En el peor de los casos -cuando los datos son incompletos o incorrectos- debería ser posible modificarlos sin afectar a otros procesos estándar del sistema.
3. Uso de las User Exits (salidas de usuario).
Las salidas de usuario son puntos predefinidos en el código estándar de SAP en los que los clientes pueden modificar los procesos estándar para adaptarlos a sus necesidades. Los elementos de código con un Exit de Usuario están predefinidos por SAP. Se puede añadir código ABAP personalizado a las entradas o salidas de determinados procesos.
Se trata de una herramienta muy potente y versátil. Sin embargo, un sistema SAP que se ha personalizado utilizando muchas salidas de usuario puede resultar muy complejo de mantener y actualizar. También pueden entrar en conflicto entre sí.
4. Programas personalizados que modifican los datos de las tablas estándar de SAP.
Esta es una de las personalizaciones más arriesgadas: intentar cambiar la lógica con la que funciona SAP debe hacerse con mucho cuidado y sólo si se está seguro de conocer exactamente el funcionamiento del software. La modificación de los datos de las tablas estándar puede generar una avalancha de efectos en cadena en otros procesos o en otras tablas cuya existencia puede desconocer (o ignorar que están vinculadas a la tabla estándar modificada).
5.Mejoras.
Las mejoras son el tipo de personalización más complejo. En general, deben evitarse en la medida de lo posible, ya que provocan importantes problemas de estabilidad del sistema. Además, las mejoras limitan la posibilidad de actualizar el sistema (o lo hacen mucho más complejo).
¿Cuándo conviene modificar el sistema?
Las personalizaciones de SAP pueden costar varias decenas o incluso cientos de miles de euros. Un aspecto que a menudo se pasa por alto es el soporte a lo largo del tiempo: las actualizaciones del sistema, la instalación de nuevos componentes o la adición de nuevas personalizaciones son factores que pueden hacer que SAP sea inestable y provoque errores.
Por lo tanto, no sólo hay que tener en cuenta estos costes, sino también la mejor manera de afrontarlos: ¿utilizar el soporte propio de SAP, el de especialistas internos o subcontratar todo a una empresa externa?
Por lo tanto, vale la pena preguntarse cuándo es una buena idea aplicar la personalización. En general, se encuentra en uno de estos escenarios:
- El cambio nos da una ventaja competitiva sobre la competencia. Por ejemplo, podría permitirnos desarrollar un nuevo producto, entrar en un nuevo mercado o, en general, aumentar la facturación.
- El intercambio automatiza una transacción. Por ejemplo, si previamente exportamos los datos a Excel para manipularlos, mientras que es posible realizar las mismas operaciones de forma automática en SAP con una nueva transacción personalizada, podría ser una buena idea implementarla.
- El intercambio nos permite cumplir con las obligaciones legales o relacionadas con el pago de impuestos y derechos. También en este caso puede ser conveniente cambiar de SAP, sobre todo si trabajamos en un sector nicho o en un país para el que SAP no dispone de una solución oficial.