- El Periódico del consultor
- Posts
- 📰 SAP en Producción: evita el caos con cabeza fría
📰 SAP en Producción: evita el caos con cabeza fría
Consejos prácticos para mantener tu sistema estable y sin sustos.

🔍 Dato Curioso
¿Sabías que Coca-Cola fue una de las primeras grandes multinacionales en poner en marcha SAP R/3 en un entorno productivo real?
Sí, sí, la misma que se inventó al mismísimo Papá Noel en rojo.
Corría el año 1994 y mientras el resto del mundo aún flipaba con Windows 95, SAP ya estaba desplegando su revolucionaria solución cliente-servidor, SAP R/3, en entornos productivos a escala mundial. Una arquitectura moderna, modular y capaz de conectar áreas tan dispares como finanzas, logística o producción. ¡Todo en tiempo real! Bueno, real-time... versión noventera. 😅
📦 Coca-Cola, producción global y SAP
Para una compañía como Coca-Cola, con fábricas, distribuidores y clientes en todos los rincones del planeta, tener los datos de stock, pedidos y contabilidad repartidos en cientos de sistemas era como intentar abrir una lata de refresco con guantes de boxeo.
La llegada de SAP R/3 fue una revolución:
✔️ Consolidación de procesos.
✔️ Un único sistema para toda la cadena de valor.
✔️ Adiós a las hojas de cálculo locas con macros ilegales.
✔️ Y sí, por fin los de logística y finanzas hablaban el mismo idioma. Casi.
Hasta las marcas más potentes del mundo no serían lo que son hoy sin una buena gestión de procesos. Y que SAP, con todos sus dolores de cabeza incluidos, ha sido pieza clave en esa evolución empresarial.
Piensa que si Coca-Cola no hubiese apostado por SAP en los 90… igual hoy aún estarían etiquetando las botellas con un Lotus 1-2-3. 😬
📰 Ultimas noticias
Anjani Food & Beverages va en vivo con SAP S/4HANA Cloud
Anjani Food & Beverages Lda, una de las principales empresas de bebidas de África, ha finalizado con éxito el Go‑Live de SAP S/4HANA Cloud ERP, implementado por SAVIC Inc., socio de nivel Platinum de SAP. Esta transformación digital permitirá a la compañía optimizar sus procesos empresariales, mejorar su eficiencia operativa y obtener datos en tiempo real para tomar decisiones más ágiles.
➕ ¿Por qué esta noticia importa?
Transformación real en regiones emergentes: muestra cómo S/4HANA Cloud ya no es solo para gigantes globales; también encaja perfectamente en entornos dinámicos y en crecimiento.
Cloud como impulsor de eficiencia: la migración a S/4 permite cohesionar finanzas, ventas, inventario y logística en una sola plataforma unificada.
Alianzas estratégicas: SAP sigue fortaleciendo su red de partners globales, incluso en mercados como África.
SAP no es solo para Europa o América. Cuando ves compañías como Anjani adoptando S/4 Cloud, entiendes que la transformación digital está alcanzando todos los rincones del mundo.
💹 Información en Bolsa
Esta semana, SAP SE cotiza en torno a los 276 USD, con una ligera bajada del -0,6 %. Nada dramático, pero lo justo para que algún CFO haya cancelado el croissant de la mañana y lo cambie por un café solo ☕.
Los analistas, sin embargo, siguen optimistas: el precio objetivo medio lo sitúan en unos 317 USD, lo que representa un potencial de +15 % respecto al nivel actual. Dicho de otra manera: los que confían en SAP creen que el software alemán todavía tiene gasolina (o, mejor dicho, bytes) para seguir tirando hacia arriba.
Ahora bien, no todo son rosas en Walldorf 🌹. El mercado está un poco nervioso con la inteligencia artificial y cómo puede sacudir a gigantes del software. Algunos informes ya señalan a SAP, Adobe o Nemetschek como empresas que tendrán que mover ficha rápido si no quieren que la IA les quite el asiento en la reunión del comité directivo.
🤓 ¿Qué significa esto para los consultores?
Si SAP aguanta bien el tirón, más inversión en proyectos, migraciones y cloud → lo que se traduce en más trabajo para nosotros.
Si SAP flojea, más presión interna en los clientes para justificar licencias y ROI → lo que también se traduce en más trabajo para nosotros (porque alguien tiene que hacer que los números cuadren 🤷♂️).
Y si todo se desmadra con la IA… pues tranquilo: siempre quedará PowerPoint para hacer presentaciones bonitas y convencer de que SAP sigue siendo “el camino”.
🔮 Mi pronóstico personal: SAP no se va a desplomar mañana. Seguirá adaptándose, metiendo IA en todas las slides de producto (aunque a veces sea más marketing que magia real) y, mientras tanto, los consultores seguiremos facturando porque… spoiler: los proyectos no se documentan solos y las migraciones a S/4 tampoco.
🚀 Innovación IT
SAP ha actualizado significativamente la página de Entitlements dentro del cockpit de SAP BTP para ofrecer mayor transparencia comercial y control operacional sobre tus servicios contratados. Es una mejora diseñada para administradores y responsables de cuentas globales que deben manejar múltiples suscripciones y modelos de consumo.
Características destacadas:
Toggle “Show commercial info”: activa columnas adicionales como Entitlement Source, Licensed Quantity y Commercial Type (Free Tier, Always Free, Consumo) .
Mejores filtros: puedes listar servicios según su origen (subscripción, consumo, gratuidad) y buscar múltiples términos en los planes .
En la sección Service Assignments, puedes visualizar los entitlements aplicados por subcuenta y directorio, con acceso directo a documentación, soporte y enlaces útiles .
Mejora de la experiencia de usuario: mayor claridad sobre qué planes están activos, su origen y asignaciones actuales .
💡 ¿Por qué es relevante?
Control total sobre las licencias: entiendes de dónde proviene cada plan (consumo, suscripción, gratuito) y quién lo asignó.
Evitas sorpresas: al tener visibilidad total, minimizas riesgos y alertas inesperadas por consumo o falta de cuota.
Mejor gestión presupuestaria: con esta información puedes tomar decisiones informadas antes de sobrepasar límites. ¡FinOps al rescate!
Sencillo y accesible: todo desde el mismo cockpit, sin necesidad de cambiar a herramientas externas o CLI.
👉 Ahora puedes decir: "Sé exactamente qué servicios BTP tengo contratados, quién los activó y en qué modelo de facturación... sin llamar a nadie."
Ideal para esos días en que te llama un cliente "preocupaó", pero tú ya tienes los datos frescos en pantalla.
🧠 Tip ABAP
El clásico error:
Usas un SELECT
dentro de un LOOP
y sin darte cuenta… ¡has provocado el temido SELECT N+1! Esto genera una consulta por cada línea del loop: rendimiento por los suelos y base de datos al borde del llanto.
✅ La solución: FOR ALL ENTRIES
Usa FOR ALL ENTRIES
para recuperar datos relacionados de una tabla interna de forma eficiente. Pero ¡ojo! Hay que hacerlo bien:
⚠️ Cosas a tener en cuenta:
FOR ALL ENTRIES
ignora la consulta si la tabla está vacía → ¡siempre usa elIF
!No uses
FOR ALL ENTRIES
con muchas columnas sin filtro → puede dar resultados inesperados o lentos.SAP recomienda usarlo solo si no puedes resolver el problema con un
JOIN
más limpio y directo.
SELECT id name
FROM zclientes
INTO TABLE @DATA(lt_clientes)
WHERE id IN @lt_ids. " ← MAL, no uses IN con tablas grandes
" Correcto:
IF lt_ids IS NOT INITIAL.
SELECT id name
FROM zclientes
INTO TABLE @DATA(lt_clientes)
FOR ALL ENTRIES IN @lt_ids
WHERE id = @lt_ids-id.
ENDIF.
Pero... ¿por qué no es recomendable usar FOR ALL ENTRIES?
Si lt_matnr está vacío, la consulta traerá toda la tabla MARA, lo que puede causar un problema de rendimiento muy serio.
FOR ALL ENTRIES genera múltiples condiciones en la cláusula WHERE, lo que puede afectar negativamente al rendimiento en bases de datos grandes.
No siempre es posible o sencillo usar FOR ALL ENTRIES con tablas internas complejas o estructuras anidadas.
Alternativas modernas en ABAP
Desde las versiones más recientes de ABAP (ABAP 7.40+), puedes hacer INNER JOIN con una tabla interna mediante la nueva sintaxis SQL, que es más eficiente y clara:
DATA: lt_result TYPE TABLE OF mara.
SELECT a~matnr a~maktx
FROM mara AS a
INNER JOIN @lt_matnr AS b
ON a~matnr = b~matnr
INTO TABLE @lt_result.
Aquí
@lt_matnr
es la tabla interna que se usa directamente en la consulta SQL.Esta forma mejora el rendimiento porque la base de datos procesa el join internamente y evita el problema del FOR ALL ENTRIES con tabla vacía.
En CAP (Cloud Application Programming Model)
En CAP, el equivalente a hacer un join con una tabla interna es usar associations en CDS o en las queries:
entity Orders {
key ID : UUID;
Customer : Association to Customers;
}
entity Customers {
key ID : UUID;
Name : String;
}
Usar FOR ALL ENTRIES sin control es como invitar a toda la empresa a una reunión para hablar de café… ¡Terminarás con una sala llena y nadie trabajando! Mejor únete al lado moderno y deja que los INNER JOIN y las associations hagan el trabajo pesado por ti. 😉
🧩 SAP Funcional
Si trabajas en finanzas o eres consultor SAP FI, sabes que uno de los momentos críticos en el día a día es contabilizar documentos correctamente. Y aquí va un secreto fundamental: ¡el principio de oro es que los débitos siempre deben ser iguales a los créditos!
¿Qué significa esto en la práctica?
Cuando usas la transacción F-02 para registrar un documento contable, SAP no solo está archivando números, sino que está aplicando la regla básica de la contabilidad: el balance tiene que cuadrar. Esto implica que la suma de todos los débitos que introduces debe ser exactamente igual a la suma de todos los créditos.
Si no cuadran, SAP no te dejará avanzar. Te mostrará un error y tendrás que revisar el documento. Esto es porque un documento con débitos y créditos que no coinciden es, en lenguaje financiero, un desorden total — y SAP no quiere que tu contabilidad parezca un episodio de “¿Dónde está mi dinero?”
¿Qué revisar antes de contabilizar?
Montos correctos: Los importes de débito y crédito deben ser exactos y estar bien alineados.
Cuentas contables bien asignadas: Asegúrate de que cada importe está en la cuenta GL correcta. No queremos que un gasto de marketing acabe en gastos legales, ¿verdad?
Centro de coste y segmento financiero: Son vitales para informes precisos y análisis posterior. ¡Nada peor que sacar reportes que parecen un sudoku imposible!
Monedas y tipos de cambio: En operaciones internacionales, verifica que las monedas estén bien configuradas para evitar sorpresas desagradables.
¿Por qué es tan importante?
Imagínate que registras un documento con débitos y créditos que no cuadran: es como intentar pagar la cuenta en un restaurante con un billete que no alcanza. El camarero (SAP) te dirá “¡aquí no se cuela nadie!” y no podrás continuar hasta que el importe sea correcto.
Más allá del error inmediato, si dejaras pasar estos desequilibrios (aunque SAP no lo permita), tu balance financiero estaría mal, los informes incorrectos y la dirección tomaría decisiones basadas en datos falsos… ¡un desastre garantizado!
Validar los débitos y créditos antes de contabilizar es como revisar que tienes el cargador antes de salir con el móvil sin batería: puede parecer un paso tedioso, pero te ahorra un mal rato enorme.
🔎 Función de la Semana
CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
¿Qué hace esta función?
Esta función está dentro de la clase CL_GUI_FRONTEND_SERVICES
y permite abrir un cuadro de diálogo en el frontend del usuario para seleccionar uno o varios archivos desde su equipo local. ¡Así puedes pedirle al usuario que elija archivos para subirlos o procesarlos directamente desde su PC!
¿Por qué es interesante y poco común?
En ABAP clásico, trabajar con archivos locales no siempre es tan sencillo o amigable.
Esta función facilita la interacción con el usuario al ofrecer un diálogo gráfico estándar de selección de archivos, mejorando la experiencia.
Además, es multiplataforma, funciona tanto en SAP GUI para Windows como en SAP GUI for HTML (Fiori).
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = 'Selecciona un archivo'
initial_directory = 'C:\'
file_filter = 'Archivos de texto (*.txt) | *.txt | Todos (*.*) | *.*'
CHANGING
file_table = lt_file_table
rc = lv_rc
EXCEPTIONS
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
OTHERS = 5.
IF lv_rc = 1.
lv_path = lt_file_table[ 1 ]-filename.
WRITE: / 'Archivo seleccionado:', lv_path.
ELSE.
WRITE: / 'No se seleccionó ningún archivo'.
ENDIF.
¿Cuándo te puede salvar la vida?
Cuando desarrollas reportes o programas donde el usuario debe subir archivos externos para procesamiento (por ejemplo, cargar datos desde Excel o TXT).
Si quieres evitar pedir rutas fijas o complicar la interacción pidiendo que el usuario escriba el path manualmente.
Para hacer tus programas ABAP más “user-friendly” y modernos.
👑 Liderazgo y Gestión
En SAP, la producción es como el “zona VIP” del sistema: solo pueden entrar los que tienen permiso y saben qué hacen. Meter mano sin cuidado ahí es como intentar arreglar el motor del avión mientras está en pleno vuelo… ¡y créeme, nadie te aplaude!
¿Por qué es tan importante respetar producción?
La producción es donde se ejecutan los procesos reales del negocio. Un cambio improvisado o un debug hecho sin control puede generar caídas, pérdidas de datos o bloqueos que paralizan operaciones. No solo pierdes tiempo, también la confianza de todos.
Buenas prácticas para líderes y equipos:
Nunca hacer cambios directos en producción sin pasar por el ciclo DEV → QAS → PRD. Ese proceso es el filtro que evita que lo “experimental” se vuelva un problema real.
Si necesitas hacer debug en producción, solicita un usuario temporal al departamento de sistemas. Pero ojo, no es pedir “un pase libre”. Tienes que proporcionar:
El nombre exacto del objeto o programa a debugear.
El motivo claro y justificado para hacerlo.
La duración estimada del acceso.
Sigue la nomenclatura estándar para órdenes de transporte. Esto ayuda a encontrar rápidamente cualquier cambio hecho y facilita auditorías o reversión si algo falla.
Documenta siempre los pasos realizados y comunica al equipo antes y después del debug o cambio. La transparencia es clave para evitar “sustos” en producción.
Promueve una cultura donde reportar problemas y seguir procesos sea la norma, no la excepción. No es un “rollo burocrático” sino el escudo contra el caos.
Liderazgo con sentido común…
El sistema de producción no es el lugar para hacer experimentos ni para el “modo ninja” del debugging. Intentar hacer debug sin permiso es como tratar de hacer malabares con cuchillos en un salón lleno de gente: una caída y todos terminan con un susto — y tú, sin amigos.
Como líder, tu tarea es educar, recordar las reglas (sí, esos documentos aburridos sobre prácticas estándar que nadie quiere leer pero todos necesitamos) y garantizar que todos sigan el camino seguro.
Porque, al final, mejor ser el héroe que evita la caída que el “valiente” que la provoca sin querer.
💬 Frase del Día
En SAP, cada línea de código es una oportunidad para transformar negocios, y cada desafío, una puerta hacia la innovación.
📌A veces, los proyectos SAP pueden parecer complicados y llenos de retos, pero recuerda que cada obstáculo es una oportunidad para aprender, crecer y dejar una huella positiva. Sigue adelante, con pasión y dedicación, porque tú eres quien hace posible que la tecnología impulse el éxito.
🙌 Gracias por leer
¡Y hasta aquí nuestro cargamento semanal de sabiduría SAP!
Gracias por aguantar hasta el final sin dormirte (o al menos sin hacer zoom con el móvil).
Nos vemos el próximo martes a las 20:10, puntualitos, que aquí no vale eso de “llego tarde porque debugueé en producción”.
¡No faltes, que la próxima edición viene con más trucos, risas y menos sustos en producción!
Hasta el martes que viene,
Un fuerte abrazo,
Reply