Hola a todos!,
Tengo una duda, al momento de contabilizar una reserva ya sea por medio de la trx MB26 o MIGO el sistema permite modificar la cantidad, es decir, si la reserva presenta una salida de mercancía hacia un centro de costo (Mov 201) por una cantidad de una unidad, al momento de contabilizar esa cantidad puede ser cambiada incluso por una cantidad mayor 100 por ejemplo. (contabilizara siempre y cuando exista stock en los almacenes). ¿Existe un punto de configuración para controlar eso? o ¿se debe implementar algún user exit ?
En SAP ERP (ECC o S/4HANA), para controlar la modificación de cantidades al momento de contabilizar una reserva (ya sea a través de la transacción MB26 o MIGO) y evitar que los usuarios cambien la cantidad reservada original, puedes utilizar varias opciones:
Opción 1: Configuración de Tolerancias
SAP permite configurar tolerancias para movimientos de mercancías. Aunque esta configuración no evita completamente la modificación de cantidades, puedes establecer límites que controlen cuánto puede variar la cantidad ingresada.
-
Acceder a la Configuración de Tolerancias:
- Ve a
SPRO
> Gestión de Materiales
> Gestión de Inventarios y Verificación de Facturas
> Movimiento de Mercancías
> Definir Límites de Tolerancia
> Configurar Límites de Tolerancia para Cantidad de Movimiento
.
-
Configurar las Tolerancias:
- Configura los límites de tolerancia según tus necesidades para el tipo de movimiento 201 (u otros que apliquen).
Opción 2: Utilizar User Exits o BadIs
Para un control más preciso y específico, puedes implementar un User Exit
o BAdI
(Business Add-In) que verifique y restrinja la modificación de cantidades al momento de contabilizar las reservas.
User Exit: MBCF0007
-
Acceder a la Transacción SMOD
:
- Ingresa la transacción
SMOD
para buscar el User Exit
adecuado.
-
Buscar el Exit MBCF0007
:
- El
User Exit
MBCF0007
(User Exits: Material Movements) es adecuado para este tipo de control. Este Exit
se utiliza para verificar y modificar los datos de movimiento de material antes de la actualización.
-
Implementar el Exit:
- Ve a la transacción
CMOD
para implementar el User Exit
.
- Crea un proyecto y asigna el
User Exit
MBCF0007
a tu proyecto.
- En el código de la implementación, agrega la lógica para verificar y restringir la modificación de cantidades.
BAdI: MB_MIGO_BADI
-
Acceder a la Transacción SE18
:
- Ingresa la transacción
SE18
para buscar el BAdI adecuado.
-
Buscar el BAdI MB_MIGO_BADI
:
- El BAdI
MB_MIGO_BADI
(BAdI: MIGO) permite controlar diversos aspectos de la transacción MIGO, incluyendo la validación de cantidades.
-
Implementar el BAdI:
- Ve a la transacción
SE19
para implementar el BAdI.
- Crea una nueva implementación y selecciona
MB_MIGO_BADI
.
- En el método
LINE_MODIFY
, agrega la lógica necesaria para verificar y restringir las cantidades.
Ejemplo de Implementación
Implementación en el Exit MBCF0007
* Include in CMOD project
FORM userexit_save_document_prepare.
DATA: lv_qty_reserved TYPE mseg-menge.
LOOP AT xekpo WHERE bwart = '201'.
SELECT menge INTO lv_qty_reserved
FROM resb
WHERE rsnum = xekpo-rsnum
AND rspos = xekpo-rspos.
IF xekpo-menge > lv_qty_reserved.
MESSAGE e001(zz) WITH 'Quantity exceeds reservation amount'.
ENDIF.
ENDLOOP.
ENDFORM.
Implementación en el BAdI MB_MIGO_BADI
METHOD if_ex_mb_migo_badi~line_modify.
DATA: lv_qty_reserved TYPE resb-menge.
IF is_goitem-bwart = '201'.
SELECT menge INTO lv_qty_reserved
FROM resb
WHERE rsnum = is_goitem-rsnum
AND rspos = is_goitem-rspos.
IF is_goitem-menge > lv_qty_reserved.
MESSAGE e001(zz) WITH 'Quantity exceeds reservation amount'.
ENDIF.
ENDIF.
ENDMETHOD.
Resumen
Para controlar la modificación de cantidades al contabilizar reservas en SAP ERP:
-
Configurar Tolerancias:
- Establecer límites de tolerancia para los movimientos de mercancías.
-
Implementar User Exits o BAdIs:
- Utilizar
User Exit
MBCF0007
o BAdI
MB_MIGO_BADI
para implementar lógica que restrinja la modificación de cantidades.
Ambos métodos permiten tener un mayor control sobre cómo se gestionan las cantidades al contabilizar reservas y aseguran que los usuarios no puedan modificar las cantidades reservadas originalmente.
Si tienes más preguntas o necesitas más detalles sobre algún paso específico, no dudes en preguntar. ¡Estoy aquí para ayudarte!