Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.
Sommaire
stylenone

Pour des raisons d’optimisation du code et du nombre de requêtes SQL, le parcours des nomenclatures est réalisé en itératif (pas d’appel récursif)

...

Si un composant est également un composé on l’ajoute dans une liste qui sera traiter traitée dans l'itération de niveau 1.

Ce type de parcours implique de faire un traitement en 2 étapes pour générer les OF dans le même ordre que le moteur historique (qui faisait directement le parcourt parcours des éléments fils).

Les 2 étapes sont :

  • E1 : Le parcours de construction

  • E2 : le parcours d'ouverture

E1 : le parcours de construction

Son rôle est le suivant :

  • parcourir intégralement une nomenclature avec tous les fils et les fils des fils …

  • calculer les quantités nécessaires et faire les conversions d’unités

  • gérer le lotissement

  • fournir des ouvertures pour valider les chargements

    • Nomenclature_Compose_Chargement_Av

    • Nomenclature_Composant_Chargement_Av

  • faire les substitutions pour les articles gérés en sous référence

  • vérifier les boucles infinies

  • alimenter la liste des entêtes de nomenclature List_BA

  • alimenter la liste des composants List_BB

  • alimenter la liste des paramètres de nomenclature list_GH

  • traiter les composants qui sont eux-mêmes des composés

L’algorithme

Charger les données du composé BA

Début itération 1

Ajouter le BA à List_BA

Extraire les composants BB du composé BA

Début itération 2 pour chaque ligne de composant BB

Ajouter le composant à List_BB

...

Ajouter le composé BA dans la liste List_BA_Fils

Fin si

Fin itération 2 sur les composants (BB)

Si List_BA_Fils contient un composé BA

...

Plus de de fils à traiter car tout les fils sont traité

Fin si

Poursuivre itération 1 avec le compose BA

 

A la fin de l'étape E1, les 3 listes suivantes sont alimentées :

  • liste des entêtes de nomenclature List_BA

  • liste des composants List_BB

  • liste des paramètres de nomenclature list_GH

E2 : le parcours d'ouverture

Le parcours d’ouverture se fait en explorant entièrement chaque nœud avec les listes List_BA + List_BB son . Son objectif et d’appeler les ouvertures permettant de générer les données des OF

  • Nomenclature_Compose_Chargement_Ap

  • Nomenclature_Compose_Chargement_Ap

Ouvertures vers le programme appelant : ggppfab100

Ouverture du programme appelant

Etape

d’appel

Rôle

Ancienne

Ouverture du programme appelant

Etape

d’appel

Rôle

Ancienne

Nomenclature_Compose_Chargement_Av

E1

Valider le chargement d’un composé
Si la fonction retourne 0 on traite le composé

Prototype

Function Int Nomenclature_Compose_Chargement_Av (&G6, &G6T2, &ART, &SART, NivFict, Niveau, NiveauReel, Qte, Unit, QteComposant)

Compose_Chargement_Av

Nomenclature_Composant_Virtuel_Chargement

E1

Gérer le découpage en lots d’un OF

Prototype

Function int Nomenclature_Composant_Virtuel_Chargement (G6, &BA, &BB, &GH, QteComposant, List_BB_Virtuel)

Composant_Virtuel_Chargement

Nomenclature_Composant_Chargement_Av

E1

Avant de traiter un composant

Prototype

Procedure Nomenclature_Composant_Chargement_Av(&tBA_compose, &tBB, Niveau, NiveauReel, SubstitutionOK)

Composant_Chargement_Av

Nomenclature_Decomposition_Retour_Av

E1

Après parcours de tous les composants d’un composé

Prototype

Procedure Nomenclature_Decomposition_Retour_Av ()

Decomposition_Retour_Av

Nomenclature_Compose_Chargement_Ap

E2

Traiter le composé - Créer un OF

Prototype

Procedure Nomenclature_Decomposition_Retour_Av ()

Compose_Chargement_Ap

Nomenclature_Composant_Chargement_Ap

E2

Traiter le composant - Créer les composant de OF

Prototype

Procedure Nomenclature_Composant_Chargement_Ap (&G6T1, &G6T2, Niveau, NiveauReel, CdQte, Unit, BA_Trouve, TicketRes)

Composant_Chargement_Ap

Nomenclature_Compose_Retour_Av

E2

Traitement de fin d’un composé - après avoir traiter le composé et ses composants

Prototype

Procedure Nomenclature_Compose_Retour_Av(&G6T2, NiveauReel)

Compose_Retour_Av

Nomenclature_OverFlow_Erreur_Erreur

 

Se produit lors

OverFlow_Erreur

Ouvertures distributeur et correspondances avec le moteur historique

Note : uniquement disponible à partir de la 222A

...

  • E1 : Le parcours de construction → il sert essentiellement à alimenter les listes BA + BB et réaliser les appels des ouvertures xxx_avqui permettent d’agir sur les BA + BB

  • E2 : le parcours d'ouverture → il sert à refaire le parcours des listes BA + BB en explorant les fils et à réaliser les appels des ouvertures xxx_ap

 

Moteur X10.12 (ggtm600_sql)

Appel

Rôle et prototype

Moteur historique (tt)

Moteur X10.12 (ggtm600_sql)

Appel

Rôle et prototype

Moteur historique (tt)

Decomposition_avec_test_boucle_infinie

INIT

Permet de débrayer le test des boucles infinies
Attention en cas d'erreur de nomenclature le programme boucle indéfiniment

public function char Decomposition_avec_test_boucle_infinie(G6)

Decomposition_avec_test_boucle_infinie

Compose_Utilisation_Av

 

E1

L’appel est fait avant d’utiliser le composé BA - Il permet de modifier BA ci nécessaire

public procedure Compose_Utilisation_Av(G6, &BA, Niveau, NiveauReel)

BA_Utilisation_Compose_Av

Compose_Chargement_Av

E1

L’appel est fait avant de stocker l’enregistrement lié au composé G6T2 dans la liste des composés

public procedure Compose_Chargement_Av (G6, &G6T2, &ART, &SART, Niveau, NiveauReel)

 

Compose_Chargement_Ap

E2

L’appel est fait après le traitement du composé
Si le moteur est utilisé pour générer des OF, l'appel est fait après avoir créé l’entête d’OF et les séquences

public procedure Compose_Chargement_Ap (G6, G6T2, GH, Niveau, NiveauReel)

Compose_Chargement_Ap

Compose_Fictif_Chargement_Ap

Composant_Chargement_Av

E1

L’appel est fait avant de stocker l’enregistrement lié au composant G6T1 dans la liste des composants. Composant_Chargement_Av est appelé avant Composant_Utilisation_Av et permet de connaitre le BA père

public Procedure Composant_Chargement_Av(&G6T2_pere, &G6T1, Niveau, NiveauReel)

Composant_Chargement_Av

Composant_Utilisation_Av

E1

L’appel est fait avant d’utiliser le composant BB - Il permet de modifier BB ou son BA associé si le BB est également un composé

public procedure Composant_Utilisation_Av(G6, &BB, &BA_composant, Niveau, NiveauReel)

BA_Utilisation_Composant_Av

Composant_Chargement_Ap

E2

L’appel est fait après le traitement du composant
Si le moteur est utilisé pour générer des OF, l'appel est fait après avoir crée le composant

public Procedure Composant_Chargement_Ap (G6, G6T1, G6T2)

Composant_Chargement_Ap

Composant_Test_stock

E1

Permet de valider le test de stock d’un composant

public function char Composant_Test_stock(G6, BB)

Decompo_Test_stock_composant

Decomposition_Retour_Av

E1

Le parcours des composants du composé est terminé

public Procedure Decomposition_Retour_Av (G6, BA)

Decomposition_Retour_Av

Mode_Traitement_Decoupage_Contrainte_Lot_SF

E1

Règle de découpage des lots

public function char Mode_Traitement_Decoupage_Contrainte_Lot_SF(G6, BB)

Mode_Traitement_Decoupage_Contrainte_Lot_SF

Compose_Secondaire_Init_Quantite

E1

 Permet d’initialiser la quantité du composé secondaire dans la ventilation

public procedure Compose_Secondaire_Init_Quantite(G6, BB, &RefQte)

Compose_Secondaire_Init_Quantite

...