Vue globale de l'appel du moteur de réapprovisionnement

Cette section décrit le processus d'appel du moteur de réapprovisionnement à l'aide d'une macro, afin de générer des ordres planifiés pour une combinaison d'article et d'emplacement, de la période de début indiquée jusqu'à un horizon donné.

Conditions préalables :

L'utilisateur doit avoir accès à la macro, ainsi qu'au moteur de réapprovisionnement défini pour le cycle courant. Dans le cas contraire, la macro affiche l'erreur suivante à l'exécution :

Le moteur de réapprovisionnement {0} n'est pas accessible à l'utilisateur {1}

Les règles de sécurité des données sont applicables à l'utilisateur exécutant actuellement la macro, lors de la détermination de l'article et des éléments d'emplacement à transmettre au moteur de réapprovisionnement pour le calcul. Par exemple :

  • CallReplenishmentEngine ("Marque A", "US", "", "")
  • Si la sécurité des données de l'utilisateur actuel n'autorise pas celui-ci à voir la Marque A ou les articles de base liés à la Marque A dans la hiérarchie d'article, aucune sélection n'est transmise au moteur.
  • Si l'utilisateur a accès à un sous-ensemble d'articles de base liés à la Marque A, les prévisions ne sont calculées que pour ces articles.
  • Si la sécurité des données de l'utilisateur n'autorise pas celui-ci à voir l'emplacement US ou les emplacements de base associés à US dans la hiérarchie d'emplacement, les données sélectionnées ne sont pas transmises au moteur.
  • Si l'utilisateur a accès à un sous-ensemble d'emplacements de base liés à US dans la hiérarchie d'emplacement, les prévisions ne sont calculées que pour ces emplacements.

Appel du moteur de réapprovisionnement

La séquence élémentaire d'appel du moteur de réapprovisionnement utilisant la commande macro CallReplenishmentEngine est la suivante :

  • Déterminer le moteur de réapprovisionnement défini pour le cycle en cours.
  • Déterminer les articles et l'emplacement pour la programmation.
  • Traiter tout autre paramètre de macro

Pour appeler le moteur de réapprovisionnement :

  1. Sélectionnez Configuration > Cycle > Macros. La page Macro s'affiche.
  2. Créer une commande macro CallEventsEngine. Reportez-vous à la rubrique Création de macros
  3. Déduire les mesures de mappage d'allocation d'approvisionnement et les attributs pour la configuration du moteur.
    Remarque : Tous les mappages de répartition de l'approvisionnement sont requis et doivent être validés pour garantir la sélection des attributs corrects.
  4. Extraire la règle de programme pour toutes les combinaisons d'articles et d'emplacements qui doivent être programmées à l'aide des mappages de mesure d'article et d'emplacement du moteur de réapprovisionnement. Le moteur de réapprovisionnement traite toutes les combinaisons d'article et d'emplacement figurant dans l'appel de macro où la règle de programme est affichée.
  5. Extraire l'ID Séquence pour toutes les combinaisons d'articles et d'emplacements à des fins de programmation. Les combinaisons d'articles et d'emplacements sont séquencées et transmises au moteur dans l'ordre croissant de l'ID Séquence. Ce processus garantit que toutes les combinaisons d'articles et d'emplacements sont traitées pour permettre la transmission des besoins les plus récents via le réseau d'approvisionnement. Par exemple, les ordres planifiés d'un magasin qui sont générés par le moteur sont transmis en tant que besoins au site de production.
    Remarque : 
    • Selon l'ID Séquence, préparer et séquencer les appels d'articles et d'emplacements individuels à adresser au moteur de réapprovisionnement.
    • Si aucune ID Séquence n'est défini, les combinaisons article/emplacement sont séquencées en conséquence. Cela peut se traduire par des résultats incorrects si la combinaison d'article et d'emplacement connectée n'est pas dans un ordre donné.
  6. Valider la méthode source par défaut de l'article et de l'emplacement courants :
    • Si la valeur de méthode source par défaut mappée n'est pas 1, 2 ou 3, la combinaison article/emplacement n'est pas prise en compte. Le message d'erreur suivant est consigné dans le journal des rejets du moteur :
      La méthode source {1} n'est pas valide. La valeur doit être 1, 2 ou 3.
  7. Valider l'incrément de l'article et de l'emplacement courants :
    • Ce paramètre est mis en correspondance avec un mappage de mesure lié à l'allocation d'approvisionnement correspondante ou à la méthode source par défaut :
      • 1 (Transfert) = Mappage de mesure de transfert sortant
      • 2 (Achat) = Mappage de mesure d'achat
      • 3 (Production, Fabrication) = Mappage de mesure du processus
      Remarque : Si l'incrément mappé est nul ou </ = 0, la combinaison article/emplacement n'est pas prise en compte et le message d'erreur suivant est consigné dans le journal des rejets du moteur :
      L'incrément de {1} n'est pas valide. La valeur doit être > 0.
  8. Valider l'ID calendrier de réception de l'article et de l'emplacement courants. Les scénarios possibles sont les suivants :
    • Si l'ID mappé n'est pas défini pour le mappage de calendrier du moteur courant, la combinaison article/emplacement n'est pas prise en compte et le message d'erreur suivant est consigné dans le journal des rejets du moteur :
      ID calendrier réception {1} introuvable.
    • Si aucune valeur n'est mappée avec la mesure ID calendrier réception, le calendrier par défaut du mappage de calendrier de moteur en cours est utilisé.
    • Si le calendrier par défaut n'est pas défini, la combinaison article/emplacement n'est pas prise en compte et le message d'erreur suivant est consigné dans le journal des rejets de processus du moteur :
      ID calendrier réception {1} introuvable.
  9. Valider la règle de programme de l'article et de l'emplacement courants. Pour la règle 1 ou 2 :
    1. Obtenir les processus de production :
      1. Créer un tableau de processus de production où l'article est le facteur de sortie ainsi que l'ID routage ou processus :
        • Vérifier qu''il existe une valeur non nulle pour le facteur de sortie ET que Mesure_formule où Article_formule = article courant et Emplacement_formule = emplacement courant.
        • Si une allocation est trouvée pour chaque processus sortant du tableau, vérifier qu'il existe un TUPLE, une valeur non nulle, pour Mesure_processus où Emplacement_processus = emplacement courant, Routage_processus = routage de sortie courant.
        • Si aucune allocation n'est trouvée, supprimer le processus de sortie du tableau.
      2. Créer un tableau de processus de production où l'article est le facteur d'entrée, ainsi que l'ID routage ou Processus :
        • Vérifier qu'il existe une valeur non nulle pour le facteur d'entrée mappé ET une Mesure_formule où Article_formule = article courant et Emplacement_ formule = emplacement courant.
        • Si une allocation est trouvée pour chaque processus d'entrée du tableau, vérifier qu'il existe un TUPLE, une valeur non nulle, pour Mesure_processus où Emplacement_processus = emplacement courant, Routage_processus = routage d'entrée courant.
        • Si aucune allocation n'est trouvée, supprimer le processus d'entrée du tableau.
    2. Supprimer les ordres planifiés existants :
      • Supprimer les enregistrements de données de commande pour les définitions mises en correspondance avec le mappage de commande du moteur relatives aux types « Planifié » :
        • Supprimer les ordres de transfert planifiés pour lesquels Article_TransfertEntrant = article courant et Destination_TransfertEntrant = routage d'entrée courant.
        • Supprimer les commandes fournisseur planifiées où Achats_article = Article_courant et Emplacement_achats = emplacement courant.
      • Vérifier si des processus de sortie existent pour l'article et l'emplacement courants. Reportez-vous à l'étape 9. a.
      • Pour chaque processus du nombre de processus de sortie :
        • Supprimez les ordres de production planifiés pour lesquels Emplacement_processus = emplacement courant et Routage_processus = routage processus_sortie courant.
        • Si Décalage de lancement de commande > 0, supprimer les enregistrements pour lesquels Date de livraison de l'enregistrement de données >= Date de début de la période de planification courante + Décalage de lancement de commande (jours). Sinon, supprimer les ordres mappés pour toutes les dates.
    3. Obtenir les éléments de commande par défaut pour la méthode source par défaut donnée. Scénarios :
      • Méthode source = 1 (transfert) :
        • Vérifier qu'il existe un TUPLE, une valeur non nulle pour Mesure_TransfertEntrant où Article_TransfertEntrant = article courant, Destination_TransfertEntrant = emplacement courant et Source_Transfert = valeur Source_TransfertEntrant.
        • Vérifier qu'il existe un TUPLE, une valeur non nulle pour Mesure_TransfertSortant où Article_TransfertSortant = article courant, Destination_TransfertSortant = emplacement courant et Source_TransfertSortant = source de transfert.
        • Article de commande = élément d'article TUPLE_TransfertEntrant, Destination_commande = élément d'emplacement TUPLE_TransfertsEntrants, Source_commande = élément d'emplacement TUPLE_TransfertsSortants.
      • Méthode source = 2 (Achat) :
        • Vérifier qu'il existe un TUPLE, une valeur non nulle pour Mesure_achat où Article_achat = article courant, Emplacement_achat = emplacement courant, Article_commande = élément d'article TUPLE_achats, Destination de commande = élément d'emplacement TUPLE_achats, Commande_source = élément d'emplacement TUPLE_achats.
      • Méthode source = 3 (Production) :
        • Où Nombre de processus de sortie > 0, Article_commande = ICONST, Destination_commande = Premier élément d'emplacement du processus de sortie, Source_commande = Premier élément d'emplacement du processus de sortie. Se reporter à l'étape 9.c.
        • Si le TUPLE par défaut n'est pas défini pour la méthode source indiquée, la combinaison article/emplacement n'est pas prise en compte et cette erreur est consignée dans le journal des rejets de processus de moteur :
          Emplacement source introuvable pour la méthode source {1}.
    Remarque : 
    • Pour Règle = 1, appeler le moteur selon la logique de programmation standard pour la combinaison article/emplacement.
    • Pour Règle = 2, appeler le moteur selon la combinaison d'article et d'emplacement de la logique de programmation PDC.
    • Si la règle est différente de 0, 1 ou 2, la combinaison article/emplacement est ignorée et cette erreur est enregistrée dans le journal des rejets de processus du moteur :
      Règle de programme {1} non valide. La valeur doit être 0, 1 ou 2. 
  10. Extrayez les résultats requis de l'ensemble de résultats du moteur de réapprovisionnement, à partir du mappage de commande de moteur, et appliquez les résultats aux valeurs de commande (données transactionnelles) :
    • Les valeurs de scénario correspondantes sont synchronisées pour les mappages de commandes planifiées.
    • Les résultats du moteur reposant sur les données de commande sont enregistrés dans les périodes pour l'horizon futur de période de cycle (selon les dates de commande correspondantes).
    • Si l'utilisateur qui accède au moteur est astreint à des règles de sécurité liées à la dimension de période qui limitent l'accès à l'ensemble de l'horizon futur, les résultats ne sont enregistrés que pour les commandes autorisées.
  11. Extrayez les résultats nécessaires du jeu de résultats du moteur de réapprovisionnement et appliquez-les aux valeurs de scénario (pour les autres résultats de sortie d'article/emplacement mappés), en fonction des données de mappage de mesure du moteur de réapprovisionnement. Les résultats du moteur reposant sur les mesures mappées sont enregistrés sous la forme d'une valeur statique dans PCONST.
  12. Les résultats de l'appel du moteur de réapprovisionnement sont les données en sortie transmises au gestionnaire de tâches et au journal d'audit pour lesquelles :
    • Un journal des rejets est joint au message du journal d'audits si l'appel du moteur de réapprovisionnement s'est conclu avec des erreurs.
    • Les erreurs d'articles et d'emplacements individuels n'empêchent pas le traitement des combinaisons valides.
    • Les combinaisons article/emplacement issues de la préparation du programme qui s'avèrent non valides, ou renvoyées de la logique de règle du moteur avec un code d'erreur, sont consignées dans le journal des rejets, accompagnées d'un message détaillant l'erreur.