Actualizacion de campos Z en tabla EBAN

Buenos dias Estimados Consultores y compañeros.

Me es grato saludarles y nuevamente recurrir a su experiencia para el siguiente tema:

En la empresa donde me encuentro estan solicitando se actualicen unos campos ZZ de la tabla EBAN en SAP ECC los cuales están en una append structure de EBAN , investigue y quiero verificar con ustedes lo siguiente que me dice la inteligencia artifical Chat GPT:

“En SAP ECC, no existe una BAPI estándar que actualice directamente la tabla EBAN (solicitudes de pedido) de forma libre.
Esto se debe a que EBAN es una tabla de base de datos dependiente de lógica de negocio compleja, por lo que SAP sólo permite modificarla a través de funciones o BAPIs específicas que mantienen la integridad del documento (como liberaciones, cambios de cantidad, texto, etc.).

Si es asi como comenta chatgpt, la consulta seria la siguiente buscando el apoy de ustedes, para estos campos Z se podria ejecutar en un programa ABAP el siguiente codigo?:

UPDATE eban
SET zzcampo1 = ‘VALOR1’,
zzcampo2 = ‘VALOR2’
WHERE banfn = ‘10001234’
AND bnfpo = ‘00010’.

IF sy-subrc = 0.
COMMIT WORK.
ENDIF.

De antemano gracias por su apoyo y comentarios, un abrazo desde mexico.

Hola Alex, lo mismo que le pido a todos los que piden cosas locas :slight_smile: :wink: :folded_hands:

El “para qué”, qué campos son (como tabla estandar, no cualquier campo puede ser zeta), ya los crearon a los campos Zeta (cuando los crearon cómo los actualizaron?), etc. Nos faltan datos para entender…

1 me gusta

:heavy_heart_exclamation: Importante :exclamation: La siguiente respuesta es generada por nuestro Robot AI de Consultoria‑SAP denominado “CSAPBOT” usando tecnología de IA ‑inteligencia artificial. Por lo tanto, puede haber datos incorrectos. No podemos garantizar que la información sea 100% correcta, solo consultores SAP profesionales y usuarios del sistema podrían verificar la información. ¿Te animas a hacerlo? ¿Aceptas el reto? Puedes responder este debate si sigue abierto!

Si quieres aprender más sobre nuestros sistemas con AI, te esperamos en este artículo.


Buenos días y muchas gracias por tu consulta, que es muy relevante para quienes trabajan con SAP ECC y desean actualizar campos Z personalizados (ZZ*) en objetos sensibles como la tabla EBAN (Solicitudes de pedido).

Vamos directo a aclarar el punto que mencionó ChatGPT y darte la guía correcta como lo haríamos en los Foros SAP de Consultoria-SAP.


:locked: ¿Se puede hacer un UPDATE directo a EBAN?

Técnicamente sí se puede, como lo planteaste:

UPDATE eban
  SET zzcampo1 = 'VALOR1',
      zzcampo2 = 'VALOR2'
WHERE banfn = '10001234'
  AND bnfpo = '00010'.

IF sy-subrc = 0.
  COMMIT WORK.
ENDIF.

Pero funcionalmente NO se recomienda realizar UPDATE directo sobre tablas sensibles como EBAN, por varias razones:

Riesgos:

  • No se disparan validaciones ni lógica de negocio (user exits, BADIs, logs, etc.).

  • No se actualizan índices secundarios o buffers, lo que puede generar inconsistencias.

  • Podrías romper la integridad funcional del documento si tus ZZ campos afectan procesos como:

    • Liberación de la solicitud

    • Interfaces externas

    • Cálculos de imputación


:white_check_mark: ¿Cuál es la forma correcta de hacerlo?

:small_blue_diamond: Opción 1: BADIs / User Exits (recomendado)

Si los campos ZZ están relacionados con lógica de usuario o deben mantenerse consistentes, lo ideal es:

  • Usar un user exit o BADI para actualizarlos dentro del flujo de modificación estándar de SAP.

  • Por ejemplo: EXIT_SAPMM06B_001, EXIT_SAPMM06B_012, o BADI ME_PROCESS_REQ_CUST.

Esto garantiza:

  • Validaciones

  • Llamadas a lógica estándar

  • Integración con otras funcionalidades


:small_blue_diamond: Opción 2: BAPI específica (si aplica)

Para modificaciones estándar de solicitudes de pedido, SAP provee:

  • BAPI_REQUISITION_CHANGE

Pero solo te permite modificar campos estándar definidos por SAP. Los campos ZZ no se pueden actualizar directamente con esta BAPI, a menos que:

  • Estés usando customer fields habilitados con CI_EBANDB y

  • Tengas un enhancement en el BAPI que lea esos valores


:small_blue_diamond: Opción 3: UPDATE directo (con precaución)

Si decides ir con UPDATE directo, asegúrate de que:

  • Los campos ZZ no afecten lógica funcional crítica

  • Hagas una copia previa (backup) de los datos

  • Tengas una validación en QA/test

  • Documentes que el campo Z es informativo o externo, no funcional

En ese caso, sí se puede usar un programa ABAP como el que planteas, por ejemplo, para actualizar masivamente campos internos como un “comentario interno”, un “identificador externo”, etc.


:brain: Buenas prácticas (Consultoria-SAP)

  • Nunca hagas UPDATE directo a EBAN si tus campos ZZ están involucrados en procesos funcionales (MM, Workflow, Liberación).

  • Evalúa si realmente deben estar en EBAN, o si podrías manejarlos como datos externos en una tabla Z asociada (relación por BANFN/BANFP).

  • En implementaciones críticas, lo correcto es extender el BAPI o usar BADI para mantener consistencia del sistema.


Resumen Consultoria-SAP

Aunque un UPDATE directo a la tabla EBAN puede funcionar técnicamente para actualizar campos Z (ZZ*), no es lo recomendado en SAP ECC debido a riesgos de inconsistencias y omisión de lógica de negocio. Siempre es mejor utilizar BADIs, Exits o BAPIs extendidas, salvo que estés completamente seguro de que esos campos no impactan procesos funcionales. Este tema abarca módulos de MM-PUR / ABAP. ¡Estamos aquí para ayudarte en los Foros SAP de Consultoria-SAP!

Este tema se cerró automáticamente 2 días después de la última publicación. No se permiten nuevas respuestas.