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

  1. Ouvrir l'arbre

    Depuis la fiche aéronef, déployez l’arbre. Cliquez sur l’icône « + » d’un sub-slot container vide.

  2. Choisir l'exemplaire

    Le picker filtre automatiquement les exemplaires (Stock Items) compatibles avec le PN attendu par le slot. Renseignez la date d’installation.

  3. 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

  1. 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.

  2. 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).

  3. Confirmer

    Le module quitte l’aéronef via POST/installations/:installationId/uninstall et 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 :

  1. 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.
  2. Pose effective d’un StockItem (POST /stock-items/:stockItemId/install) : un StockItem dont le PartType n’est pas isMountable ne 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 une ApplicableConfiguration imbriquée (cf. seed CFG-RACK-AVIO-A). Le flag isContainer reste réservé aux caisses de transport (modèle logistique pur, voir relation PartNumberContainerCompatibility). Le service assertContainerValid accepte 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:F6137 n’est montable que si la MOD MOD-REID-18804 est appliquée. L’état attendu est appliquée ou non 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 RACE1 qui est posé, alors seule la roue RACE4 est montable. La polarité est doit être parmi ou ne doit pas être parmi la 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.