ApplyMap()

ApplyMap() sert à remplacer une clé à l’aide d’une table de correspondance.

Présentation

Un export de maintenance ne contient que des codes de priorité, alors que le responsable d'exploitation attend des libellés compréhensibles. ApplyMap() permet de les récupérer depuis une petite table de correspondance, directement au chargement. Tu évites une jointure supplémentaire dans le modèle. Pense à traiter les codes absents du référentiel : sinon, tu risques de conserver un code brut dans une colonne censée contenir un libellé.

Syntaxe

ApplyMap('mapname', expr [ , defaultexpr ] )
ParamètreDescription
mapnameNom de la table de correspondance créée avec Mapping LOAD.
exprExpression dont la valeur est recherchée dans la table de mapping.
defaultexprFacultatif : valeur retournée si aucune correspondance n’est trouvée.

Exemple pratique

Décoder les priorités d’un flux de maintenance

Cas SOSBI · qualité des référentiels. Un code de priorité doit être transformé en libellé lisible, sans jointure sur le modèle.

Script de chargement

Priorites:
MAPPING LOAD * INLINE [
CodePriorite, LibellePriorite
P1, Intervention immédiate
P2, À planifier
P3, Suivi courant
];

Interventions:
LOAD
    InterventionID,
    CodePriorite,
    ApplyMap('Priorites', CodePriorite, 'Priorité non référencée') AS PrioriteLibelle
INLINE [
InterventionID, CodePriorite
INT-701, P1
INT-702, P3
INT-703, P9
];

Données de départ

Référentiel des priorités
CodePrioriteLibellePriorite
P1Intervention immédiate
P2À planifier
P3Suivi courant
Interventions reçues
InterventionIDCodePriorite
INT-701P1
INT-702P3
INT-703P9

Résultat

INT-701 → Intervention immédiate ; INT-702 → Suivi courant ; INT-703 → Priorité non référencée.

Le code P9 est volontairement absent du mapping pour illustrer le traitement d’une valeur inconnue.

Précisions techniques

  • Le 3ᵉ paramètre est facultatif : il définit la valeur retournée lorsqu’aucune correspondance n’est trouvée dans la table de mapping.
  • Si ce paramètre est omis et qu’aucune correspondance n’existe, ApplyMap() renvoie la valeur recherchée elle-même.