OpS Excel Add-in — version de test
==================================

Ce que ça fait : depuis Excel, tu te connectes à OpS, tu navigues
workspace > projet > run > exécution > output, et tu ramènes les données du
fichier de sortie dans ta feuille — collées d'un coup, ou via une formule
qui se recalcule : =OPS.QUERY(...) pour filtrer et agréger côté serveur,
=OPS.IMPORT(...) pour rapatrier un fichier tel quel. L'aide des formules est
dans le volet, bouton "Help" en haut.

Prérequis
---------
- Windows, avec Excel de Microsoft 365 en version bureau (les add-ins de ce
  type n'existent pas sur Excel 2016/2019 perpétuel).
- Un accès internet, et un compte OpS sur le serveur visé.


Installation (2 minutes)
------------------------
1. Ferme Excel s'il est ouvert.

2. Double-clique OpS-pour-Excel.exe.

   Tant que ce programme n'est pas signé, Windows s'en méfie — c'est normal,
   et il faut passer trois obstacles :
   - au téléchargement, le navigateur peut le retenir : "..." > "Conserver" ;
   - au lancement, l'écran bleu SmartScreen n'affiche PAS de bouton pour
     continuer. Clique "Informations complémentaires", et "Exécuter quand
     même" apparaît alors ;
   - si ton antivirus le met en quarantaine, c'est ton service informatique
     qui doit le débloquer.

   Ensuite tout est automatique : le programme s'installe dans ton profil,
   crée un raccourci "OpS pour Excel" sur le Bureau, puis ouvre Excel. Le
   bouton est dans l'onglet Accueil, groupe "OpS". Rien ne reste à tourner
   en arrière-plan : le volet est servi depuis internet.

3. Dans le volet, clique "Sign in" : la fenêtre de connexion Milliman 360
   habituelle s'ouvre. Ensuite, choisis ta company dans la liste — l'add-in
   sait de lui-même à quel serveur OpS elle correspond.

4. Workspace > Projet > Run > exécution réussie > output, puis :
   - "Import to Excel" : colle les données dans la feuille active
   - "Insert Formula"  : insère la formule dans la cellule sélectionnée


Formules utilisables dans les cellules
--------------------------------------
  Le plus simple : dans le volet, va jusqu'a un output et clique
  "Query builder". Il lit les vrais noms de colonnes du fichier, te laisse
  cocher, filtrer, regrouper, et ecrit la formule pour toi. "Preview" la
  teste sur 10 lignes avant de rien poser dans la feuille.

  =OPS.QUERY("19";"f1758f22-...";"Run 2024 Q4";"Cashflows")
      toute la table, derniere execution reussie du run

  =OPS.QUERY(companyId; projectId; run; output; colonnes; filtres;
             regroupement; agregat; limite; entetes; execution)
      companyId    le nombre apres /c/ dans l'adresse OpS
      projectId    l'identifiant apres /p/
      run          nom du run (son identifiant marche aussi)
      output       nom de l'output, ou "Categorie/Nom" s'il y a un doute
      colonnes     "Annee;Montant" — vide = toutes les colonnes
      filtres      "Pays=FR;Annee>2020;Libelle~amort"
                   "~" = contient ; plusieurs valeurs apres "=" = l'une d'elles
                   ("Pays=FR,BE") ; operateurs >, >=, <, <=, <>
      regroupement "Annee" — les colonnes sur lesquelles regrouper
      agregat      SUM, AVG, MIN, MAX, COUNT (somme/moyenne acceptes aussi),
                   applique aux colonnes qui ne servent pas au regroupement
      limite       10000 maximum, 1000 par defaut
      entetes      FALSE enleve la ligne de noms de colonnes, pour empiler
                   plusieurs requetes ; par defaut elle est la
      execution    fige la formule sur une execution precise. Vide, chaque
                   recalcul reprend la derniere execution reussie du run :
                   tu relances le run, tes cellules suivent. La case
                   "Stay on this execution" du Query builder l'ecrit pour toi

  Exemple : le total par annee, France seulement
  =OPS.QUERY("19";"f1758f22-...";"Run 2024 Q4";"Cashflows";
             "Annee;Montant";"Pays=FR";"Annee";"SUM")

  La company et le projet sont dans la formule : un classeur envoye a
  quelqu'un d'autre se recalcule chez lui, quel que soit le projet ouvert
  dans son volet. Le tri, le filtrage et le calcul sont faits cote serveur :
  la cellule ne recoit que le resultat.

  =OPS.COLUMNS("19";"f1758f22-...";"Run 2024 Q4";"Cashflows")
      deverse les noms de colonnes de l'output, un par ligne — pratique
      pour ecrire une formule a la main sans deviner l'orthographe

  A savoir sur SUM et AVG : un CSV ne porte aucun type, les valeurs sont
  lues comme du texte et seules celles qui se convertissent sont comptees.
  MIN et MAX y comparent du texte ("1000" vient avant "9"). Un output
  Parquet garde ses types et n'a ni l'un ni l'autre probleme.

Lire un fichier de sortie tel quel
----------------------------------
  =OPS.IMPORT("companyId";"projectId";"runHistoryId";"outputId")
      tout le fichier de sortie

  =OPS.IMPORT("companyId";"projectId";"runHistoryId";"outputId";ligne;colonne;nbLignes;nbColonnes)
      une plage seulement ; ligne et colonne commencent à 1,
      0 ou vide = pas de limite sur cette dimension

Le bouton "Raw formula" du volet remplit les identifiants pour toi, tu n'as
plus qu'à ajuster les 4 derniers arguments.


Mettre à jour vers une nouvelle version
---------------------------------------
FERME EXCEL COMPLÈTEMENT avant de lancer le nouvel exe. Excel garde en
mémoire l'ancien complément et l'ancienne signature des formules : si tu
mets à jour pendant qu'il tourne, il refuse le complément au message
"ne peut pas être utilisé". L'installation te le demandera et t'attendra.

Si tu tombes quand même dessus : ferme Excel (vérifie qu'aucun EXCEL.EXE ne
reste), relance l'exe, puis rouvre par le raccourci du Bureau.

Un classeur que tu avais ENREGISTRÉ avec l'ancienne version peut, lui aussi,
être refusé après la mise à jour : il retient la version de l'add-in qu'il
avait sous la main. Pour le réparer, glisse-le sur OpS-pour-Excel.exe (ou
lance-le en ligne de commande avec le chemin du classeur). Le programme
réaligne la référence et te le dit ; il n'installe rien dans ce cas-là.


Ça ne marche pas
----------------
- Le bouton "OpS Plugin" n'apparaît pas dans le ruban :
  ferme complètement Excel, puis relance par le raccourci "OpS pour Excel"
  du Bureau. Ouvrir Excel seul ne suffit pas : c'est le classeur ouvert par
  ce raccourci qui charge l'add-in.
- Le volet reste blanc : ton réseau bloque peut-être l'adresse depuis
  laquelle il est servi. Vérifie que tu ouvres bien cette adresse depuis ton
  navigateur (elle figure dans manifest.xml, balise SourceLocation).
- "Not connected" dans une formule : ouvre le volet et reconnecte-toi
  (les formules utilisent le jeton posé par le volet).
- Ta company n'apparaît pas, ou porte "OpS not configured" : aucun serveur
  OpS ne lui est rattaché côté Platform. C'est à voir avec nous.
- La liste des projets ne vient pas : le serveur de ta company est peut-être
  en veille. Réessaie dans une minute.


Désinstaller
------------
Lance depuis une invite de commandes :
  "%LOCALAPPDATA%\Programs\OpsExcelAddin\OpsAddinHost.exe" --uninstall

Puis, si tu veux ne rien laisser :
1. supprime le dossier %LOCALAPPDATA%\Programs\OpsExcelAddin ;
2. regedit > HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Wef\Developer
   et supprime la valeur qui pointe vers manifest.xml.


Les données lues sont celles auxquelles ton compte Milliman 360 a déjà accès :
l'add-in ne voit rien de plus que toi.
