Technique et surcharge Nouveau moteur décomposition OF

Production : Nouveau moteur de génération des OF

Il a été écrit pour répondre à des problèmes de performances du moteur historique

Les informations sont disponibles ici Nouveau moteur production pour la génération des OF (V10.12)

Les programmes ci dessous utilisent par défaut le nouveau moteur de génération des OF X.12

  • Génération des OF à l’affaire

  • Administration des affaires > Fabrication > Créer un OF

  • Administration des affaires > Fabrication > Générer les OF

  • Génération des OF à la commande

 

Ouvertures distributeur et correspondances avec le moteur historique

Note : uniquement disponible à partir de la 222a

Le nouveau moteur n’utilise plus aucun enregistrement publique (G6, BA, BB ...)

Les appels des ouvertures pour les distributeurs du nouveau moteur de décomposition sont centralisées dans le module ggtm600_sql.dhsp .

Chaque ouverture est appelée avec les paramètres qui sont nécessaires.

Chaque paramètre de la procédure est placée dans le tunnel local via des appels PingLocal.

La procédure appelle Xmt_Call pour le code de surcharge dans les modules TT de chaque programme

 

Exemple de la procédure ggtm600_sql / Composant_Utilisation_Av

;* public procedure Composant_Utilisation_Av(G6, &BB, &BA_composant, Niveau, NiveauReel) ; L’appel est fait avant d’utiliser le composant BB - Il permet de le modifier ci nécessaire Record GTFDD.dhsd G6 Record GTFDD.dhsd BB ; Le composant Record GTFDD.dhsd BA BA_composant ; Si le composant est aussi un composé 1 Niveau > GTFDD.dhsd Niv ; Niveau de l'en-tête de production (y compris fictif) 1 NiveauReel > GTFDD.dhsd Niv ; Niveau en tenant compte des fictifs beginp ; envoyer les données en ping PingLocal("PM600_SQL_G6", G6) PingLocal("PM600_SQL_BB", BB) PingLocal("PM600_SQL_BA_COMPOSANT", BA_composant) PingLocal("PM600_SQL_NIVEAU", Niveau) PingLocal("PM600_SQL_NIVEAUREEL", NiveauReel) G3_Xmt_Call ("Composant_Utilisation_Av") ; recupérer les records modifiés par l'ouverture PingLocalReceiveAndDelete("PM600_SQL_BB", BB) PingLocalReceiveAndDelete("PM600_SQL_BA_composant", BA_composant) endp

 

Ouverture pour la génération des OF ggttfab100.dhsp / Composant_Utilisation_Av

;* public procedure Composant_Utilisation_Av ; Ouverture pour le moteur de Composant_Utilisation_Av Record GTFDD.dhsd G6 Record GTFDD.dhsd BB ; Le composant Record GTFDD.dhsd BA BA_composant ; Si le composant est aussi un composé 1 Niveau > GTFDD.dhsd Niv ; Niveau de l'en-tête de production (y compris fictif) 1 NiveauReel > GTFDD.dhsd Niv ; Niveau en tenant compte des fictifs beginp ; Lire les enregistrements transmis par la procedure [ggtm600_sql.dhsp / Composant_Utilisation_Av] PingLocalReceive("PM600_SQL_G6", G6) PingLocalReceive("PM600_SQL_BB", BB) PingLocalReceive("PM600_SQL_BA_COMPOSANT", BA_composant) PingLocalReceive("PM600_SQL_NIVEAU", Niveau) PingLocalReceive("PM600_SQL_NIVEAUREEL", NiveauReel) ; Modifier les données de BB et BA_Composant ici ; retourner les enregistrements modifiés à [ggtm600_sql.dhsp / Composant_Utilisation_Av] PingLocal("PM600_SQL_BB", BB) PingLocal("PM600_SQL_BA_COMPOSANT", BA_composant) endp

 

Le parcours des nomenclatures est réalisé en itératif (pas d’appel récursif) pour limiter les instructions SQL.

Ce type de parcours implique de faire un traitement en 2 étapes E1 + E2 afin de conserver l’ordre de génération des OF.

Les 2 étapes sont :

  • 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 X.12 (ggtm600_sql)

Appel

Rôle et prototype

Moteur historique (tt)

Moteur X.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