¿Tu equipo trabaja en SAP Business One… pero sigue invirtiendo
tiempo en tareas manuales?
Con la integración de Dost, desarrollada por GROUPmee, automatizas procesos clave de tu operativa financiera directamente dentro de SAP. Captura e interpreta documentos con inteligencia artificial, concilia automáticamente facturas, pedidos y albaranes, y gestiona aprobaciones sin fricciones.
No es solo gestión documental: es automatización real de procesos,
con trazabilidad y control en tiempo real.
Menos tareas manuales. Más eficiencia. Más control.
SAPOCALYPSIS NOW 23
Nota del autor: Todos los personajes, nombres de empresas y eventos descritos en esta historia son completamente ficticios. Cualquier similitud con personas, organizaciones o sucesos reales es puramente coincidencia.
Por David Reyes, Consultor SAP Senior
Era febrero de 2012. Madrid vivía bajo la sombra de una crisis económica que parecía no tener fin. Las empresas se aferraban a sus sistemas como si fueran tablas de salvación en un mar de incertidumbre. Y Textiles Hispania S.A., una empresa familiar de confección con ochenta años de historia, no era la excepción.
Hace años habían sido los proveedores oficiales de uniformes para la administración pública. Ahora, con los presupuestos públicos congelados, dependían de un único cliente grande: MODAPOINT, una cadena de distribución de ropa casual con 340 tiendas en toda España.
MODAPOINT representaba el 68% de nuestros ingresos anuales.
Cada pedido que llegaba de MODAPOINT era vital. Cada error podía significar el cierre. Y a través de una interfaz EDI que nadie entendía completamente, estábamos a punto de aprender por qué el 68% de dependencia es una sentencia de muerte que solo espera ser ejecutada.
Los Protagonistas de Nuestro Desastre
Yo, David Reyes, 41 años. Consultor SAP con quince años de experiencia. Había implementado el sistema en Textiles Hispania hace ocho años, en los días en que la empresa aún ganaba dinero y podía darse el lujo de hacer las cosas bien. Hacía seis meses que había dejado el rol full-time como responsable técnico y ahora trabajaba como consultor "de mantenimiento", visitando la empresa dos días a la semana.
Ese febrero estaba considerando dejarlo todo e irme a trabajar a una consultora grande en Barcelona. La economía de 2012 era deprimente. Necesitaba un cambio radical en mi carrera.
Carlos Montoya, 38 años. Director de Sistemas de Textiles Hispania. Ingeniero de la vieja escuela, autodidacta, pragmático. Lo más importante: completamente estresado por los recortes de presupuesto. Le habían reducido el departamento de IT de cuatro personas a dos en menos de un año. Trabajaba sesenta horas a la semana y ganaba lo mismo que ocho años atrás. Su pelo había encanecido notablemente desde que nos conocimos en 2004.
Marta Gómez, 32 años. Coordinadora de Operaciones Comerciales. Su trabajo era gestionar todos los pedidos que llegaban de MODAPOINT. Cinco años en la empresa. Perfecta en su trabajo, conocía cada cliente, cada tienda, cada capricho de MODAPOINT como si fuera su propio negocio.
Marta estaba embarazada de tres meses. Era su primer hijo. Era su mejor año, el año en que todo parecía que finalmente iba bien.
Javier Fernández, 26 años. Programador ABAP junior. Había entrado dos años atrás durante el pico de la crisis, contratado a media jornada por un salario que rayaba en lo insultante. En 2012, la empresa lo pasó a jornada completa porque necesitaban apoyo técnico constante y no tenían presupuesto para contratar a otro senior. Era brillante técnicamente pero inseguro emocionalmente. Quería demostrar que valía, que merecía ese puesto.
Estos cuatro eran los actores principales de una tragedia que aún hoy, doce años después, me despierta por las noches.
El Email del Viernes
Jueves 2 de febrero de 2012, 14:30 horas.
Estaba conduciendo de vuelta a Madrid después de una implementación en Sevilla. La carretera era monótona. Llovía. El cielo estaba gris como el futuro de la empresa que acababa de dejar.
Mi teléfono sonó. Era Carlos.
—David, necesito pedirte un favor. MODAPOINT quiere que hagamos un cambio en cómo procesamos sus pedidos por EDI. Nada grande. Que Javier puede hacerlo fácilmente.
—¿Qué tipo de cambio, Carlos?
—Quieren poder MODIFICAR pedidos que ya hemos recibido. Cambiar cantidades, cambiar fechas de entrega. Todo por EDI. Automáticamente. Sin que tengan que llamar.
Frené en un semáforo en rojo. Sentí que el estómago se me contraía.
—¿Pedidos que ya están procesados?
—Eso es. Antes, cuando recibían un pedido, una vez que lo enviábamos al sistema, no podían modificarlo. Tenían que llamar, y nosotros hacíamos el cambio manualmente. Ahora quieren que la interfaz EDI procese cambios automáticamente, como si fuera un nuevo pedido, pero marcando que es "modificación".
Pasó el semáforo en verde.
—Carlos, eso es una MALA IDEA.
—¿Por qué?
—Porque las modificaciones a un pedido que ya está en proceso de fabricación o entrega... hay que validar el ESTADO del documento. Si el pedido ya fue preparado en almacén, modificarlo es peligroso. Si ya fue despachado, es imposible modificarlo sin crear caos. ¿Entiende MODAPOINT esto?
—Sí, pero dice que casi todos los cambios llegan dentro de las primeras 24 horas, antes de que se despache. Que es un caso muy raro que nos pidan cambiar algo que ya está en camión.
Casi. Raro. Esas palabras me hicieron escalofriar.
—¿Qué tan urgente es?
—MODAPOINT es nuestro cliente más importante, David. Necesitamos esto para mantenerlos contentos. Si otro proveedor les ofrece esta flexibilidad y nosotros no...
No terminó la frase. Pero ambos sabíamos exactamente qué significaba. Perdería el 68% de los ingresos de la empresa.
—De acuerdo —dije, tomando una decisión que lamentaría durante años—. Pero lo hacemos bien. Javier va a tener que añadir validaciones en la interfaz EDI para verificar el ESTADO del pedido. Solo permite cambios en pedidos que estén en estado "abierto", completamente abiertos. Nada de tocar pedidos que estén en almacén siendo preparados o despachados.
—Perfecto. ¿Cuándo puedes venir a Valladolid?
—El martes 7. Te envío por email los requisitos técnicos del cambio.
Colgué. Recuerdo perfectamente ese momento. Recuerdo haber pensado: "Esto va a ser un problema." Recuerdo haber pensado en decirle a Carlos que esperáramos, que lo hiciéramos en una fase posterior, que lo hiciéramos bien aunque costara tiempo.
Pero era febrero de 2012. Textiles Hispania estaba perdiendo dinero. MODAPOINT era el 68%. Y Carlos estaba bajo presión de su dirección, que a su vez estaba bajo presión del banco que financiaba la empresa.
No dije no.
Ese fue el primer error. Aunque no lo sabía entonces.
La Implementación en Valladolid
Martes 7 de febrero de 2012, 10:00 horas.
Estaba en las oficinas de Valladolid, en una pequeña sala de reuniones con Carlos, Marta y Javier. Las paredes eran grises. La luz fluorescente era deprimente. Fuera llovía.
Proyecté en la pantalla el flujo actual de la interfaz EDI de MODAPOINT:
FLUJO ACTUAL (solo nuevos pedidos):
1. MODAPOINT envía archivo EDI con nuevo pedido
2. Sistema EDI recibe archivo
3. Sistema valida: cliente existe, materiales existen, números son válidos
4. Crea documento de venta en SAP (VBAK/VBAP)
5. Pedido está en estado "Abierto"
6. Puede ser modificado manualmente, preparado en almacén, despachado—Bien —dije—. Ahora vamos a añadir la capacidad de MODIFICAR pedidos existentes. Esto es lo que debería pasar:
NUEVO FLUJO (con modificaciones):
1. MODAPOINT envía archivo EDI con cambio (número de pedido, cambio de cantidad, cambio de fecha)
2. Sistema EDI recibe archivo
3. Sistema valida: cliente existe, materiales existen, PEDIDO EXISTE
4. Sistema VERIFICA EL ESTADO DEL DOCUMENTO: ¿está en estado "Abierto"?
5. Si está completamente abierto: modifica cantidad/fecha
6. Si NO está abierto: RECHAZA el cambio y envía error a MODAPOINTMarta asintió con la cabeza.
—Eso es lo correcto —dijo—. Porque si el pedido ya está en almacén siendo preparado, cambiar cantidad es un caos total. Los del almacén están preparando 500 prendas, tú cambias el pedido a 300, ¿Qué haces con las otras 200 que ya están separadas?
—Exacto —dije, mirando a Javier—. Por eso la validación de ESTADO es crítica. Javier, ¿estás de acuerdo con esta lógica?
Javier asintió.
—Claro. Lo que hago es verificar el estado del documento en la tabla VBAK. Si el campo VBAK-VBTYP está en estado "confirmado", rechazo el cambio. Simple.
Espera.
Eso fue lo que Javier dijo. Recuerdo específicamente esa palabra: "confirmado".
En SAP, los estados de un documento de venta no se guardan en un campo simple y obvio. Son complejos. Hay múltiples campos que indican el estado operativo de un documento:
VBAK-VBTYP: Tipo de documento (C = cliente, O = orden, etc.) - ESTO NO INDICA ESTADO OPERATIVO
VBAK-VBELN: Número del pedido
VBUK-WBSTK: Estado de facturación (A=abierto, B=parcial, C=completo)
VBUK-GBSTK: Estado de despacho (A=completamente abierto, B=parcialmente despachado, C=completamente despachado)
VBUP-PSTYV: Estado de posición
Lo que Javier acababa de describir, usando esas palabras exactas, no tenía sentido técnico en el contexto de SAP.
Debería haber parado ahí. Debería haber dicho: "Javier, espera. VBTYP nunca es 'confirmado'. No entiendo tu lógica. Tenemos que verificar VBUK-GBSTK, el estado de despacho real."
Pero no lo hice.
¿Por qué no lo hice?
Carlos estaba revisando emails en su portátil, estresado por el trabajo acumulado. Marta estaba tomando notas, asumiendo que todo era correcto. Yo estaba cansado del viaje de Sevilla a Valladolid. Y Javier parecía confiado, como alguien que había pensado bien en ello.
Ese fue el segundo error. Un error de asunción de competencia cuando debería haber habido verificación rigurosa.
—Bien —dije—. Pero antes de implementar, verifica bien la documentación de SAP. Quiero que sea IRREFUTABLE. Los estados de un documento en SAP son complejos. Asegúrate de que entiendes completamente cuál es el campo correcto para verificar.
—Claro —asintió Javier—. Lo hago en desarrollo, luego lo probamos en QA, y si funciona correctamente, lo pasamos a producción.
—Correcto. Pero no hay prisa. Hacemos esto bien. ¿Cuándo tienes disponible?
—Esta semana puedo empezar. Probablemente para el martes 14 tenemos algo testeable en desarrollo.
—Perfecto. Yo vuelvo el 21 de febrero. Para entonces, revisamos y si todo va bien, lo pasamos a producción el 28 de febrero. Eso nos da una semana de amortiguador.
—Excelente. Esto va a hacer muy feliz a MODAPOINT.
Tenía razón. Lo haría muy feliz.
Justo antes de destruir casi toda nuestra relación comercial.
El Desarrollo en Silencio
Martes 14 de febrero de 2012, 11:00 horas.
Recibí un email de Javier: "Cambio en desarrollo listo. Pruebas funcionales OK. Sistema rechaza cambios cuando es necesario. Listo para QA."
Esa noche, después del trabajo, lo probé remotamente desde mi apartamento en Madrid. Me conecté al sistema de desarrollo de Textiles Hispania.
Creé un pedido de venta de prueba. Cliente: cliente de test. Material: material de test. Cantidad: 10 unidades.
El pedido se grabó. Número: 8000012345.
Luego simulé una modificación que MODAPOINT haría: cambiar cantidad de 100 a 80 unidades.
Ejecuté la interfaz nueva.
El sistema respondió: "Documento no puede ser modificado - estado no permitido."
—Perfecto —pensé—. La validación está funcionando.
Lo llamé a Javier.
—¿Qué validación exactamente aplicaste? —pregunté.
—Verifico VBAK-VBTYP en la tabla VBAK. Si el campo no contiene "C", rechazo el cambio y envío error.
Hubo un silencio. Un silencio que tendría que haberme alertado inmediatamente.
—¿VBTYP siempre contiene "C"?
—Sí. Todos los pedidos de clientes tienen VBTYP = C.
Entonces... la validación NO estaba realmente funcionando en el sentido que Javier describía. Porque VBTYP SIEMPRE es "C" para pedidos de clientes. Lo que significa que la validación estaría rechazando... nada. Todos los pedidos pasarían.
Pero mi cambio de prueba FUE rechazado. Entonces había OTRA validación.
—Javier, espera. En mi prueba, cuando intenté cambiar el pedido, dijo "estado no permitido". ¿De dónde viene exactamente ese mensaje de error?
—Ah, eso es una validación de negocio. Si el pedido está en estado "completo" (todas las líneas facturadas), no puedo modificarlo. Eso lo verifico con VBUK-WBSTK (estado de facturación).
Ah.
Entonces Javier SÍ estaba usando VBUK. Entonces SÍ estaba intentando verificar algún estado.
Pero ¿por qué mencionó primero VBTYP si la validación real usaba WBSTK?
Debería haber hecho que explicara exactamente qué código había escrito. Línea por línea. Debería haber pedido que me mandara el código ABAP completo y lo hubiera revisado yo mismo.
Pero era San Valentín. Javier había estado trabajando en esto todo el día. Yo tenía una cita esa noche con una chica que después resultó ser un desastre.
Ese fue el tercer error. Un error de negligencia que pagaría caro.
—Bien —dije—. Pasalo a QA. Yo lo reviso exhaustivamente cuando vuelva la próxima semana. Necesito ver el código completo.
—Gracias, David. Esto va a hacer muy feliz a MODAPOINT.
Colgué. No pedí el código. No hice la revisión exhaustiva. Asumí que si las pruebas funcionales pasaban, la lógica era correcta.
Las tres decisiones fueron errores.
El Descubrimiento
Martes 21 de febrero de 2012, 15:47 horas.
Estaba de vuelta en Valladolid. En la sala de desarrollo. Marta estaba con nosotros, revisando si la funcionalidad nueva resolvía su problema operativo.
—Vamos a probar un escenario real —dijo Marta, abriendo un documento en SAP—. Ahí está. Pedido que llegó hace dos días de MODAPOINT. Número 0087345. El cliente quiere cambiar la cantidad de 500 a 300 prendas.
Abrió la transacción ZPEDIDO_MODIFICADOR (la interfaz nueva que Javier había creado).
Introdujo los datos del cambio: Número de pedido, nueva cantidad (300).
ENTER.
El sistema aceptó el cambio sin objeción alguna.
"Modificación procesada correctamente. Pedido 0087345 ahora tiene 300 unidades en lugar de 500."
—Perfecto —sonrió Marta—. Esto es exactamente lo que MODAPOINT necesitaba. Esto les da la flexibilidad que buscaban.
Pero algo en mi intuición se disparó. Un sentimiento de peligro. Una sensación que había aprendido a reconocer en quince años de SAP.
—¿En qué estado estaba ese pedido cuando lo modificamos? —pregunté.
Marta abrió la transacción VA03 (visualizar documento de venta).
Pedido 0087345. Cliente MODAPOINT. 300 unidades (después de la modificación). Fecha de entrega: 24 de febrero.
Y ahí estaba. En el campo VBUK-GBSTK (estado de despacho general): "D" - Parcialmente despachado.
El corazón me aceleró.
—Espera —dije—. ¿Esto dice "parcialmente despachado"?
—Sí —respondió Marta, revisando cuidadosamente el documento—. Porque... déjame ver los detalles. Sí. El pedido original eran 500 unidades. Preparamos el primer lote de 250 en el almacén. Se despacharon a MODAPOINT ayer por la mañana. Las otras 250 unidades estaban pendientes de preparar en el almacén para despachar hoy.
Mi estómago se contrajo como si alguien lo hubiera apretado.
—¿Y ahora dice 300 unidades?
—Sí. Modificamos de 500 a 300. Así que lógicamente, ahora debería ser:
250 ya despachadas
50 unidades pendientes de despachar
—Marta, eso es un PROBLEMA GRAVE.
—¿Qué problema?
Me levante lentamente de la silla.
—¿Dónde están exactamente las 250 unidades que ya se despacharon?
—En camino al almacén de MODAPOINT en Barcelona. Deben llegar hoy o mañana.
—¿A MODAPOINT le hemos enviado documentación de entrega?
—Claro. Albarán de entrega por 250 unidades.
—¿Y si MODAPOINT recibe 250 unidades en Barcelona, pero el SISTEMA de Textiles Hispania dice que el pedido es de 300 unidades? ¿Qué pasa?
Marta me miró lentamente, sin entender completamente la magnitud de lo que estaba diciendo.
—Pues que... que hay una discrepancia. Pero solo por 50 unidades. Podemos resolverla fácilmente.
—No es tan simple. ¿En qué estado quedó el pedido después del cambio?
Marta revisó nuevamente los campos del documento.
—Dice... "Parcialmente despachado".
—Exacto. Eso significa que el SISTEMA todavía ESPERA que se despachen las otras 50 unidades. Pero MODAPOINT solo va a recibir 250. No 300.
Silencio en la sala.
—Oh —murmuró Marta, la realidad golpeándola.
Giré bruscamente hacia Javier.
—¿Cuál era exactamente la validación que implementaste? ¿Verificaste VBTYP o VBUK-GBSTK?
Javier palideció notablemente.
—Ambas... verifico ambas. Primero verifico VBTYP, luego verifico GBSTK. Si GBSTK es "C" (completamente despachado), rechazo el cambio.
La revelación fue como un puñetazo.
—¿SOLO rechazas si está COMPLETAMENTE despachado?
—Sí. Si está parcialmente despachado... permito el cambio porque... porque aún hay material pendiente de despachar.
La lógica parecía razonable. Casi inteligente. Excepto que estábamos permitiendo modificar la CANTIDAD de un pedido que YA ESTABA EN TRÁNSITO FÍSICAMENTE.
El Colapso Total
Martes 21 de febrero de 2012, 16:30 horas.
—Necesito ver el código —dije, con una voz que era puro hielo.
Javier abrió la transacción SE38 con manos temblorosas. Mostró el programa ZPEDIDO_MODIFICADOR.
El código decía:
abap
*Validación de estado del pedido
SELECT SINGLE * FROM VBUK INTO lv_vbuk
WHERE VBELN = p_pedido.
IF lv_vbuk-GBSTK = 'C'. "Completamente despachado
MESSAGE E001 WITH 'Pedido ya está completamente despachado'.
EXIT.
ENDIF.
*Si llegamos aquí, el pedido puede ser modificado
PERFORM modify_pedido.Ahí estaba. La bomba. La validación permitía CUALQUIER cambio mientras el pedido NO estuviera COMPLETAMENTE despachado.
Pedidos parcialmente despachados: PERMITÍAN MODIFICACIÓN.
Eso era el error lógico fundamental.
—Javier —dije, con una calma que ocultaba una furia contenida—. ¿Por qué permitiste modificar pedidos que estaban parcialmente despachados?
Su cara era la de un hombre en pánico absoluto.
—Porque... porque pensé... MODAPOINT dijo que casi todos los cambios llegan en las primeras 24 horas. Pensé que si un pedido estaba parcialmente despachado, significaba que todavía había material pendiente de despachar, y que cambiar la cantidad era posible. Pensé que era una situación controlada.
Tenía una lógica distorsionada de lo que significa "posible" en el mundo del negocio.
Lo que había hecho era permitir que se MODIFICARA un pedido que YA estaba en tránsito. Un pedido donde parte de la mercancía ya estaba en un camión, en una carretera, viajando hacia Barcelona, Madrid o Sevilla.
—¿Cuál es el impacto total? —preguntó Carlos, que había entrado en la sala sin que nos diéramos cuenta, con una expresión que indicaba que ya sospechaba lo peor.
Antes de que pudiera responder, Marta levantó el teléfono y empezó a escribir una consulta SQL en el sistema.
—Voy a verificar cuántos pedidos hemos procesado así desde que la interfaz está en producción. Javier, ¿desde cuándo está esto en producción?
—Desde el 28 de enero.
Tres semanas y media.
Marta ejecutó la consulta:
"SELECT COUNT(*) FROM VBAK WHERE ERDAT >= '20120128' AND KUNNR = 'MODAPOINT'..."
Esperamos. Cinco minutos que parecieron horas.
Los números aparecieron en pantalla.
847 pedidos de MODAPOINT fueron procesados desde el 28 de enero.
—¿De esos 847, cuántos fueron MODIFICADOS a través de la interfaz? —pregunté.
Marta añadió un filter adicional a la consulta.
Nuevamente, esperamos.
47 pedidos fueron modificados a través de la interfaz EDI.
Respiré profundamente.
—¿Y de esos 47, cuántos estaban ya en estado parcialmente despachado cuando fueron modificados?
Nueva búsqueda. Las manos de Marta temblaban mientras escribía.
23 pedidos fueron modificados estando ya en estado parcialmente despachado.
Dios.
Eso significaba que 23 veces, en tres semanas y media, modificamos la CANTIDAD de un pedido que ya estaba FÍSICAMENTE en tránsito.
—¿Cuál es el impacto real? —insistió Carlos—. ¿Qué pasa con esos 23 pedidos?
Marta empezó a revisar los detalles uno por uno.
Pedido 0087325: Modificado de 200 a 180. Estaba parcialmente despachado: 120 ya en tránsito, 80 pendientes. Después del cambio: 80 pendientes. Pero MODAPOINT solo va a recibir 120 y la factura dirá 180. Discrepancia: 60 unidades.
Pedido 0087334: Modificado de 500 a 400. 300 en tránsito, 200 pendientes. Después del cambio: 100 pendientes. Pero MODAPOINT solo recibirá 300 y la factura dirá 400. Discrepancia: 100 unidades.
Pedido 0087340: Modificado de 1000 a 650. 600 en tránsito, 400 pendientes. Después del cambio: 50 pendientes. Pero MODAPOINT solo recibirá 600 y la factura dirá 650. Discrepancia: 50 unidades.
Así, los 23 pedidos. Todos con discrepancias dramáticas entre:
Lo que MODAPOINT iba a recibir REALMENTE (lo que ya estaba en tránsito)
Lo que el SISTEMA SAP decía que habría que recibir (la cantidad modificada)
Lo que FACTURARÍAMOS (la cantidad modificada)
—¿Cuál es el total de discrepancia? —preguntó Carlos, con voz sin emoción, como el de un hombre que ya ha abandonado la esperanza.
Marta sumó todas las cantidades de los 23 pedidos.
4,735 prendas en total.
En valor aproximado: 142,000 euros.
Silencio absoluto en la sala. Solo se escuchaba el zumbido de los monitores.
Dieciséis años después, escribo esto desde la perspectiva de alguien que ha visto este error repetirse una y otra vez en diferentes empresas SAP:
Cometimos muchos errores esa semana. Pero el error fundamental no fue técnico. Fue humano: intención sin verificación.
Javier quería implementar bien. Su intención era crear una validación que permitiera cambios "cuando fuera posible". Y su lógica de "rechazar si está completamente despachado" parecía razonable a primera vista.
Yo quería que fuera rápido. Mi intención fue darle a MODAPOINT la funcionalidad que pedía. Y cuando Javier dijo que tenía una solución, confié.
Marta quería satisfacer a un cliente importante. Su intención era hacer que MODAPOINT estuviera contento y flexible. Y cuando el cambio parecía funcionar, celebró.
Carlos quería mantener a MODAPOINT feliz. Sabía lo que significaba perder el 68% de los ingresos. Su intención de ir rápido fue comprensible.
Todos nuestras intenciones eran buenas.
Pero la carretera al infierno está pavimentada de buenas intenciones.
LAS LECCIONES REALES:
1. Confiar sin verificar no es pragmatismo. Es negligencia.
Cuando le pedí a Javier que explicara su lógica y me dijo "verifico VBTYP", debería haber detenido todo. VBTYP no funciona así. Pero confié. Asumí competencia. Cometí un error.
2. En SAP, los estados de un documento son complejos y están acoplados a realidades físicas.
Un documento con GBSTK = 'B' (parcialmente despachado) significa que PARTE de esa mercancía ya está en tránsito. Si modificas la cantidad, rompes el acoplamiento entre lo que el sistema cree y lo que sucede en la realidad.
3. Las "validaciones simples" casi nunca lo son.
La validación "solo rechaza si está completamente despachado" PARECE razonable. Pero permitir cambios en "parcialmente despachado" es lógicamente incorrecto cuando parte del material ya está viajando.
4. Los escenarios "raros" son exactamente donde los errores se esconden.
MODAPOINT dijo "casi todos los cambios llegan en 24 horas". Esas palabras "casi" y "raro" nos adormecieron. Pero esos casos "raros" eran exactamente donde la interfaz no validaba correctamente.
LA PREGUNTA CRÍTICA:
Cuando alguien dice "es una interfaz simple para procesar cambios", deberías preguntarte:
¿Qué estados tiene el documento? (No supongamos dos o tres. Todos.)
¿En cuáles de esos estados puedo permitir esta acción?
¿Qué procesos físicos están ocurriendo mientras el documento está en estos estados?
¿Si permito este cambio en estado X, qué inconsistencias creo entre realidad y sistema?
¿He probado esto en escenarios no-perfectos?
Si no puedes responder esas preguntas sin dudarlo, no implementes la interfaz.
LA VERDAD INCÓMODA:
Perder 142,000 euros fue caro.
Pero lo que realmente cuesta fue aprender que en SAP, las interfaces "simples" rara vez lo son.
Y que confiar en la intención sin verificar la lógica es un error que paga el cliente, no el consultor.
¿Te ha gustado esta historia?
¿Quieres enviar la tuya (real o ficticia)?
Envíame un correo a [email protected]

