Campo “Solicitante” para transacción ME51N

Hola buen dia expertos, un gusto saludarlos.

Espero me puedan ayudar con lo siguiente:

Queremos ver si al campo “solicitante” de la tx me51 (creación de solped), podemos ligarle un catalogo, por ejemplo, una tabla Z la cual le demos valores validos.

Esto debido a que ese campo es abierto y queremos estandarizar los datos.

De ante mano agradecerles. Saludos.

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

: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.


Hola, muy buen día y gracias por tu consulta tan puntual. Te explico cómo puedes manejar este requerimiento funcional y técnico en SAP ERP ECC o S/4HANA, específicamente en la transacción ME51N (creación de solicitud de pedido / solped).

Esto aplica al módulo MM (Gestión de Materiales).


:bullseye: Objetivo

Controlar el contenido del campo “Solicitante” (BANFN-ERNAM o EBAN-ERNAM) de las solpeds, para que solo se puedan elegir valores válidos de un catálogo (tabla Z) y así estandarizar la información.


:white_check_mark: ¿Qué opciones existen para validar o restringir el campo “Solicitante”?

:small_blue_diamond: Opción 1: Implementar una verificación mediante BAdI o User-Exit

La forma más flexible y profesional de lograr esto es mediante un BAdI o User-Exit que valide el valor ingresado en el campo “Solicitante”.

BAdI recomendado:

  • ME_PROCESS_REQ_CUST

    • Específicamente en el método: PROCESS_ITEM

    • O el método CHECK para validación global

En ese método puedes agregar código para validar el solicitante:

DATA: lv_ernam TYPE eban-ernam.

lv_ernam = im_item->get_data( )->ernam.

SELECT SINGLE ernam FROM ztabla_solicitantes
  WHERE ernam = lv_ernam.

IF sy-subrc <> 0.
  MESSAGE 'Solicitante no válido, por favor seleccione uno del catálogo autorizado' TYPE 'E'.
ENDIF.

Así bloqueas cualquier solicitante que no esté en tu tabla Z personalizada.


:small_blue_diamond: Opción 2: Sustituir el campo por uno Z con ayuda de un enhancement (más intrusivo)

Otra opción más compleja pero viable sería:

  • Crear un campo Z (catálogo desplegable) en un campo de cliente (CI_EBANDB o CI_EBAN) mediante append structure

  • Usar una enhancement en el dynpro de ME51N para mostrar este nuevo campo en lugar del estándar

Esta opción requiere más trabajo técnico (modificaciones, control de pantalla, mapeo a EBAN-ERNAM) y por eso la opción 1 es más recomendada.


:small_blue_diamond: Opción 3: Validación mediante EXIT_SAPLMEREQ_005

También puedes usar el user-exit:

  • EXIT_SAPLMEREQ_005 (parte del enhancement MM06E005)

Este te permite validar antes de guardar:

IF NOT z_solicitantes_catalogo_exists(eban-ernam).
  MESSAGE 'Solicitante no autorizado' TYPE 'E'.
ENDIF.


:small_blue_diamond: Opción 4: Autocompletar o estandarizar con F4 Help

Si además quieres dar un catálogo desplegable, puedes crear un F4 Help sobre el campo mediante:

  • BAdI F4IF_FIELD_EXIT (Field Exit)

  • Enhancement en dynpros (menos recomendado)


:memo: Recomendación práctica

La opción más limpia y segura es implementar el BAdI ME_PROCESS_REQ_CUST para validar contra tu tabla Z. Esto asegura integridad sin necesidad de modificar la pantalla estándar.


Resumen Consultoria-SAP

  • No se puede ligar directamente un catálogo al campo estándar “solicitante” de ME51N, pero puedes validarlo con un BAdI (ME_PROCESS_REQ_CUST) o user-exit (EXIT_SAPLMEREQ_005).

  • Así obligas al usuario a usar un valor registrado en tu tabla Z de solicitantes autorizados.

  • Esta validación se enmarca dentro del módulo MM (Material Management), y puede extenderse también a workflow de aprobación o roles de usuario.

¡Estamos aquí para ayudarte en los Foros SAP de Consultoria-SAP!