Claude desde cero

Lección 9 de 12 · 10 min de lectura

Claude + ABAP: generar, revisar y testear código SAP

Aprende a usar Claude para escribir, depurar y mejorar código ABAP. Descubre prompts efectivos, cómo revisar código legacy y dónde están los límites antes de llevar nada a producción.

Claude + ABAP: generar, revisar y testear código SAP

Si trabajas en un entorno SAP, sabes que ABAP es tu lenguaje diario. También sabes que escribir ABAP, mantener código heredado y documentar módulos puede consumir horas. Aquí es donde Claude brilla: no solo puede generar código ABAP funcional, sino explicar el código que heredaste, ayudarte a refactorizarlo y sugerir tests unitarios. En esta lección aprenderás cómo hacerlo sin perder de vista los riesgos.

Por qué Claude entiende ABAP (y por qué tiene límites)

Claude fue entrenado con millones de líneas de código ABAP público, documentación oficial y ejemplos de SAP. Entiende sintaxis, patrones comunes, módulos estándar y hasta las peculiaridades de versiones antiguas. Pero aquí viene lo importante: Claude no conoce tu código interno, tus convenciones de naming, tus módulos Z custom, ni las reglas de gobernanza de tu empresa.

Por eso los prompts para ABAP funcionan mejor cuando incluyes:

  • El contexto de tu entorno: versión de SAP (S/4HANA, ECC, etc.), versión de ABAP, si es legacy o moderno.
  • Trozos de código existente que sirvan como ejemplo de estilo.
  • Las restricciones del proyecto: rendimiento, compatibilidad, seguridad.

Caso 1: Generar código ABAP desde cero

Supón que necesitas escribir un report que lea datos de una tabla personalizada (ZMAESTRO), haga cálculos y exporte a Excel. Un prompt genérico no bastará.

Prompt débil:

Escribe un programa ABAP que lea datos de ZMAESTRO y los exporte a Excel.

Prompt fuerte:

Escribe un report ALV (SALV) en ABAP que:
1. Lea datos de la tabla ZMAESTRO (campos: ZIDPROD, ZNOMBRE, ZCOSTO, ZFECHA)
2. Filtre solo registros donde ZFECHA >= hoy - 30 días
3. Calcule un total de ZCOSTO agrupado por ZNOMBRE
4. Muestre el resultado en ALV clásico con botones de descarga a Excel
5. Usa SELECT seguro (sin hints) y valida que ZMAESTRO exista
6. Entorno: SAP S/4HANA 2023, ABAP moderno (versión 7.52+)

La diferencia es enorme. Con el segundo, Claude te entrega código que:

  • Usa SALV/ALV Moderno (no OLE outdated).
  • Incluye validaciones.
  • Respeta SELECT seguro (importante en auditoría).
  • Adapta la sintaxis a tu versión.

Resultado típico: código que funciona en 75-80% de los casos y solo necesita ajustes menores (nombres de tablas, campos exactos, lógica de negocio).

Caso 2: Revisar y mejorar código legacy

Tienes un report de 2008, heredado, que funciona pero te da miedo tocarlo. Aquí Claude es tu aliado.

Pasos:

  1. Copia el código completo (o la función problemática si es muy largo).
  2. Pide a Claude que lo analice primero, no que lo reescriba:
Tengo este código ABAP que funcionaba en versiones antiguas. Analízalo y dime:
1. Qué patrones son outdated o peligrosos
2. Qué SQL hints o construcciones pueden afectar rendimiento
3. Qué cambios harían más seguro en S/4HANA
4. Dónde hay riesgo de inconsistencia de datos

[pega tu código]
  1. En la segunda ronda, pide la refactorización gradual:
Refactoriza solo la parte de SELECT usando OPEN SQL moderno y estructuras ABAP 7.52+.
Mantén la lógica de negocio exactamente igual. No cambies nombres de variables ni loops principales.

Ventaja: así reduces riesgo. No le das carta blanca a Claude para reescribir todo, sino que lo controlas paso a paso.

Precaución: siempre compila, prueba en DEV, y compara resultados con la versión antigua antes de tocar PRD.

Caso 3: Generar y revisar tests unitarios

ABAP moderno (especialmente en S/4HANA) demanda tests. ABAP Unit no es complicada, pero escribir tests repetitivos sí lo es.

Prompt para tests:

Tengo esta clase ABAP que calcula descuentos según volumen:

[pega la clase o método]

Genera 3 test cases usando ABAP Unit que cubran:
1. Descuento básico (cantidad entre 10-100 unidades)
2. Caso edge: cantidad = 0
3. Volumen alto (cantidad > 1000)

Usa BDD style (given/when/then) si es posible. Evita mocks complejos.

Claude generará tests que:

  • Cubren casos normales y edge.
  • Usan aserciones claras.
  • Se ejecutan sin dependencias externas.

Tú luego los ejecutas con CTRL+SHIFT+F10 en SE80 y validas.

Límites y precauciones: donde NO usar Claude para ABAP

❌ Código de producción sin revisar

Nunca copies-pegues código generado por Claude directamente a PRD. Siempre:

  • Compila en DEV.
  • Prueba con datos reales o representativos.
  • Haz code review con tu equipo.
  • Valida rendimiento si es transaccional.

❌ Lógica de negocio crítica sin contexto

Si generas un cálculo de facturación, descuentos o contabilidad, Claude no entiende tus reglas internas. Proporciona ejemplos concretos:

❌ "Genera código que calcule IVA"
✅ "Nuestras reglas de IVA son: 21% normal, 10% reducida (bienes culturales), 0% exenta (medicinas).
    Los descuentos se aplican ANTES del IVA. Genera una función que reciba tipo_articulo y monto_bruto."

❌ Queries complejas sobre tablas transparentes grandes

Si trabajas con MM_KODBESTAND o EKKO (millones de registros), Claude puede generar SQL ineficiente. En estos casos:

  • Usa índices secundarios.
  • Añade hints en tu prompt.
  • Prueba con EXPLAIN PLAN antes de ir a PRD.

❌ Modificación de tablas estándar (SAP delivered)

Nunca uses Claude para modificar MARA, MKPF, VBAK u otras tablas SAP. Si necesitas extensiones, usa SAP Fiori, BAdI o campos Z en extensiones.

Prompts que funcionan bien para ABAP

Aquí tienes plantillas reutilizables:

Para generar:

Genera un [programa/función/clase] ABAP que [descripción].
Requisitos:
- Versión ABAP: [7.40+, 7.52, moderno]
- Tablas: [ZXXXX, EKKO, VBAK]
- Restricciones: [sin RFC, con seguridad, optimizado para 100k+ registros]
- Estilo: [moderno/OOP, funcional, legacy]

Para revisar:

Revisa este código ABAP y dime:
1. Riesgos de seguridad
2. Problemas de rendimiento
3. Incompatibilidades con [S/4HANA 2023]
4. Mejoras recomendadas

Para entender:

Explica en 3 párrafos breves qué hace este código ABAP:
[código]
Usa términos que entienda un junior que conoce ABAP básico.

Para recordar

  • Claude entiende ABAP, pero no tu entorno interno. Siempre dale contexto: versión de SAP, tablas, restricciones, estilo de código de tu equipo.
  • Genera, revisa, valida, testa: nunca lleves código de Claude a producción sin pasar por DEV, code review y pruebas funcionales.
  • Úsalo para acelerar lo repetitivo: reports, tests unitarios, refactorización de código legacy, documentación. No para decisiones de arquitectura ni lógica crítica sin supervisión.
  • Ten precaución con performance: en tablas grandes o queries complejas, valida con EXPLAIN PLAN y pruebas de carga antes de PRD.

Próxima lección: Claude dentro de SAP BTP: el Generative AI Hub