Saltar al contenido

2026

Skill y hooks que impiden que la IA rompa formularios de SAP

Herramientas de análisis estático y hooks que se disparan antes de guardar, para que un asistente de IA no deje los formularios de SAP Business One ilegibles para el ERP.

  • Python
  • Claude Code
  • Análisis estático
  • Hooks
  • Automatización

Problema

Los formularios de SAP Business One son XML en UTF-16 LE con BOM. Cualquier herramienta que reescriba el fichero en UTF-8, o que se deje el BOM por el camino, produce algo que sigue pareciendo XML pero que el ERP ya no sabe interpretar. El fallo no salta al guardar ni al compilar: aparece cuando un usuario abre esa pantalla. Un asistente de IA editando esos ficheros multiplica ese tipo de error, porque edita rápido y no vuelve a mirar.

Solución

Escribí un conjunto de herramientas de análisis estático y varios hooks que se disparan solos antes de guardar, sin que nadie tenga que acordarse de lanzarlos.

Las comprobaciones son cuatro: preservar la codificación original del fichero, validar que cada control lleva sus atributos obligatorios, detectar identificadores duplicados y bloquear el guardado cuando falta un import. Todo se resuelve leyendo el fichero, sin abrir SAP y sin compilar.

Aparte estaba el coste de lectura. Estos ficheros son largos y leerlos enteros para tocar tres líneas se come un contexto que luego hace falta para el resto del trabajo. Las herramientas devuelven resúmenes quirúrgicos con la parte relevante, que cuestan un 4,3 % de lo que cuesta leer el fichero completo.

Arquitectura

Asistente de IA
      |
      |  lectura                          escritura
      +---------------+                        |
      |               |                        v
      v               v                Hook de pre-guardado
resumen quirurgico   fichero                   |
(4,3 % del coste)    completo                  v
                                     Analisis estatico
                                               |
                +------------------+-----------+------------------+
                |                  |           |                  |
                v                  v           v                  v
         codificacion       atributos      ids unicos         imports
         UTF-16 LE + BOM    obligatorios                     completos
                |                  |           |                  |
                +------------------+-----+-----+------------------+
                                         |
                         correcto  <-----+----->  incorrecto
                             |                        |
                             v                        v
                    fichero escrito            guardado bloqueado

Por qué está montado así

Los hooks se disparan solos. Una validación que hay que invocar a mano termina no invocándose, y lo sé porque las primeras versiones eran comandos y nadie los lanzaba.

Si falta un import o hay un identificador repetido, el fichero no se escribe. Avisar no servía: el aviso se lee y se sigue adelante.

Todo es análisis estático. No levanta SAP ni compila, así que una comprobación tarda lo que tarda leer el fichero.

Por defecto devuelve un resumen y el fichero entero solo si se pide. El contexto que se gasta leyendo es contexto que falta luego para razonar.

Las reglas son conservadoras a propósito. Un validador que avisa sin motivo acaba desactivado, y entonces no valida nada.

Resultado

Medido en un piloto de cuatro días: 95,7 % menos de consumo en lecturas, 0 falsos positivos sobre 80 ejecuciones y un fallo real detectado antes de llegar a compilar.

Contacto

Trabajemos juntos en tu próximo proyecto

Si tienes un proyecto de SAP Business One, una integración pendiente o simplemente una duda, escríbeme. Respondo a todos los mensajes.

Ubicación
Palma, Mallorca