Descripción general de la llamada al motor de reabastecimiento

En esta sección se describe el proceso de llamada al motor de reabastecimiento mediante una macro para generar órdenes planificadas para una combinación de artículo y ubicación a partir del período de inicio especificado y hasta un horizonte especificado.

Requisitos previos:

El usuario debe tener acceso a la macro, así como al motor de reabastecimiento definido para el ciclo actual. De lo contrario, la macro mostrará este error en la ejecución:

El usuario {1} no tiene acceso al motor de reabastecimiento {0}.

Las reglas de seguridad de datos se aplican al usuario actual que ejecuta la macro al determinar el artículo y los elementos de ubicación que van a pasar al motor de reabastecimiento para realizar el cálculo. Por ejemplo:

  • CallReplenishmentEngine ("Marca A", "EE. UU.", "", "")
  • Si la seguridad de datos del usuario actual no permite al usuario ver la marca A ni los elementos base vinculados a MARCA A en la jerarquía de artículos, los elementos seleccionados no se pasarán al motor.
  • Si el usuario puede acceder a un subconjunto de elementos base vinculados a la marca A, las programaciones solo se calculan para estos artículos.
  • Si la seguridad de datos del usuario no permite al usuario ver EE. UU. o cualquier ubicación base vinculada a EE. UU. en la jerarquía de ubicación, los datos seleccionados no se pasarán al motor.
  • Si el usuario puede acceder a un subconjunto de ubicaciones base vinculadas a EE. UU. en la jerarquía de ubicación, las programaciones solo se calculan para estas ubicaciones.

Llamada al motor de reabastecimiento

La secuencia básica para llamar al motor de reabastecimiento mediante el comando de macro CallReplenishmentEngine es la siguiente:

  • Determinar el motor de reabastecimiento definido para el ciclo actual.
  • Determinar los artículos y la ubicación para la programación.
  • Procesar cualquier otro parámetro de macro

Para llamar al motor de reabastecimiento:

  1. Seleccione Configuración > Ciclo > Macros. Aparece la página Macro.
  2. Cree un nuevo comando de macro CallReplenishmentEngine. Consulte Creación de macros.
  3. Derive las medidas y atributos de mapeo de asignación de suministro para la configuración del motor.
    Nota: Se requieren todos los mapeos de asignación de suministro y se deben validar para garantizar que se seleccionen los atributos correctos.
  4. Recupere la regla de programación para todas las combinaciones de artículo y ubicación que se deben programar usando las asignaciones de medidas de artículo y ubicación del motor de reabastecimiento. El motor de reabastecimiento procesa todas las combinaciones de artículo y ubicación en la llamada de macro donde se muestra la regla de programación.
  5. Recupere el id. de secuencia de todas las combinaciones de artículo y ubicación para la programación. Las combinaciones de artículo y ubicación se secuencian y se pasan al motor en el orden ascendente del id. de secuencia. Este proceso garantiza que se procesen todas las combinaciones de artículo y ubicación para permitir el pase de las necesidades más recientes a través de la red de suministro. Por ejemplo, las órdenes planificadas de un almacén generadas por el motor se pasan como necesidades a la instalación de fabricación.
    Nota: 
    • Según el id. de secuencia, la preparación y la secuencia del artículo/ubicación individual llama al motor de reabastecimiento.
    • Si no se define ningún id. de secuencia, las combinaciones de artículo y ubicación se secuencian en consecuencia. Puede obtener resultados inesperados si la combinación de artículo y ubicación conectada no está secuenciada en un orden.
  6. Validar el método de origen predeterminado del artículo y ubicación actuales:
    • Si el valor del método de origen predeterminado asignado no es 1, 2 o 3, no se tiene en cuenta la combinación de artículo y ubicación. Este mensaje de error se escribe en el registro de descartes del motor:
      El método de origen {1} no es válido. El valor debe ser 1, 2 o 3.
  7. Validar el incremento del artículo y ubicación actuales:
    • Este parámetro se asigna a una asignación de medida vinculada al método de origen predeterminado o asignación de suministro correspondiente:
      • 1 (transferencia) = Transferencia salida asignación de medida
      • 2 (compra) = Asignación de medida de compra
      • 3 (producción, fabricación) = Asignación de medida de proceso
      Nota: Si el incremento asignado es nulo o </= 0, no se tiene en cuenta la combinación de artículo y ubicación y este mensaje de error se escribe en el registro de descartes del motor:
      El incremento {1} no es válido. El valor debe ser > 0.
  8. Validar el id. de calendario de recepción del artículo y ubicación actuales. Los posibles escenarios:
    • Si el id. asignado no está definido para un mapeo de calendario de motor del motor actual, no se tiene en cuenta la combinación de artículo y ubicación y este mensaje de error se escribe en el registro de descartes del motor:
      No se encuentra el id. del calendario de recepción {1}.
    • Si no se asigna ningún valor con la medida de id. de calendario de recepción, se utiliza el calendario predeterminado de la asignación de calendario del motor actual.
    • Si no se define el calendario predeterminado, no se tiene en cuenta la combinación de artículo y ubicación y este mensaje de error se escribe en el registro de descartes del proceso del motor:
      No se encuentra el id. del calendario de recepción {1}.
  9. Validar la regla de programación del artículo y ubicación actuales. Para la regla 1 o 2:
    1. Conseguir procesos de producción:
      1. Cree una matriz de procesos de producción en la que el artículo sea el factor de salida junto con la ruta o el id. del proceso:
        • Compruebe si existe un valor distinto de cero para el factor de salida asignado Y el valor Formula_measure donde Formula_item = al artículo actual y Formula_location = a la ubicación actual.
        • Si se encuentra una asignación para cada proceso de salida en la matriz, compruebe el valor TUPLE, el valor distinto de cero, el valor Process_measure donde Process_location = a la ubicación actual y Process_routing = a la ruta de salida actual.
        • Si no se encuentra ninguna asignación, elimine el proceso de salida de la matriz.
      2. Cree una matriz de procesos de producción donde el artículo sea el factor de entrada junto con la ruta o el id. del proceso:
        • Compruebe si existe un valor distinto de cero para el factor de entrada asignado Y el valor Formula_measure donde Formula_item = al artículo actual y Formula_location = a la ubicación actual.
        • Si se encuentra una asignación para cada proceso de entrada en la matriz, compruebe el valor TUPLE, el valor distinto de cero, el valor Process_measure donde Process_location = a la ubicación actual y Process_routing = a la ruta de entrada actual.
        • Si no se encuentra ninguna asignación, elimine el proceso de entrada de la matriz.
    2. Elimine órdenes planificadas existentes:
      • Elimine los registros de datos de orden para las definiciones asignadas a la asignación de orden del motor para los tipos "planificados":
        • Elimine órdenes de transferencia planificadas donde TransferIn_Item = al artículo actual y TransferIn_Destination = a la ruta de flujo de entrada actual.
        • Elimine órdenes de compra planificadas donde Purchases_item = Current_item y Purchases_location = a la ubicación actual.
      • Compruebe si existen procesos de salida para el artículo y ubicación actuales. Consulte Paso 9. a.
      • Para cada proceso del recuento de proceso de salida:
        • Elimine órdenes de producción planificada donde Process_location = a la ubicación actual y Process_routing = a la ruta Outflow_process actual.
        • Si la compensación de inicio de la orden > 0, elimine los registros para los que la fecha de entrega del registro de datos >= la fecha de inicio del período de planificación actual + la compensación de inicio de la orden (días). De lo contrario, elimine las órdenes asignadas para todas las fechas.
    3. Obtenga los elementos de orden predeterminados para el método de origen predeterminado. Los escenarios:
      • Método de origen = 1 (transferencia):
        • Compruebe si existe un valor TUPLE, un valor distinto de cero para TransferIn_measure donde TransferIn_Item = al artículo actual, TransferIn_Destination = a la ubicación actual y Transfer_Source = al valor TransferIn_Source.
        • Compruebe si existe un valor TUPLE, un valor distinto de cero para TransferOut_measure donde TransferOut_Item = al artículo actual, TransferOut_Destination = a la ubicación actual y TransferOut_Source = a la transferencia de origen.
        • Order_item = al elemento de artículo TransferIn_TUPLE, Order_destination = al elemento de ubicación TransferIn_TUPLE, Order_source = al elemento de ubicación TransferOut_TUPLE.
      • Método de origen = 2 (compra):
        • Compruebe si existe un valor TUPLE, un valor distinto de cero para Purchase_measure donde Purchase_item = al artículo actual, Purchase_location = a la ubicación actual, Order_item = al elemento de artículo Purchases_TUPLE, Order_destination = al elemento de ubicación Purchases_TUPLE, Order_source = al elemento de ubicación Purchases_TUPLE.
      • Método de origen = 3 (producción):
        • Donde el recuento del proceso de flujo de salida > 0, Order_Item = ICONST, Order_destination = al elemento de ubicación del primer proceso de salida, Order_Source = al elemento de ubicación del primer proceso de salida. Consulte Paso 9.c.
        • Si no se define el valor TUPLE predeterminado para el método de origen predeterminado, no se tiene en cuenta la combinación de artículo y ubicación y este error se escribe en el registro de descartes del proceso del motor:
          No se encuentra la ubicación de origen para el método de origen {1}.
    Nota: 
    • Para regla = 1, llame al motor en función de la lógica de programación estándar para la combinación de artículo y ubicación.
    • Para regla = 2, llame al motor en función de la lógica de programación ROP para la combinación de artículo y ubicación.
    • Si la regla es distinta de 0, 1 o 2, la combinación de artículo y ubicación se omite y este error se registra en el registro de descartes del proceso del motor:
      La regla de programación {1} no es válida. El valor debe ser 0, 1 o 2. 
  10. Recupere los resultados necesarios del conjunto de resultados del motor de reabastecimiento según la asignación de orden del motor de reabastecimiento y aplicar los resultados a los valores de la orden (datos transaccionales):
    • Los valores de escenario correspondientes se sincronizan para las asignaciones de órdenes planificadas.
    • Los resultados de motor basados en los datos de orden se escriben en períodos para el horizonte futuro del período de ciclo (según las fechas de orden correspondientes).
    • Si el motor al que accede el usuario tiene reglas de seguridad de datos en la dimensión de período que restringen el acceso a todo el horizonte futuro, los resultados se guardan solo para las órdenes permitidas.
  11. Recupere los resultados necesarios del conjunto de resultados del motor de reabastecimiento y aplique los resultados a los valores de escenario (para otros resultados de salida de ubicación/artículo asignados) en función de los datos de asignación de medida del motor de reabastecimiento. Los resultados del motor basados en las medidas asignadas se escriben como un valor estático en PCONST.
  12. El resultado de la llamada al motor de reabastecimiento son datos de salida al administrador del trabajo y al registro de auditoría donde:
    • Se adjunta un registro de descartes al mensaje de registro de auditoría, si la llamada del motor de reabastecimiento genera errores.
    • El procesamiento de combinaciones válidas no se impide en los errores individuales de artículo y ubicación.
    • Las combinaciones de artículo y ubicación no válidas de la preparación de la programación o devueltas de la lógica de la regla del motor con un código de error se escriben en el registro de descartes con un mensaje que detalla el error.