¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

¡Acceso SAP S/4HANA desde $100!

Acceso a SAP

AL QUERER REALIZAR LA SALIDA DE MERCANCÍA PARA ORDEN DE FABRICACIÓN MEDIANTE LA TRANSACCIÓN MIGO, NO TRAE LA CANTIDAD PROGRAMADA DE LA UNIDAD DE MEDIDA ALTERNATIVA (METROS) SINO QUE ESTÁ REDONDEANDO A LA UNIDAD DE MEDIDA BASE (UN)

  • Creado 11/04/2025
  • Modificado 11/04/2025
  • 683 Vistas
0
Cargando...

Hola tengo un problema en el siguiente procedimiento:

  1. A un material le configure la unidad de medida alternativa en la MM02, dejandole la equivalencia en 1UN = 3 Metros. (OK sin Problema)
  2. Configure en la transacción MM02 la unidad de medida de salida de mercancia de almacen en metros (OK sin Problema)
  3. Se programo este material en la lista de componetes de una orden de fabricación (OK sin problema)

El problema radica que en la orden de fabricación quedo una cantidad a utilizar de 1,88 metros y al querer dar la salida de mercancia de la orden mediante la transacción MIGO el sistema esta redondeando a la cantidad de la unidad de medida base (UN) pero con la simblologia de la unidad de medida en metros, es decir en vez de traer 1,88 Metros trae es 3 Metros. ¿Como puedo configurar para que no se realice el redondeo sino la cantidad exacta en metros de que esta programada en la orden de fabricación?

Jonny Anderson Moncada Avila
Se unió el 15/01/2024
Pinterest
Telegram
Linkedin
Whatsapp

3 Respuestas

0
Cargando...

Hola Jonny,

A continuación tienes dos guías detalladas para que puedas resolver el redondeo de los 1,88 m en MIGO, de forma que cualquier usuario pueda seguirlas paso a paso.

1. Ajustes de configuración (sin código ABAP)

1.1. Validar decimales de la unidad “M” en CUNI

  1. Ejecuta la transacción CUNI.
  2. En “Unidad de medida” ingresa M y pulsa Enter.
  3. Revisa el campo “Decimales”:
  4. Debe estar al menos en 3 (para permitir 1,880).
  5. Si es menor, edita y pon 3, guarda.

1.2. Asegurar unidad alternativa en el material (MM02)

  1. Abre MM02 – Material → Vista “Unidades de medida adicionales”.
  2. Confirma que exista la línea:
  3. Unid. Alter.: M
  4. Equivalencia: 1 UN = 3 M
  5. Decimales: al menos 3
  6. Guarda cambios.

1.3. Revisar Lista de Materiales (CS02)

  1. Abre CS02, ingresa tu Órden de fabricación y material.
  2. En la pestaña Componentes, verifica que:
  3. La UM de cada componente aparezca como M, no “UN”.
  4. Si ves “UN”, edítalo pulsando el lápiz y cámbialo a M, guarda.

1.4. Revisar Hoja de Ruta (CA02)

  1. Abre CA02 con tu número de ruta.
  2. Selecciona la Operación que use el componente en cuestión.
  3. En la sección Componentes:
  4. Confirma que en la columna UM figure M.
  5. Si figura UN, selecciónalo y en la parte inferior cambia a M, guarda.
  6. Sal de CA02 y refresca CS02 para comprobar que ahora la hoja de ruta hereda correctamente la UM “M”.

1.5. Probar la salida en MIGO

  1. Abre MIGO – Tipo “201: Salida de mercancía”.
  2. Ingresa tu Órden de fabricación y pulsa Enter.
  3. En la línea del componente, verifica que la columna Cantidad (M) permita introducir 1,880.
  4. Si ya aparece 1,880, graba el documento y comprueba el material en inventario.

2. Solución técnica con BADI / Exit

Si tras lo anterior el sistema aún redondea, implementa esta BADI para forzar la cantidad exacta:

2.1. Creación de la implementación de la BADI

MB_MIGO_BADI

  1. Ejecuta SE18, entra a la definición MB_MIGO_BADI.
  2. Pulsa Implementaciones → Crear.
  3. Asigna un nombre (por ejemplo, Z_MB_MIGO_DECIMALES) y guarda en tu paquete de desarrollo.

2.2. Código en el método

LINE_MODIFY

  1. Abre tu implementación en SE19 y edita el método LINE_MODIFY.
  2. Añade esta lógica (ajústala según tu requerimiento):
METHOD if_ex_mb_migo_badi~line_modify.
DATA(lv_order ) = is_goitem-vbeln. "Nº orden fabricación
DATA(lv_pos ) = is_goitem-posnr. "Posición componente
DATA(lv_exact ) TYPE mseg-menge.
DATA(ls_afpo ) TYPE afpo.

"-- Leer cantidad programada en la orden de fabricación
SELECT SINGLE aufnr menge meins
INTO CORRESPONDING FIELDS OF ls_afpo
FROM afpo
WHERE aufnr = lv_order
AND posnr = lv_pos.

IF sy-subrc = 0
AND ls_afpo-meins = 'M'. "Solo si la UM en AFPO es metros
lv_exact = ls_afpo-menge.
is_goitem-menge = lv_exact.
ENDIF.
ENDMETHOD.


  1. Notas:
  2. is_goitem contiene la línea de mercancía antes de la validación.
  3. MSEG-MENGE es el campo que lee SAP para la cantidad de salida.
  4. Ajusta la tabla de consulta si utilizas estructuras Z o una lógica distinta.

2.3. Alternativa con User-Exit

Si prefieres un exit en lugar de BADI:

  1. En SMOD busca el proyecto que contenga el exit EXIT_SAPMM07M_001.
  2. En CMOD, crea/añade este módulo al proyecto y añade código idéntico al anterior dentro de su INCLUDE correspondiente.

2.4. Pruebas

  1. Registra tu implementación en el sistema de Calidad.
  2. Repite el paso 1.5 en MIGO.
  3. Verifica en el documento de material (MB51) que la salida figure con 1,880 M exactos.

Resumen de decisiones:

  1. Sin código: asegúrate en CUNI, MM02, CS02 y CA02 de que la unidad “M” tenga decimales y esté correctamente asignada.
  2. Con código: usa MB_MIGO_BADI→LINE_MODIFY (o EXIT_SAPMM07M_001) para sobreescribir la cantidad con el valor exacto de la orden.

Quedo atento si necesitas más detalles o apoyo con el transporte de tu Quick Fix a producción.

¡Éxitos!

Luciano


Respondido el 26/04/2025
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Luciano, gracias por el interés en querer ayudarme. seguí todas tus recomendaciones y tengo dos solicitudes ya que el problema no se solucionó y el sistema sigue redondeando automáticamente y puede que como tu lo indiques haya una validación o configuración adicional que lo esté forzando.

1. Por favor explícame más a fondo como en la hoja de ruta (CA02) configuro la relación de unidad de medida alternativa del componente programado. lo comprendo en la lista de materiales pero no en la hoja de ruta de operaciones.

2. Por favor explícame como implementar una BADI como MB_MIGO_BADI o un exit para modificar el comportamiento estándar y permitir que MIGO tome la cantidad exacta en metros sin redondear.

Gracias.

Respondido el 18/04/2025
Jonny Anderson Moncada Avila
Se unió el 15/01/2024
0
Cargando...

Hola Jonny,

Gracias por compartir tu caso, es un problema bastante común cuando se trabaja con unidades alternativas en SAP.

✅ Por lo que describes, el inconveniente está en que el sistema redondea la cantidad a la unidad base (UN) en lugar de respetar los 1.88 metros que estaban programados en la orden de fabricación. Para solucionarlo, te recomiendo revisar lo siguiente:

🔧 1. Verifica la configuración de la unidad de medida alternativa en la MM02

  1. Asegúrate de que la unidad "M" (metros) permite cantidades decimales. Esto lo puedes validar en la transacción CUNI, buscando la unidad y viendo cuántos decimales están permitidos.
  2. En la vista de unidades adicionales del material (MM02), asegúrate que no haya configuraciones que obliguen al redondeo.

🔧 2. Revisa la conversión en la lista de materiales y en la hoja de ruta

  1. En la lista de materiales (CS02) y en la hoja de ruta (CA02), asegúrate de estar utilizando "metros" como unidad y no "UN". Si está en UN, el sistema aplicará el redondeo según la equivalencia 1UN = 3 metros.

🔧 3. Entrada manual en MIGO

  1. Cuando haces la salida de mercancía, intenta ingresar manualmente los 1.88 metros y verifica si el sistema lo permite.
  2. Si el sistema sigue redondeando automáticamente, puede que haya una validación o configuración adicional que lo esté forzando.

🧩 4. Alternativa técnica (si lo anterior no funciona)

  1. Se puede implementar una BADI como MB_MIGO_BADI o un exit para modificar el comportamiento estándar y permitir que MIGO tome la cantidad exacta en metros sin redondear.

📌 En resumen: el sistema siempre tratará de llevar la transacción a la unidad base a menos que esté correctamente configurado para aceptar y trabajar con la unidad alternativa con decimales.

Si gustas, te puedo apoyar con un ejemplo técnico para controlar esto mediante una BADI.

¡Saludos!

Respondido el 14/04/2025
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
1 Comentarios Agregar
Luciano, gracias por el interés en querer ayudarme. seguí todas tus recomendaciones y tengo dos solicitudes ya que el problema no se solucionó y el sistema sigue redondeando automáticamente y puede que como tu lo indiques haya una validación o configuración adicional que lo esté forzando. 1. Por favor explícame más a fondo como en la hoja de ruta (CA02) configuro la relación de unidad de medida alternativa del componente programado. lo comprendo en la lista de materiales pero no en la hoja de ruta de operaciones. 2. Por favor explícame como implementar una BADI como MB_MIGO_BADI o un exit para modificar el comportamiento estándar y permitir que MIGO tome la cantidad exacta en metros sin redondear. Gracias. - Jonny Anderson Moncada Avila

contacto@primeconsultor.com

+1 (305) 285-8622

© 2025 Todos los derechos reservados.

Desarrollado por Prime Consultor

¡Hola! Soy Diana, asesora académica de Prime Consultor, indícame en que Academia SAP estás interesado, saludos!
Hola ¿Buscas Academias SAP?