DECOMPOSE_UN_COMPOSE (Fonction)
Paramètres : GRREF , QTEDEMANDEE , UNITEDEMANDEE, F, SANSREF, CBN, TESTSTOCK, CONTRAINTESPROD, IGNORERSTOCKGROUP, ESTCREATIONREELLE
Cette fonction parcourt la nomenclature d'un article composé « GRREF » pour déterminer les besoins nécessaires pour fabriquer QTEDEMANDEE dans une unité.
L'entête de nomenclature (BA) doit être chargé avant l'appel de cette fonction !
Si utilisé en mode reel, il faut que g6.depo, g6.nst, g6.status, g6.offam soient renseignes !
Le paramètre IgnorerStockGroupindique une décomposition en ignorant certains paramètres : pas de Stock, pas de CBN, BB.OFGRPCOD=1 et BA.OFGCOD=2
LE paramètre estCreationReelleindique si l'on crée un VRAI OF (pour application des règles de découpage par lot)
La fonction renvoie :
0 = Ok
2 = Erreur partage nomenclature
Partager le composéNiveau = 1
Libérer le composéNiveau = Niveau - 1OuiOuiNonOF généré en auto ?NonNonNonNonPartager le composéNiveau = Niveau + 1OuiOuiOuiArticle fictif ?Remonter d'un niveauFin du traitementNiveau supérieur à 1 ?Fin du niveau courant ?Article composé ?Descendre d'un niveauCalculer le besoinLire le composant Pour chaque événement (nouveau composé, remontée vers le niveau supérieur, ...) une procédure ou une fonction est appelée. Cette procédure / fonction externe est lue dans le module HARMONY.DEFPMODULE.
Evénement |
Type |
Procédure / fonction externe |
Détection d'une boucle infinie dans la nomenclature |
Proc |
Boucle_Infinie(GRREF) |
Avant le chargement d'un composant |
Proc |
Composant_Chargement_Av(NIVREEL, F) |
Après le chargement d'un composant |
Proc |
Composant_Chargement_Ap(NIVREEL, NIV, QTE, UNIT, F, TICKETRES) |
Avant la remontée vers le niveau de nomenclature supérieur |
Proc |
Compose_Retour_Av(NIVREEL) |
Lors d'un échec de partage d'article composé |
Proc |
Partage_Erreur(TYPELIGNE) |
Lors d'une perte de précision ou d'une quantité trop élevée dans le calcul du besoin (après tentative de changement d'unité) |
Proc |
OverFlow_Erreur(GRREF) |
Après le chargement d'un composé |
Fonc |
Compose_Chargement_Ap(NIVREEL, NIV, QTE, UNIT, QTECOMPOSANT, TICKETRES) |
Après le chargement d'un article fictif |
Fonc |
Compose_Fictif_Chargement_Ap(NIVREEL, NIV, QTE, UNIT, QTECOMPOSANT) |
Cette fonction utilise les tableaux suivants :
- G3XT.IDTABLEAU (31) pour stocker les nomenclatures / gammes qui sont encours de partage. Une gamme peut être commune à x nomenclatures, il ne faut donc pas libérer cette gamme tout le temps. Ce tableau comptabilise le nombre de partage d'une gamme et libère quand le compteur est à 0.1 PartBA 50
2 PType 1,0; 1=nomenclature, 2 =gamme
2 PGrref >GTFDD GRREF; Référence partagée
2 PCompteur 3,0; Compteur de partage
- G3XT.IDTABLEAU (32) avec l'enregistrement GH. Ce tableau stocke les « nœuds » de l'arbre en cours d'exploration pour pouvoir remonter au niveau supérieur et continuer la lecture.
- G3XT.IDTABLEAU (33) avec l'enregistrement G6T2. Ce tableau stocke les en-têtes d'articles composés lus pendant le parcourt d'une nomenclature. Cela évite de rechercher x fois le même en-tête dans les fichiers.
- G3XT.IDTABLEAU (34) avec l'enregistrement G6T3. Ce tableau stock les couples composé - composant pour pouvoir tester les boucles infinies.
Si TestStock = True, la fonction va vérifier le stock des nomenclatures secondaires si leur mode de gestion est à « sur stock » ou « mixte ». La fonction génèrera un ordre de fabrication secondaire si le stock du semi-fini est insuffisant (en prenant la différence entre le besoin et le stock). Dans le cas contraire, l'ordre de fabrication secondaire n'est pas généré. Si le semi fini contient du stock, le programme crée une réservation pour l'ordre de fabrication.