addFormat - Comment créer un format spécifique à une locale avec l'action `addFormat`?

Internationalisation : Le Format Caméléon

Réponse

Utilisez le paramètre `locale` pour spécifier la locale à utiliser dans le préfixe du nom du format, ce qui permet de créer des formats spécifiques à une langue ou une région.
SAS / CASL
proc cas;
   /* 1. Initialisation */
   sessionProp.addFmtLib / fmtLibName="GlobalFmt" replace=true;

   /* 2. Version FRANÇAISE (locale explicite) */
   sessionProp.addFormat /
      fmtLibName="GlobalFmt", fmtName="StockLabel",
      locale="fr_FR", /* <--- Version FR */
      ranges={"low -< 50 = 'Critique'", "50 - high = 'Suffisant'"};

   /* 3. Version ANGLAISE (locale explicite) */
   sessionProp.addFormat /
      fmtLibName="GlobalFmt", fmtName="StockLabel",
      locale="en_US", /* <--- Version US */
      ranges={"low -< 50 = 'Critical'", "50 - high = 'Sufficient'"};

   /* --- SIMULATION --- */
   
   /* Cas A : L'utilisateur est Français */
   sessionProp.setSessOpt / locale="fr_FR";
   print "--- Résultats en mode Français ---";
   table.fetch / 
      table={caslib="casuser", name="produits"}
      format={Quantite="StockLabel."}; /* Appel générique sans prefixe ! */

   /* Cas B : L'utilisateur est Américain */
   sessionProp.setSessOpt / locale="en_US";
   print "--- Résultats en mode Anglais ---";
   table.fetch / 
      table={caslib="casuser", name="produits"}
      format={Quantite="StockLabel."}; /* Même code, résultat différent */
quit;
Cette réponse vous a-t-elle aidé ?
Codez une fois, déployez partout (I18N). L'utilité majeure du paramètre locale est de permettre l'adaptation automatique de vos rapports sans changer une ligne de code. Ne créez pas des formats nommés Fmt_FR et Fmt_EN. Créez plutôt un format unique (ex: EtatStock) et déclinez-le en plusieurs versions en utilisant le paramètre locale. Lors l'exécution, SAS Viya vérifiera la locale de la session de l'utilisateur (ex: fr_FR ou en_US) et appliquera automatiquement la version correspondante. Si aucune version spécifique n'existe, il se rabattra sur la version par défaut. C'est essentiel pour les tableaux de bord globaux.
addFormat

sessionProp

Doc : addFormat