DIAPASON 05

Les requêtes de lissage-REB/PLA


      Introduction

      Le lissage consiste à déplacer une partie de la charge dans le cas d’une surcharge ou d’une sous-charge. On peut déplacer cette charge dans le temps, ou sur une autre ressource moins chargée.

      Le lissage est lancé manuellement par l’utilisateur à partir du tableau de bord de charge, et fait appel à des requêtes de type REB/PLA.

      Ces requêtes appellent les listes WfPlaIniDem et WfPlaDepDem : c’est ce qui permet à DIAPASON de catégoriser ces requêtes en PLA !

      Il y a différentes manières de déplacer la charge dans le temps:

      Diagramme sans nom-1671630540169.drawio.png

      Attention, pour utiliser ces requêtes de lissage REB/PLA, il faut utiliser la visualisation standard (en mode simulation) du tableau de bord de charge et pas le tableur du DIAPASON START.

      Dans nos exemples, nous allons travailler sur la gamme suivante:

      • image-20221202-154109.png

      Comment lancer l'action de lissage depuis le tableau de bord de charge ?

      Comme ceci !

      ( extrait de la page Réaliser un lissage depuis le tableau de bord de charge )

      1. On lance l’action de Traçabilité depuis le tableau de bord de charge

      image-20230106-085114.png
      1. Au clic. doit, on sélectionne “Règle de lissage”

      image-20230106-085143.png
      1. Puis, on sélectionne la bonne requête de lissage dans le tableau qui s’affiche

      image-20230106-085246.png

      SI on relance plus tard une autre action de lissage, il faudra de nouveau entrer la règle de lissage, celle-ci n’est pas enregistrée… mais on on le souhaite, on peut la renseigner dans la définition du tableau de bord de charge. A ce moment-là, elle sera toujours séléctionnée !

      1. Une fois la requête sélectionnée, on fait clic droit et “Lissage”

      image-20230106-085327.png
      1. Si la requête de lissage demande des critères, on les rentre à ce moment ! Et le tour et joué ! 🙂

      image-20230106-085423.png

      Principe de la requête de lissage

      Le déroulement du traitement pour les actions de lissage (liste Traçabilité), (liste Historique Simulations) et (liste Détail Historique Simulations) suit le principe suivant :

      1. Exécution requête DIALOG de lissage :

      a. Initialisation critères.

      Les variables critères saisies sont renseignées, avec les variables critères standard complémentaires suivantes :

      Variable

      Description

      SCR.PlaTBoRef 

      Tableau de bord de charge en cours

      SCR.ResGenRef 

      Ressource origine traçabilité

      SCR.PlaUMCRef 

      Unité de mesure de charge origine traçabilité

      SCR.PlaDetCap 

      Détail de capacité origine traçabilité

      SCR.PlaDetCha 

      Détail de charge origine traçabilité

      SCR.PlaLisMod 

      contient « TRA »

      • La liste PlaIniDepDem contenant la liste des articles sélectionnés sur la liste de traçabilité de charge avant le déclenchement de l’action de lissage

      Depuis la liste des actes de simulation, le contexte initial d’exécution de la requête REB est le suivant :

      Les variables critères saisies sont renseignées, avec les variables critères standard complémentaires suivantes :

      Variable

      Description

      SCR.PlaLisMod 

      contient « TRA »

      • La liste PlaIniDepDem est initialisée avec tous les articles de tous les actes de simulation sélectionnés avant le déclenchement de l’action de lissage ; dans ce cas, un même article peut apparaître plusieurs fois dans cette liste (s’il y a eu pour un même article plusieurs actions lors d’un même acte de lissage ou si le même article apparaît dans plusieurs actes de lissages).


      Depuis la liste des détails des actes de simulation, le contexte initial d’exécution de la requête REB est le suivant :

      Les variables critères saisies sont renseignées, avec les variables critères standard complémentaires suivantes :

      Variable

      Description

      SCR.PlaLisMod 

      contient « TRA »

      • La liste PlaIniDepDem est initialisée avec tous les articles de tous les actes de simulation sélectionnés avant le déclenchement de l’action de lissage ; dans ce cas, un même article peut apparaître plusieurs fois dans cette liste (s’il y a eu pour un même article plusieurs actions lors d’un même acte de lissage ou si le même article apparaît dans plusieurs actes de lissages).


      b. Initialisation liste des demandes sélectionnées (liste WfPlaIniDem).

      La requête REB a pour objectif d’initialiser la liste WfPlaDepDem qui contiendra les actions de lissages à effectuer ; dans le cadre du lissage des besoins externes de gestion (articles à la commande non lancés), les actions possibles sont les suivantes :

      Actions possibles

      PlaAction

      PlaDepDatBes

      FabUniPro*

      FabGamCad*

      PlaCyc*

      PlaEtaRef

      PlaEtaDur*

      Modification de la date de fin de fabrication d’un article à la commande.

      DM

      Nouvelle date de la demande.




      Changement de Gamme

      GM


      A initialiser suivant modification souhaitée.



      Modification cycles mise à disposition, expédition, transport.

      DC



      A initialiser suivant modification souhaitée.


      Modification du cycle d’une étape.

      GC




      A initialiser suivant modification souhaitée.

      Modification de la date de fin de fabrication d’un OF.

      DM

      Nouvelle date de la demande.




      Les zones vides sont non utilisées.


      La liste WfPlaDepDem doit être initialisée de la manière suivante :

      Quelle que soit l’action menée, les informations suivantes doivent être initialisées :

      Information

      Description

      GenRefTypeArt 

      Obligatoire. Type d’article (C = pour un article à la commande)

      GenRefArt

      Obligatoire. Référence article (à la commande)

      PlaDepConfCde

      Indique si la commande commerciale liée au besoin de gestion doit faire l’objet d’une gestion de confirmation de commande

      CleTri1 à CleTri5 

      Informations mémorisées dans l’historique des détails de planification pouvant servir de critère de recherche

      Pour un même article, la liste WfPlaDepDem peut contenir plusieurs actions à exécuter, mais une même action pour un même article n’est exécutée qu’une seule fois ; par ailleurs, il ne peut y avoir simultanément dans un même acte une modification de gamme et une modification de cycle.

      c. Exécution règle de lissage DIALOG (but en sortie : initialisation de la liste WfPlaDepDem).

      1. Pour chaque action de lissage définie dans la liste WfPlaDepDem, exécution de l’action (voir récapitulatif ci-dessous) : modification dates, modification cycles, modification gamme, modification cycle étape de gamme.

      2. Mémorisation des actions de simulation dans l’historique des actes de simulation (avec le détail pour chaque besoin subissant une action de lissage).

      3. Exécution de la planification par écart pour chaque ligne de besoin sélectionnée.


      Le déroulement du traitement pour les actions d’annulation d’actes de lissage (depuis liste Historique Simulations) et (depuis liste Détail Historique Simulations) suit le principe suivant :

      1. Pour chaque acte de lissage concerné (dans l’ordre inverse des actes réalisés par rapport aux sélections effectuées) :

        1. Initialisation WfPlaDepDem à partir de l’historique du détail de simulation pour les détails concernés, en prenant pour chaque besoin, l’action sélectionnée et la situation mémorisée dans l’historique avant la réalisation de celle-ci.

        2. Mémorisation des actions de simulation dans l’historique des actes de simulation (avec le détail pour chaque besoin subissant une action de lissage).

        3. Exécution de la planification par écart pour chaque ligne de besoin sélectionnée.

      1. Modification de la date de fin de fabrication d'un article à la commande

      On souhaite par exemple effectuer un lissage en décalant la date de fin de fabrication du 26/01 au 30/01.

      Diagramme sans nom-16730140488901.drawio.png

      Voici un exemple de requête pour décaler la date de fin de fabrication:

      image-20230106-084516.png
      • POUR CHAQUE LST WfPlaIniDem” : on récupère chaque lignes de traçabilité sélectionnées quand on fait l’action lissage

      • VLO.CriDatDeb=WfPlaIniDem.PlaDatBes: on récupère la date de besoin de la demande initiale

      • On calcule la nouvelle date de fin comme on le souhaite ( ici on demande à l’utilisateur de combien il souhaite décaler la date de fin de fabrication, en entrant un nombre de jours et un sens de décalage).

      image-20230106-085423.png
      Voila ce qu’on demandera à l’utilisateur
      • CREATION LST WfPlaDepDem: cette liste donne les ordres de lissage à réaliser

        • PlaAction: Obligatoire. Doit contenir « DM »

        • PlaDepDatBes: Obligatoire. Nouvelle date de fin de fabrication à considérer

        • PlaDepRais: Raison du lissage (mémorisé sur la ligne de besoin de gestion)

      Voici les changements opérés par l’action de lissage !


      AVANT LISSAGE

      APRES LISSAGE

      Sur le tableau de bord de charge: on voit qu’on a décalé de 2 jours !

      Diagramme sans nom-16732794633321.drawio.png
      Diagramme sans nom-1673279463332.drawio.png

      Sur les charges des lignes de commande, on voit également que les charges sont décalées de 2 jours !

      image-20230106-084445.png
      image-20230106-085619.png

      Sur les lignes de gestion, les dates de l’onglet Planification sont décalées de 2 jours !


      Les dates de l’onglet Délai ne bougent pas: c’est normal elles sont calculées par le traitement IN et non Pl, et ce traitement n’est pas relancé quand on lisse.

      Diagramme sans nom-1673280919174.drawio.png
      Diagramme sans nom-1673280758570.drawio.png


      Quand on effectue ce changement de date, un évènement PL se lance en interactif pour recalculer les dates.

      2. Modification de la date de fin de fabrication d'un OF

      Diagramme sans nom-1673014048890.drawio.png

      Voici un exemple de requête pour décaler la date de fin de fabrication:

      image-20230106-084516.png
      • POUR CHAQUE LST WfPlaIniDem” : on récupère chaque lignes de traçabilité sélectionnées quand on fait l’action lissage

      • VLO.CriDatDeb=WfPlaIniDem.PlaDatBes: on récupère la date de besoin de la demande initiale

      • On calcule la nouvelle date de fin comme on le souhaite ( ici on demande à l’utilisateur de combien il souhaite décaler la date de fin de fabrication, en entrant un nombre de jours et un sens de décalage).

      image-20230106-085423.png
      Voilà ce qu’on demandera à l’utilisateur
      • CREATION LST WfPlaDepDem: cette liste donne les ordres de lissage à réaliser

        • GenRefTypeArt: Doit contenir « OF »

        • GenRefArt : Numéro d’OF

        • PlaAction : Doit contenir « DM »

        • PlaDetDapBes : Nouvelle date de fin de fabrication de l’OF (pilotage date de fin, même si l’OF a été initialisé via la méthode de positionnement par date de début).

      Un contrôle d’intégrité est assuré par DIAPASON : existence et validité de l’OF, recalage date sur premier jour non ouvré du calendrier général de fabrication, action de déplacement si la date calculée est différente de la date de fin de fabrication courante. 

      Si avant le lancement de l’action de lissage, des OFs sont sélectionnés, ceux-ci sont visibles dans la requête REB dans la liste WfPlaIniDem de la manière suivante :

      Information

      Description

      GenRefTypeArt 

      Doit contenir « OF »

      GenRefArt 

      Numéro d’OF

      PlaDatBes 

      Date de fin de fabrication prévue avant action de lissage

      PlaQteBes 

      Quantité restant à fabriquer sur la dernière étape de fabrication

      FabUniProRef 

      Unité de production de la gamme de planification de l’OF

      FabGamCadUti 

      Cadre d’utilisation de la gamme de planification de l’OF

      Si avant le lancement de l’action de lissage, des éléments de charge issus de la fonction DIALOG CCH-MAJ sont sélectionnés, ceux-ci sont alors visibles dans la requête REB de lissage de charge dans la liste WfPlaIniDem de la manière suivante :

      Information

      Description

      GenRefTypeArt 

      Doit contenir « E »

      GenRefArt 

      Liste chaînée suivante (séparateur : le caractère <espace>) : clé de la charge donnée à la fonction CCH-MAJ, ressource, unité de mesure de charge

      PlaDatBes 

      Date de fin de positionnement de la charge

      Il est alors possible dans la requête REB de déplacer ces charges externes via la fonction CCH-MAJ : ces déplacements de charge ne seront pas tracés dans le détail de la simulation. Il faut également noter que la gestion de l'instruction LC-ERREUR est également intégrée dans l'exécution de la règle REB de lissage de charge : si un LC-ERREUR est initialisé durant l'exécution, toutes les mises à jour transactionnelles effectuées dans la requête sont annulées et le traitement de lissage n'est pas effectué.

      Voici les changements opérés par l’action de lissage !


      AVANT LISSAGE

      APRES LISSAGE

      Sur le tableau de bord de charge: on voit qu’on a décalé de 2 jours !

      Diagramme sans nom-16732794633321.drawio.png
      Diagramme sans nom-16732788732471.drawio.png

      Sur l’OF, on voit également que les charges sont décalées de 2 jours !

      Diagramme sans nom-1673282235306.drawio.png
      Diagramme sans nom-16732809191741.drawio.png

      Sur les lignes de gestion, les dates de l’onglet Planification sont décalées de 2 jours !


      Les dates de l’onglet Délai ne bougent pas: c’est normal elles sont calculées par le traitement IN et non Pl, et ce traitement n’est pas relancé quand on lisse.

      Diagramme sans nom-1673280919174.drawio.png
      Diagramme sans nom-1673282638280.drawio.png

      Quand on effectue ce changement de date, un évènement PL se lance en interactif pour recalculer les dates.

      3. Changement de Gamme

      On décide de changer de ressource depuis le tableau de bord de charge car on a une surcharge sur une gamme.

      Diagramme sans nom-1673283401868.drawio.png

      Or, par défaut, à l’intégration, on peut générer 2 gammes: une gamme principale et une gamme de secours:

      image-20230106-094329.png

      La gamme principale est Active et Majeure (A et M).

      Voici un exemple de requête pour changer de gamme de planification :

      image-20230106-094426.png

      Quand on fait le lissage on demande a l’utilisateur de saisir le cadre d’utilisatiation et la gamme à utiliser: SCR.GamCadUti.

      image-20230106-094803.png

      On crée la liste WFPlaDepDem avec:

      • PlaAction; Obligatoire. Doit contenir « GM »

      • FabUniProRef: Obligatoire. Nouvelle unité de fabrication à considérer pour la sélection de la gamme

      • FabGamCadUti: Obligatoire. Nouvelle cadre d’utilisation à considérer pour la sélection de la gamme

      • PlaDepRais: Raison du lissage (mémorisé sur la ligne de besoin de gestion)

      Voici les changements opérés par l’action de lissage !


      AVANT LISSAGE

      APRES LISSAGE

      Sur le tableau de bord de charge: on voit que la charge a changé de ressource !

      Diagramme sans nom-1673341097191.drawio.png
      Diagramme sans nom-1673341213590.drawio.png

      On voir que la gamme principale et majeure a été modifiée !

      Diagramme sans nom-16733424373381.drawio.png
      Diagramme sans nom-1673342474761.drawio.png

      Si la nouvelle gamme a une unité de production différente de la gamme initiale (ce qui n'était pas le cas dans l’exemple ci-dessus), on verra le changement sur la ligne de besoin de gestion au niveau du champ “FabUniProRef”. Illustration ci-contre dans le cas où on passe de U1 à U2. Ceci a donc un impact sur la prise en compte de la ligne de commande dans un CBN ou dans un autre mais il s’agit d'une autre histoire!

      Diagramme sans nom-1675431487954.drawio.png


      Diagramme sans nom-1675431628264.drawio.png

      4. Modification cycles mise à disposition, expédition, transport

      On décide d’augmenter le cycle de mise à disposition: pour conserver la date de livraison au client, il faut décaler la date de fin de fabrication !

      Diagramme sans nom-1673343973175.drawio.png

      Voici un exemple de requête pour faire varier les cycles:

      image-20230106-095428.png

      On demande à l’utilisateur de rentrer la durée du cycle de mise à disposition.

      image-20230106-095722.png

      On crée la liste WFPlaDepDem avec:

      • PlaAction: Obligatoire. Doit contenir « DC »

      • PlaCycMajTra: Logique indiquant si le cycle de transport doit être mis à jour ou non

      • PlaCycValTra: Obligatoire si PlaCycMajTra = Oui. Valeur du nouveau cycle de transport à considérer sur la ligne de besoin de gestion

      • PlaCycMajREx: Logique indiquant si le cycle de préparation d’expédition doit être mis à jour ou non

      • PlaCycValREx: Obligatoire si PlaCycMajREx = Oui. Valeur du nouveau cycle de préparation d’expédition à considérer sur la ligne de besoin de gestion

      • PlaCycMajDEs: Obligatoire. Logique indiquant si le cycle de mise à disposition doit être mis à jour ou non

      • PlaCycValDEs: Obligatoire si PlaCycMajDEs = Oui. Valeur du nouveau cycle de mise à disposition à considérer sur la ligne de besoin de gestion

      Voici les changements opérés après l’action de lissage


      AVANT LISSAGE

      APRES LISSAGE

      Sur le tableau de bord de charge: on voit qu’on a décalé de 2 jours !

      Diagramme sans nom-1673347833519.drawio.png
      Diagramme sans nom-1673348037062.drawio.png

      Sur l’onglet Délai, seul le cycle de MAD a été modifié !

      Diagramme sans nom-1673348402303.drawio.png
      Diagramme sans nom-1673355367818.drawio.png

      Sur l’onglet Planification, les dates de début et de fin ont été modifiées !

      Diagramme sans nom-1673355932227.drawio.png
      Diagramme sans nom-1673355973139.drawio.png

      5. Modification du cycle d'une étape

      On décide d’augmenter la durée d’attente de l'étape d’emballage en ajoutant une pause avant. Pour cela, on doit augmenter la durée d’attente pour l’ étape emballage de 1 jour !

      Diagramme sans nom-16733439731758.drawio.png

      Voici un exemple de requête pour modifier la durée d’une étape:

      image-20230106-100830.png

      On demande à l’utilisateur d’entrer la nouvelle durée d’attente !

      image-20230106-101050.png

      On crée la liste WFPlaDepDem avec:

      • PlaAction: Obligatoire. Doit contenir « GC »

      • PlaGamRef: Référence gamme. Si non renseignée, c’est la gamme active courante qui est sélectionnée

      • PlaEtaRef: Obligatoire. Référence étape concernée par la mise à jour des durées

      • PlaEtaMajAtt: Obligatoire. Logique indiquant si le cycle d’attente de l’étape doit être mis à jour ou non

      • PlaEtaDurAtt: Obligatoire si PlaEtaMajAtt = Oui. Valeur du cycle d’attente de l’étape à considérer sur la ligne de besoin de gestion

      • PlaEtaMajPre: Logique indiquant si le cycle ou la durée de préparation de l’étape doit être mis à jour ou non

      • PlaEtaDurPre: Obligatoire si PlaEtaMajPre = Oui. Valeur du cycle ou la durée de préparation de l’étape à considérer sur la ligne de besoin de gestion

      • PlaEtaMajRea: Logique indiquant si le cycle ou la durée de réalisation de l’étape doit être mis à jour ou non

      • PlaEtaDurRea: Obligatoire si PlaEtaMajRea = Oui. Valeur du cycle ou la durée de réalisation de l’étape à considérer sur la ligne de besoin de gestion

      Voici les changements opérés après l’action de lissage


      AVANT LISSAGE

      APRES LISSAGE

      Sur le tableau de bord de charge: on voit qu’on a décalé le début de fabrication de 1 jour ( +le week-end, qui n’est as travaillé) !

      Diagramme sans nom-1673357649190.drawio.png
      Diagramme sans nom-1673423349226.drawio.png

      Sur la gamme, on voit que le temps d’attente de l'étape d’emballage est bien passé à 1 jour.

      Diagramme sans nom-1673423625774.drawio.png
      Diagramme sans nom-1673423711499.drawio.png

      Sur l’onglet Planification des lignes de besoin de gestion, la durée totale du cycle a bien augmenté de 1 jour et la date de début du cycle été avancée de 1 jour ( + le Week-end).

      Diagramme sans nom-1673423800558.drawio.png
      Diagramme sans nom-1673425006689.drawio.png

      Déplacement de charge externe

      Dans ce cas on gère de la charge externe: par exemple, on souhaite voir dans le tableau de bord de charge les commandes qui n’ont pas encore été validées pour déjà pouvoir lisser la charge. On décide notamment de déplacer une charge externe positionnée le 26/01 au 27/01.

      Voici la charge initiale:

      • MicrosoftTeams-image (48).png
      Diagramme sans nom-167334397317581.drawio.png

      Voici un exemple de requête pour déplacer une charge externe:

      MicrosoftTeams-image (42).png


      A noter:

      • Pour rechercher uniquement la charge externe, on utilise : SI WfPlaIniDem.GenRefTypArt=CLO.”E” (ligne 11). Le “E” permet de désigner la charge externe dans cette requête.

      • On utilise VLO.RetFct=CCH-INF (RESSOURCE=VLO.ResGenRef…) ( ligne 27) pour récupérer les informations relatives à la charge externe: sa valeur, sa désignation,, la date…)

      • Entre la ligne 37 et 14, on demande à l’utilisateur de combien il veut décaler la charge et s’il veut la décaler dans le passé ou dans le futur. On calcule ainsi la nouvelle date.

      MicrosoftTeams-image (47).png
      Les infos qu’on demande à l’utilisateur pour lisser
      • On utilise VLO.RefFct=CCH-MAJ(CCH-CLE=VLO.Cle…) ( ligne 42) pour décaler la charge en donnant la nouvelle date entrée par l’utilisateur.

      On voit ainsi dans les traces:

      MicrosoftTeams-image (46).png


      Voici les changements opérés après l’action de lissage


      AVANT LISSAGE

      APRES LISSAGE

      Sur le tableau de bord de charge: on voit qu’on a décalé la charge de début de fabrication de 1 jour jour.

      Diagramme sans nom-1673619293982.drawio.png
      Diagramme sans nom-1673619374231.drawio.png

      Pour aller plus loin…

      Comment voir tous les lissages qui ont été lancés ?

      Depuis le tableau de bord de charge, clic droit “ Historique Session Simulation”

      image-20230106-090037.png

      On voit la liste de tous les lissages qui ont été réalisés !

      image-20230106-090126.png

      On peut soit:

      • Voir tous les lissages réalisés pour tout le monde avec “ Historique Simulations”

      • Voir les lissages réalisés uniquement pour cette session avec “Historique Session Simulation”

      Comment annuler un lissage ?

      Après avoir ouvert la liste de tous les lissages ( voir au dessus),

      image-20230106-090126.png

      On peut annuler une action avec l’action annulation acte !

      image-20230111-085543.png


      Puis avec l’action Détail Acte: on peut voir les différentes charges qu’on a lissées !

      image-20230106-090140.png
      Comment voir toutes les charges de la gamme qui sont sur d'autres ressources depuis le tableur ?

      Après avoir lancé l’action de traçabilité depuis le tableau de bord de charge, on clique sur “Simul. Charge Besoins Externes/Tableur”.

      image-20230106-101958.png

      Cela permet de voir la charge de cette gamme placée sur d’autres ressources !