Detener comprar si hay mucho stock de inventario

Buenos días, me llamo Erick y quisiera solicitar apoyo con una consulta.

Quiero detener pedidos de compra si hay mucho inventario, es decir no permitir que se generen SOLPED y mucho menos pedidos si tengo mucho stock de un materiales en especifico.

En la configuración del material en las pestañas de planificación de necesidad observo que se ponen stock maximo para que se generan SolPed, pero lo que quiero es lo contrario, que no se generen.

Agradesco la ayuda al tema, saludos.

:heavy_heart_exclamation: Importante :exclamation: La siguiente respuesta es generada por nuestro Robot de la comunidad de Consultoria-SAP.com denominado “CSAPBOT” usando tecnología de inteligencia artificial. Por lo tanto, puede haber datos incorrectos. No podemos garantizar que la información sea 100% correcta, solo consultores SAP profesionales podrían verificar la información. Muchos consultores leen nuestros foros de Ayuda SAP y lamentablemente pocos ayudan respondiendo y confirmando la información.

Si deseas aportar tus ideas para mejorar nuestros sistemas, te esperamos en este debate.


¡Hola Erick, buenos días!

Entiendo que necesitas bloquear la generación de solicitudes de pedido (SOLPED) y pedidos de compra cuando tu inventario de un material específico supera un cierto límite. Este tipo de control se puede implementar de varias maneras en SAP, dependiendo de la configuración y de los módulos con los que estés trabajando, especialmente en MM (Gestión de Materiales) y PP (Planificación de Producción). A continuación, te comparto algunas posibles soluciones y configuraciones que pueden ayudarte:

1. Uso del Stock Máximo en la Planificación

Aunque mencionas que en la pestaña de planificación de necesidades has visto la posibilidad de configurar un stock máximo, ese parámetro generalmente influye en la creación de órdenes de reaprovisionamiento cuando el stock baja de cierto nivel. Para lo que tú necesitas, que es detener la generación de SOLPED, esta configuración no es suficiente por sí sola.

2. Estrategia de Planificación con Punto de Pedido

Una opción sería ajustar la estrategia de planificación del material. Si trabajas con un método de planificación basado en consumo, como el reorden automático (MRP tipo VB), podrías establecer un “Stock Máximo” y ajustar las configuraciones para que el sistema no genere propuestas de reabastecimiento automáticamente cuando el stock esté por encima de ese nivel. Sin embargo, esto no bloquearía directamente la creación de SOLPED manuales o automáticas si alguien las genera desde otro proceso.

3. BADI/EXIT para Bloqueo de SOLPED

Una opción más avanzada sería implementar un desarrollo ABAP utilizando una BADI (Business Add-In) o un User Exit que valide el stock disponible antes de permitir la creación de una SOLPED. Por ejemplo, podrías utilizar la BADI ME_PROCESS_REQ_CUST que se activa durante la creación de solicitudes de pedido para insertar una lógica que verifique el stock actual. Si el stock excede el límite definido, podrías generar un mensaje de error para evitar la creación de la SOLPED. Esto requeriría la colaboración de un consultor ABAP.

Ejemplo de código para BADI ME_PROCESS_REQ_CUST

A continuación, un ejemplo básico de cómo podría ser el código en un EXIT para verificar el stock antes de permitir la creación de una SOLPED:

METHOD if_ex_me_process_req_cust~process_item.
  DATA: lv_stock_actual TYPE mard-labst,
        lv_stock_maximo TYPE marc-lmaks.

  " Obtener el stock actual del material
  SELECT SINGLE labst INTO lv_stock_actual
  FROM mard
  WHERE matnr = im_req_item->get_data( )->matnr
    AND werks = im_req_item->get_data( )->werks.

  " Obtener el stock máximo del material desde la tabla MARC
  SELECT SINGLE lmaks INTO lv_stock_maximo
  FROM marc
  WHERE matnr = im_req_item->get_data( )->matnr
    AND werks = im_req_item->get_data( )->werks.

  " Si el stock actual es mayor o igual al stock máximo, detener la creación de la SOLPED
  IF lv_stock_actual >= lv_stock_maximo.
    MESSAGE 'El stock actual supera el límite máximo permitido. No es posible crear la solicitud de pedido.' TYPE 'E'.
  ENDIF.
ENDMETHOD.

ADVERTENCIA: Si decides implementar una solución como esta, asegúrate de probarla a fondo en un entorno de pruebas antes de moverla a productivo. Un error en la lógica podría causar que no se puedan generar solicitudes de pedido en situaciones críticas.

4. Control de Stock mediante Workflow y Validaciones en MM

Otra forma de controlar la creación de SOLPED sería mediante la configuración de un Workflow que verifique las condiciones del inventario antes de permitir que la SOLPED sea procesada. Esta opción es más flexible y puede ser configurada por un consultor funcional de MM, lo que podría evitar el desarrollo en ABAP. Sin embargo, requiere un conocimiento profundo de la configuración de Workflows en SAP.

Resumen Consultoria-SAP

Como puedes ver, hay varias maneras de evitar la creación de SOLPED y pedidos de compra cuando el stock supera un determinado nivel. Desde configuraciones básicas en la planificación de necesidades, hasta soluciones más avanzadas como BADIs o Workflows. La elección de la solución depende del grado de automatización y control que necesites y de los recursos disponibles en tu equipo. Si no tienes experiencia con desarrollos ABAP o Workflows, te sugeriría empezar con las configuraciones de planificación y, si es necesario, buscar apoyo de un desarrollador para la implementación de BADIs.

Para cualquier consulta adicional, o si necesitas una revisión de código más detallada, ¡estamos aquí para ayudarte en Consultoria-SAP.com!