Skip to content

Planificación de materiales

En SAP MM, la planificacion de materiales (MRP) es el proceso por el cual se determinan de forma automática las necesidades de reaprovisionamiento de materiales.

Parámetros más relevantes

Nombre del ParámetroParámetroDescripciónPropósito
MRP TypeMRP TipoDetermina el método de planificación y reabastecimiento del materialControla si el material se reabastece mediante producción o compra, y cómo se planifica.
MRP GroupGrupo de MRPConfiguración que agrupa materiales con criterios de planificación similaresFacilita la gestión y configuración de materiales que deben ser planificados de manera similar.
MRP ControllerControlador de MRPResponsable de la planificación de materiales dentro de un área específicaAsigna el responsable de planificación para una serie de materiales, facilitando la organización y responsabilidad.
Lot SizeTipo de LoteDefine cómo se calculan los tamaños de lote en los pedidos de materialOptimiza la cantidad de material pedido, minimizando el costo o maximizando la eficiencia de fabricación.
Minimum Stock LevelNivel de Stock MínimoCantidad mínima de inventario que debe mantenerse en todo momentoPreviene la ruptura de stock, asegurando que siempre haya material disponible para la producción o venta.
Reorder PointPunto de PedidoNivel de inventario que activa un nuevo pedido de reabastecimientoAutomatiza el proceso de pedido para asegurar un flujo constante de materiales sin interrupciones de producción.
Replenishment QuantityCantidad de ReaprovisionamientoCantidad estándar a ordenar cada vez que se alcanza el punto de pedidoSimplifica el proceso de pedido al establecer una cantidad predeterminada para reordenar.
Planning HorizonHorizonte de PlanificaciónPeriodo futuro para el cual se realiza la planificación de materialDefine el rango temporal para la planificación de la producción y la compra, asegurando visibilidad a largo plazo.
Planning CyclePeriodicidadFrecuencia con la que se ejecuta la planificación MRPDetermina cuán a menudo se actualiza y recalcula la planificación de necesidades de materiales.
Safety StockStock de SeguridadCantidad adicional de inventario mantenida para mitigar el riesgo de ruptura de stockProporciona un colchón contra fluctuaciones en la demanda o retrasos en el suministro, asegurando operaciones continuas.
Lead TimePlazo de EntregaTiempo requerido desde el pedido hasta la recepción del materialImportante para calcular cuándo ordenar materiales para cumplir con las fechas de producción sin mantener inventario excesivo.
Forecasting ModelModelo de PronósticoModelo estadístico utilizado para predecir la demanda futura basada en datos históricosPermite una planificación más precisa al estimar las necesidades futuras de materiales basadas en tendencias y patrones pasados.
Scrap PercentagePorcentaje de DesperdicioPorcentaje estimado de material que se desperdiciará durante la producciónAjusta la cantidad de material necesario para pedidos, considerando la pérdida esperada durante la fabricación.

Código Python para Modificar un Parámetro de Planificación en SAP

Este script en Python utiliza win32com para interactuar con SAP GUI. Automatiza el proceso de modificación de un parámetro de planificación de un material mediante la transacción MD02.

Requisitos

  • Python 3
  • pywin32 instalado: puede instalarse con pip install pywin32
  • SAP GUI instalado y configurado en el sistema
  • Scripting de GUI habilitado en el lado del cliente y del servidor en SAP

Código

python
import win32com.client
import time

def main():
    try:
        # Conectar con SAP GUI
        SapGuiAuto = win32com.client.GetObject("SAPGUI")
        application = SapGuiAuto.GetScriptingEngine
        connection = application.Children(0)
        session = connection.Children(0)

        # Acceder a la transacción MD02 para planificar un material
        session.findById("wnd[0]/tbar[0]/okcd").text = "/nmd02"
        session.findById("wnd[0]").sendVKey(0)
        time.sleep(1)  # Dar tiempo para que cargue la transacción

        # Ingresar el número de material que deseamos planificar
        session.findById("wnd[0]/usr/ctxtDISPO-PLNUM").text = "000000001000"
        session.findById("wnd[0]").sendVKey(0)

        # Navegar a la pestaña de parámetros donde se realiza la modificación
        session.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\\01").select()
        time.sleep(0.5)  # Esperar a que la GUI responda

        # Modificar el campo de parámetro de planificación
        session.findById("wnd[0]/usr/subSUBSCREEN:SAPLMDR1:1105/ctxtMDPA-PARAMETER").text = "Nuevo valor del parámetro"
        session.findById("wnd[0]").sendVKey(0)

        # Guardar los cambios
        session.findById("wnd[0]/tbar[0]/btn[11]").press()  # Botón guardar

        print("Modificación de parámetro completada con éxito.")

    except Exception as e:
        print(f"Error: {str(e)}")

    finally:
        # Cerrar conexión
        if session: session = None
        if connection: connection = None
        if application: application = None
        if SapGuiAuto: SapGuiAuto = None

if __name__ == "__main__":
    main()