La factura llegó con el número de material cortado a la mitad
Un código de material aparece incompleto en una factura y nadie tocó la interfaz. Así se ve en producción el cambio de longitud del material en S/4HANA.
Imagine un lunes en el área de facturación de una distribuidora eléctrica o de una operadora de oil & gas en América Latina. El equipo revisa el lote de documentos emitidos durante el fin de semana y todo cuadra, salvo un detalle: en algunas líneas, el código del material —un repuesto de mantenimiento, un insumo de servicio, un equipo de medición— aparece incompleto. No hay errores en el monitor de integración, no hay un ticket abierto y la interfaz que transporta ese dato no ha sido modificada en años.
La primera reacción suele ser culpar al dato maestro: alguien lo cargó mal, alguien lo corrige a mano y el lote sale. Pero el problema regresa con el siguiente material nuevo. Y es ahí donde conviene detenerse, porque ese código recortado no es un error de captura: es el síntoma visible de un cambio estructural en SAP S/4HANA que alcanzó a una integración que nadie tocó.
Con esta pieza abrimos una serie de seis artículos encadenados sobre ese problema. Aquí instalamos el síntoma tal como se ve en producción; las piezas siguientes irán desarmando la causa y el camino de corrección por etapas.
Un apunte para ubicarse: esta serie no trata de cómo planificar o presupuestar una conversión. Trata de lo que ocurre cuando el sistema ya opera y el error aparece en un documento que alguien tiene que explicar. Si tu organización todavía está en la fase de planificación, al final encontrarás las piezas que ya publicamos sobre ese momento.
El síntoma aparece lejos de la causa
---
config:
theme: base
fontFamily: 'Inter Variable, system-ui, sans-serif'
themeVariables:
darkMode: true
fontFamily: 'Inter Variable, system-ui, sans-serif'
fontSize: '15px'
background: '#111113'
primaryColor: '#1A1A1D'
primaryTextColor: '#F4F5F8'
primaryBorderColor: '#00C2FF'
secondaryColor: '#242428'
tertiaryColor: '#1A1A1D'
mainBkg: '#1A1A1D'
secondBkg: '#242428'
tertiaryBkg: '#2E2E33'
lineColor: '#00C2FF'
textColor: '#F4F5F8'
titleColor: '#F4F5F8'
nodeBorder: '#00C2FF'
clusterBkg: '#1A1A1D'
clusterBorder: '#2E2E33'
edgeLabelBackground: '#242428'
pie1: '#00C2FF'
pie2: '#f59e0b'
pie3: '#22c55e'
pie4: '#59d7ff'
pie5: '#f97316'
pie6: '#ef4444'
pieTitleTextColor: '#F4F5F8'
pieSectionTextColor: '#F4F5F8'
pieLegendTextColor: '#F4F5F8'
pieStrokeColor: '#111113'
pieOuterStrokeColor: '#111113'
---
flowchart TD
A([Código de material incompleto en un documento]) --> B[Suele culparse al dato maestro]
B --> C[Se corrige el registro a mano]
C --> D[Se reprocesa y se cierra la incidencia]
D --> E[El origen sigue intacto]
E --> F[Llega un material nuevo con código largo]
F --> G([Fallo con el documento ya enviado])
G -->|Se repite| B
class A inicio
class B,C,D proceso
class E,F neutro
class G malo
classDef inicio fill:#113d4f,stroke:#00C2FF,color:#ffffff
classDef proceso fill:#33363c,stroke:#9aa0aa,color:#ffffff
classDef malo fill:#462226,stroke:#ef4444,color:#ffffff
classDef neutro fill:#33363c,stroke:#9aa0aa,color:#ffffff
Lo primero que hace difícil este problema es quién lo detecta. No lo ve el equipo de integración ni el de desarrollo ABAP: lo ve el analista de facturación, el responsable de almacén que no encuentra el repuesto en el sistema del contratista, o el auditor que no logra conciliar un documento con el catálogo de materiales.
Para ellos, el síntoma se parece a un problema de calidad de datos. Por eso el diagnóstico inicial suele ir en la dirección equivocada: se corrige el registro, se reprocesa el documento y se cierra la incidencia. El origen sigue intacto, y cada material nuevo con un código largo vuelve a reproducir el fallo en el punto más incómodo de la cadena, cuando el documento ya salió hacia un cliente, un proveedor o un sistema externo.
Una interfaz que nadie tocó también puede romperse
En SAP S/4HANA, la longitud máxima de los campos que manejan el número de material se extendió de 18 a 40 caracteres, según lo descrito en la nota SAP 2215424 (IBM, 2019). Para no romper la compatibilidad con otras versiones y con las interfaces existentes, los campos originales de las BAPI conservaron su longitud, y se agregó un campo nuevo al final de la estructura para soportar el número de material largo (IBM, 2019).
Hay un segundo detalle que explica por qué el problema no aparece el día de la conversión. Para usar números de material de más de 18 caracteres hay que activar explícitamente la funcionalidad de número de material extendido, y mientras no se active, la comunicación vía BAPI, IDoc, servicios web y RFC liberados de entrada sigue funcionando con normalidad (IBM, 2019).
La consecuencia práctica es incómoda: la falla no coincide en el tiempo con el cambio que la provoca. La integración pasa las pruebas de la conversión, el go-live transcurre sin incidentes y, meses después, alguien activa la funcionalidad extendida y empieza a crear materiales con códigos más largos. Ese día, una interfaz que nadie modificó empieza a transportar un valor que ya no le cabe. La frase «nadie tocó la integración» es literalmente cierta, y precisamente por eso es engañosa.
Dónde se corta el dato
El punto exacto de ruptura suele estar en el código propio. Cuando números de material desarrollados a la medida con longitud de 18 caracteres conviven con el nuevo número de material de 40 caracteres, puede perderse información al mover el valor entre ambos formatos, y pueden aparecer conflictos de tipo al pasar el campo como parámetro, además de conflictos de longitud al compararlo o concatenarlo con el número de material de SAP (KTern, 2021). En todos esos casos, el código propio resulta incompatible (KTern, 2021).
Tampoco las integraciones empaquetadas de terceros quedan exentas. En el ámbito de gestión de activos, el adaptador de IBM Maximo para SAP requirió ajustes en su código ABAP para entregar el número de material al campo nuevo dentro de las estructuras BAPI, y en el IDoc MATMAS el mapeo debe usar el campo MATNR_LONG del segmento E1MARAM en lugar de MATNR (IBM, 2019). Es un recordatorio útil: el riesgo no vive solo en los desarrollos Z de la casa.
Por qué importa en utilities y oil & gas de América Latina
La facturación y el catálogo de materiales de mantenimiento son dos de las zonas con más integraciones en una utility o en una operadora de oil & gas de la región: sistemas de medición, facturación a terceros, almacenes, contratistas de mantenimiento, plataformas EAM, portales de proveedores y reportes hacia entes reguladores. Cada uno de esos puntos de contacto es un lugar donde el código de material puede viajar por un campo con la longitud anterior.
El impacto tampoco es menor. Un código recortado en un documento de facturación complica la conciliación y la recaudación; uno recortado en el catálogo de repuestos puede dejar un componente crítico sin trazabilidad justo cuando la continuidad operativa depende de encontrarlo rápido.
Hay un matiz que ayuda a acotar la exposición: con la configuración estándar, los números de material exclusivamente numéricos siguen restringidos a 18 caracteres y se completan con ceros a la izquierda en la base de datos. Según la propia base de conocimiento de SAP, el sistema rechaza un número numérico más largo aunque la extensión de campo esté activada (IBM, 2019; SAP KBA 2453997, s. f.). Los catálogos más expuestos son, por tanto, los alfanuméricos: codificaciones de fabricante, de proveedor o esquemas internos que aprovechan la nueva longitud.
Tres preguntas antes de culpar al dato maestro
Antes de corregir el siguiente registro a mano, vale la pena hacer tres preguntas:
- ¿Está activada la funcionalidad de número de material extendido en el sistema, y desde cuándo?
- ¿Los materiales afectados tienen códigos alfanuméricos que superan la longitud anterior?
- ¿Qué interfaces, IDoc, BAPI o desarrollos propios transportan el material usando el campo original en lugar del campo largo?
Si las respuestas apuntan en esa dirección, el problema no está en quien cargó el dato, sino en la integración que lo transporta. En AGT acompañamos a utilities y empresas de energía de la región a convertir ese síntoma aislado en un diagnóstico ordenado, antes de que se convierta en un patrón de incidencias recurrentes.
Lo que sigue en la serie
En la próxima entrega bajamos del síntoma a la causa: «Qué cambió realmente: el campo de material pasó de 18 a 40 caracteres en S/4HANA». Las piezas siguientes avanzarán por etapas hasta el camino de corrección.
Esta serie se apoya en lo que ya publicamos sobre la fase previa, cuando la conversión todavía se está planificando. Si quieres el contexto completo, estas lecturas cubren ese momento:
- S/4HANA: por qué el modelo de datos es un reset, no un upgrade: los cambios estructurales del modelo de datos que redefinen el alcance de una conversión.
- Presupuestar a ciegas: por qué ningún plan de conversión vale sin el Readiness Check: cómo dimensionar el alcance real antes de comprometer un presupuesto.
- Conversión a S/4HANA: el costo oculto está en las interfaces: por qué, en una utility con IS-U customizado, las sorpresas de costo aparecen en las interfaces.
- El alcance que el inventario ABAP no ve: interfaces y cargas: qué queda fuera del inventario de remediación de código.
Fuentes
- IBM (2019). Configuring Maximo Enterprise Adapter for SAP to use the material number field length extension in SAP S/4HANA. IBM Support. https://www.ibm.com/support/pages/node/1098081
- KTern (2021). SAP S/4HANA 2022 - Planning your Custom Code Remediation. KTern.AI. https://ktern.com/article/sap-custom-code-impact-analysis/
- SAP (s. f.). KBA 2453997 - S4/HANA: BMG142 The numeric material number is longer than 18 characters. SAP Knowledge Base. https://userapps.support.sap.com/sap/support/knowledge/en/2453997
- SAP Learning (s. f.). Listing Simplifications for the Material Master in SAP S/4HANA. SAP. https://learning.sap.com/learning-journeys/exploring-functions-and-innovation-in-sap-s-4hana-sourcing-and-procurement/listing-simplifications-for-the-material-master-in-sap-s-4hana_acda4aa1-4ce7-4bb4-a41b-745dd33621f9
Artículo de Edward Camacho Guerra, elaborado con apoyo de herramientas de inteligencia artificial y revisado y aprobado por el autor.
¿Este análisis mapea un mercado donde ya operas o estás evaluando entrar?
Revisamos tu caso específico, mapeamos los riesgos que aplican, y te decimos honestamente si es oportunidad para ti —sin pitch comercial, solo discusión técnica y estratégica.