Variantes contextuelles d’un article

Les variantes contextuelles (effectivity overrides) permettent de surcharger un ou plusieurs attributs d’un PartNumber selon le contexte d’usage : famille d’aéronef, variante, version produit, société, business unit ou aéronef spécifique. Un même article catalogue peut ainsi se comporter différemment selon l’environnement où il est monté, sans dupliquer la fiche.

Pourquoi c’est utile

Un même boulon turbo référencé en PT0714A00 est civil par défaut. Dans la famille Rafale, ce même article est classé militaire (contrôles export plus stricts). Sur la variante Rafale Marine (export marine), il bascule en double usage. Plutôt que de cloner trois fiches PartNumber, on déclare deux variantes contextuelles sur le PartNumber d’origine et la résolution s’adapte automatiquement.

La cascade de résolution

Pour chaque attribut surchargeable, Envergure parcourt les scopes du plus spécifique au moins spécifique et prend la première valeur non-nulle rencontrée :

Ordre d'évaluation pour chaque attribut

  1. Aéronef

    Override sur un aéronef précis (cas dérogation locale).

  2. Business Unit
    Override pour une BU d’une société exploitante.
  3. Société
    Override pour toute la flotte d’une société.
  4. Version produit

    Override sur une version spécifique d’une variante.

  5. Variante produit
    Override sur une variante (ex : Rafale M).
  6. Famille produit
    Override sur toute la famille (ex : Rafale).
  7. Valeur native du PartNumber

    Aucun override applicable — la valeur portée par la fiche article s’applique.

Chaque attribut est résolu indépendamment. Une variante au niveau famille peut surcharger la controlClass pendant que la repairable continue de venir de la fiche article.

Quand l’utiliser (et quand ne PAS l’utiliser)

  • Variante contextuelle — quand un attribut change selon le contexte d’usage tout en conservant le même PN matériel. Cas typique : classification export différente entre civil et défense.
  • Variante d’AEP — quand c’est la structure même de l’aéronef qui change (slots différents, modules différents). Ce n’est pas le sujet ici.
  • Dérogation — quand un PN non standard est admis temporairement à la place du PN attendu par l’CA. La dérogation porte sur l’AEP/CA, pas sur le PartNumber lui-même.

Attributs surchargeables

Un override peut redéfinir un sous-ensemble de :

  • Classe de contrôle (controlClass) — civil, dual_use, military.
  • Réparable (repairable) — oui / non.
  • CSI (csi) avec sa justification (csiReason) — le couple est obligatoirement cohérent (justification non vide si csi = true, absente si csi = false).
  • Contrôles export (exportControls) — remplacement complet de la liste portée par le PN. Liste vide = « pas de contrôle export sur ce scope ». Maximum 10 régimes par override.

Tout attribut laissé vide dans l’override continue de suivre la cascade et n’écrase rien.

Un champ Notes libre (2 000 caractères max) peut accompagner l’override pour documenter la raison de la variante. Ce champ est purement informatif et n’entre pas dans la cascade de résolution.

Créer une variante contextuelle

Création d'une variante contextuelle

  1. Ouvrir la fiche PartNumber admin

    Depuis Admin → Part Numbers, ouvrez la fiche de l’article puis l’onglet « Variantes contextuelles ».

  2. Lancer la création

    Cliquez sur « Ajouter une variante ». Choisissez le type de scope (Famille, Variante, Version, Société, Business Unit, Aéronef), puis l’entité cible via le picker cherchable.

  3. Surcharger les attributs

    Renseignez au moins un des attributs surchargeables. Les autres restent à « (pas d’override) » et suivront la cascade.

  4. Valider

    L’enregistrement est unique par (PartNumber, scope). Pour changer le scope d’un override existant, supprimez-le puis recréez-le.

Tester la résolution

Le bouton « Tester la résolution » ouvre un dialog où vous choisissez librement un contexte (famille, société, BU, aéronef…) et voyez immédiatement les valeurs effectives pour chaque attribut, avec la source : default (valeur native du PN) ou override · {scope} (un override d’un scope précis).

Utile pour valider qu’une nouvelle variante prend bien effet sur l’aéronef cible avant de la présenter à un client métier.

Référence API

  • GET/part-numbers/:id/effectivity-overrides

    liste les variantes contextuelles déclarées sur ce PartNumber.

  • POST/part-numbers/:id/effectivity-overrides

    crée une variante (exactement un scope FK + au moins un attribut). Réservé admin global.

  • PATCH/part-numbers/effectivity-overrides/:overrideId

    met à jour les attributs surchargés (le scope est figé). Réservé admin global.

  • DELETE/part-numbers/effectivity-overrides/:overrideId

    supprime une variante. Réservé admin global.

  • GET/part-numbers/:id/resolve

    résout les attributs pour un contexte donné (query string aircraftId, businessUnitId, companyId, versionId, variantId, familyId — tous optionnels).

Voir aussi