Décomposition de modules
La décomposition matérialise la hiérarchie des modules et sub-modules réellement installés sur un aéronef. Elle est la projection physique de la CA à un instant donné.
Modèle : container vs employment point
Deux types de slots cohabitent dans l’arbre :
- Employment Point
Slot fonctionnel défini par l’
AEP
de l’aéronef. Exemple : poste pilote 1, baie avionique gauche, point d’attache moteur droit. Un employment point accepte des modules dont le PN figure dans sa liste d’éligibilité.
- Container
Module qui héberge à son tour des sub-modules. Exemple : un moteur M88-2 contient un module de ventilation, une chambre de combustion, un calculateur FADEC. Le container définit ses propres points d’emploi internes.
Le drawer « Décomposer » d’un slot remonte automatiquement le bon contexte selon que la cible est un employment point ou un sub-slot container.
Rechercher dans l’arbre
Sur un aéronef richement équipé, l’arbre peut compter des dizaines de points d’emploi. Le champ « Filtrer par point d’emploi, RA:CE ou S/N… » en haut de la décomposition restreint l’affichage à la volée. La recherche est insensible à la casse et porte sur :
- le point d’emploi : code interne (
MOT-DR), libellé, ou clé ATA-CSN (72-31-00) ; - la RA:CE de l’équipement monté (référence article + code NCAGE, ex.
PT0714A00:F4957), ainsi que le PN ou le nom de l’article ; - le numéro de série (S/N) de l’exemplaire posé.
Quand un point d’emploi correspond, tout son sous-arbre est conservé pour garder le contexte ; quand c’est un sous-composant en profondeur qui correspond, la branche parente reste visible et se déplie automatiquement. Le bouton « ✕ » réinitialise le filtre.
Poser un sub-module dans un container
Pose d'un sub-module dans un container
- Ouvrir l'arbre
Depuis la fiche aéronef, déployez l’arbre. Cliquez sur l’icône « + » d’un sub-slot container vide.
- Choisir l'exemplaire
Le picker filtre automatiquement les exemplaires (Stock Items) compatibles avec le PN attendu par le slot. Renseignez la date d’installation.
- Valider
La pose est enregistrée via
POST/stock-items/:stockItemId/install—qui crée l’Installation et déduit le currentStorageId/quantity du container.
Note : un sub-module monté dans un container n’a pas de localisation de stock indépendante — sa position est déduite du container, et sa quantité est forcée à 1 (composant sérialisé).
Déposer un module
Dépose d'un module
- Repérer le module monté
Dans l’arbre, le module en place est affiché avec son SN. Cliquez sur l’icône « − » pour initier la dépose.
- Choisir la destination de stockage
Sélectionnez le storage type d’arrivée (magasin général, quarantaine, banc d’essai…). Précisez la condition (serviceable, à inspecter, hors service).
- Confirmer
Le module quitte l’aéronef via POST
/installations/:installationId/uninstallet un MeterSnapshot est pris pour figer ses compteurs.
Quels articles peut-on poser ?
Tous les PartNumbers du catalogue ne sont pas posables — Envergure utilise un flag
PartType.isMountable pour distinguer ce qui peut être physiquement installé sur un
équipement ou un aéronef de ce qui ne le peut pas.
| PartType | Exemple | isMountable | Posable ? |
|---|---|---|---|
spare |
Rechange (turbo, bielle, joint structurel) | true | Oui |
onboard |
Équipement de bord (M88, radar, calculateur) | true | Oui |
tooling |
Outillage (clé dynamo, banc d’essai) | false | Non — suit le cycle check-out / check-in |
consumable |
Consommable (fluide, scellant, lubrifiant) | false | Non — consommé pendant l’opération |
container |
Conteneur logistique (caisse de transport) | false | Non — sécurise le stockage/transport |
Le garde-fou est appliqué à deux endroits :
- Déclaration de candidat sur un EmploymentPoint : l’admin de la décomposition ne peut
déclarer comme candidat sur un PE qu’un PartNumber dont le PartType est
isMountable=true. Le picker filtre côté UI, et le backend rejette en 400 sinon. - Pose effective d’un StockItem (POST
/stock-items/:stockItemId/install) : un StockItem dont le PartType n’est pasisMountablene peut pas être posé — rejet 400 avec message explicite.
Les trois dimensions d’un PartType
Un PartType est défini par trois drapeaux orthogonaux. Ils décrivent ce que l’article sait faire, pas son rôle métier — un même PartType peut combiner plusieurs capacités.
| Flag | Signification | Vrai pour |
|---|---|---|
isMountable |
Peut être posé sur un EmploymentPoint (équipement ou aéronef) | spare, onboard |
isContainer |
Peut servir d’emballage logistique pour ranger d’autres StockItems | container |
isTool |
Est un outillage (cycle check-out / check-in, pas consommé) | tooling |
L’orthogonalité est volontaire : isMountable et isContainer peuvent cohabiter dans une lecture
métier — par exemple un rack avionique vissé sur la structure. Voir ci-dessous.
Cas particulier : équipement posable et conteneur (rack avionique, moteur démontable)
Un rack avionique vissé dans la baie est à la fois posable (vissé sur la cellule) et porteur de cartes modulaires dans des slots internes. De même, un moteur M88 est posable sur l’aéronef et contient lui-même 8 modules majeurs (FAN, HPC, CC…).
Envergure modélise ces équipements via deux mécanismes complémentaires :
| Cas métier | PartType | isMountable | Capacité conteneur |
|---|---|---|---|
| Caisse de transport (CTN-AVIO-A) | container |
❌ | isContainer=true (logistique) |
| Rack avionique (RACK-AVIO-A) | onboard |
✅ | CA imbriquée (targetType='part_number') |
| Moteur M88 démontable | onboard |
✅ | CA imbriquée |
| Carte/module simple (CARD-AVIO-001) | onboard |
✅ | Aucune (composant feuille) |
À retenir. La capacité « contient des sub-modules dans des slots typés » d’un équipement embarqué n’est PAS portée par
partType.isContainer— elle est portée par uneApplicableConfigurationimbriquée (cf. seedCFG-RACK-AVIO-A). Le flagisContainerreste réservé aux caisses de transport (modèle logistique pur, voir relationPartNumberContainerCompatibility). Le serviceassertContainerValidaccepte les deux voies.
Propagation des compteurs
À chaque pose et chaque dépose, Envergure capture un MeterSnapshot : valeur courante de tous les compteurs pertinents (heures, cycles, mesures spécifiques). Cela permet de :
- calculer la durée d’usage d’un exemplaire sur un poste donné ;
- répartir l’usure entre containers parents et sub-modules ;
- déclencher correctement les PRE basés sur des compteurs hérités.
Montabilité conditionnelle d’un article
Au-delà du « ce PN est-il candidat sur cet emplacement ? », Envergure permet de conditionner la montabilité d’un article candidat précis à l’état réel de l’aéronef au moment de la pose. On attache une ou plusieurs conditions de montabilité à une ligne d’éligibilité (le couple emplacement × PN), depuis l’éditeur d’éligibilité d’une configuration applicable.
Trois types de conditions existent :
- Condition « MOD »
La montabilité dépend de l’état d’application d’une modification. Exemple : le pneu
GGH812:F6137n’est montable que si la MODMOD-REID-18804est appliquée. L’état attendu estappliquéeounon appliquée; il s’évalue soit sur l’aéronef porteur, soit sur le composant parent (cas d’un sous-module logé dans un équipement).
- Condition « ancêtre RA:CE »
La montabilité dépend du RA:CE réellement monté sur un emplacement situé au-dessus dans l’arbre. Exemple : si c’est le train
RACE1qui est posé, alors seule la roueRACE4est montable. La polarité estdoit être parmioune doit pas être parmila liste autorisée.
- Condition « amendement »
La montabilité dépend de l’amendement (indice de définition) de la pièce candidate elle-même. Exemple : cet emplacement exige un amendement ≥ B. L’opérateur est
≥(montée d’indice compatible — une pièce en amdt C satisfait « ≥ B ») ou=(indice exact). Le seuil se choisit au catalogue d’amendements de la référence. Une pièce sans amendement renseigné ne satisfait pas la condition (bloquée, ou acquittable selon le niveau).
Plusieurs conditions se combinent en ET : toutes doivent être remplies. Chaque condition porte un niveau d’application :
| Niveau | Effet à la pose si la condition n’est pas remplie |
|---|---|
| Bloquant | Pose refusée (400), non acquittable — il faut régulariser d’abord. |
| Avertissement | Pose possible après acquittement explicite ; l’alerte est tracée. |
Distinction avec la disponibilité d’emplacement (ci-dessous). La montabilité conditionnelle porte sur un article candidat précis sur un emplacement (« ce PN-ci n’est montable que si… »). La disponibilité d’emplacement, elle, verrouille l’emplacement entier quelle que soit la pièce (« cet emplacement n’existe que si… »). Les deux mécanismes sont complémentaires.
Emplacements conditionnés par une MOD
Un point d’emploi peut être conditionné par l’état d’application d’une modification (MOD) : il
n’est utilisable que si une MOD donnée est appliquée — ou, à l’inverse, tant qu’une MOD n’est PAS
appliquée. Exemple : l’emplacement Vision Tête Haute (40-00-01-001) n’existe physiquement que
si la MOD VTH a été appliquée sur l’aéronef.
Ces conditions se déclarent sur l’EmploymentPoint (onglet Disponibilité). Plusieurs conditions se combinent en ET : toutes doivent être remplies pour que l’emplacement soit disponible. L’évaluation est faite en direct sur l’état de conformité courant de l’aéronef.
Dans l’arbre de décomposition, un emplacement dont la condition n’est pas remplie reste affiché (il fait partie de la structure) mais signale son état :
| Situation | Affichage |
|---|---|
| Emplacement vide et verrouillé | Ligne grisée + badge VERROUILLÉ + motif (« MOD … requise ») |
| Emplacement déjà occupé mais verrouillé | Badge OCCUPÉ conservé + avertissement MOD NON CONFORME |
Pourquoi l’emplacement reste visible. Un emplacement verrouillé n’est jamais masqué : il appartient à la structure théorique de l’aéronef. Le masquer ferait croire qu’il n’existe pas ; on préfère le montrer grisé avec le motif, pour la traçabilité.
À la pose, la règle est durcie : tenter d’installer un composant sur un emplacement verrouillé est refusé (400, condition MOD non remplie). En revanche, un composant déjà posé sur un emplacement qui devient verrouillé (parce qu’une MOD a changé d’état) n’est pas délogé — il est seulement signalé comme non conforme.
Voir aussi
- Dossiers de travail — agissent sur l’arbre via les OT.
- Stocks — gestion des Stock Items et des storage types.
- Flotte — vue d’ensemble des aéronefs et de leur configuration.