> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Guide

> Guide d’installation et d’utilisation manuelle du connecteur ABBYY Vantage pour Microsoft Power Automate

export const VantageRegion = ({children}) => {
  const STORAGE_KEY = "abbyy.vantage.region";
  const REGIONS = [{
    code: "eu",
    label: "Europe"
  }, {
    code: "us",
    label: "North America"
  }, {
    code: "au",
    label: "Australia / Asia-Pacific"
  }];
  const [region, setRegion] = useState("eu");
  const [open, setOpen] = useState(false);
  const containerRef = useRef(null);
  const dropdownRef = useRef(null);
  function safeGetSavedRegion() {
    try {
      const saved = typeof window !== "undefined" ? window.localStorage.getItem(STORAGE_KEY) : null;
      const valid = new Set(REGIONS.map(r => r.code));
      return saved && valid.has(saved) ? saved : "eu";
    } catch {
      return "eu";
    }
  }
  function safeSetSavedRegion(code) {
    try {
      if (typeof window !== "undefined") {
        window.localStorage.setItem(STORAGE_KEY, code);
      }
    } catch {}
  }
  function dispatchRegionChanged(code) {
    try {
      if (typeof window !== "undefined") {
        window.dispatchEvent(new CustomEvent("abbyy:region-changed", {
          detail: {
            code
          }
        }));
      }
    } catch {}
  }
  function replaceRegionInString(text, currentRegion) {
    if (typeof text !== "string") return text;
    const hostRegex = /https:\/\/vantage-(eu|us|au)\.abbyy\.com/gi;
    const tokenRegex = /https:\/\/vantage-\[region\]\.abbyy\.com/gi;
    const bareHostRegex = /vantage-(eu|us|au)\.abbyy\.com/gi;
    const bareTokenRegex = /vantage-\[region\]\.abbyy\.com/gi;
    return text.replace(hostRegex, `https://vantage-${currentRegion}.abbyy.com`).replace(tokenRegex, `https://vantage-${currentRegion}.abbyy.com`).replace(bareHostRegex, `vantage-${currentRegion}.abbyy.com`).replace(bareTokenRegex, `vantage-${currentRegion}.abbyy.com`);
  }
  useEffect(() => {
    setRegion(safeGetSavedRegion());
  }, []);
  useEffect(() => {
    const root = containerRef.current;
    if (!root) return;
    const anchors = root.querySelectorAll("a[href]");
    anchors.forEach(a => {
      const href = a.getAttribute("href");
      if (href) {
        const next = replaceRegionInString(href, region);
        if (next !== href) {
          a.setAttribute("href", next);
        }
      }
    });
    const walker = typeof document !== "undefined" ? document.createTreeWalker(root, NodeFilter.SHOW_TEXT, null) : null;
    if (walker) {
      const toUpdate = [];
      let node = walker.nextNode();
      while (node) {
        const updated = replaceRegionInString(node.nodeValue, region);
        if (updated !== node.nodeValue) {
          toUpdate.push([node, updated]);
        }
        node = walker.nextNode();
      }
      toUpdate.forEach(([textNode, value]) => {
        textNode.nodeValue = value;
      });
    }
  }, [region, children]);
  useEffect(() => {
    const root = containerRef.current;
    if (!root) return;
    const anchors = root.querySelectorAll("a[href]");
    anchors.forEach(a => {
      a.style.fontWeight = "600";
      a.style.textDecoration = "underline";
      a.style.textUnderlineOffset = "2px";
    });
  }, [region, children]);
  useEffect(() => {
    const onRegionChanged = evt => {
      const code = evt && evt.detail && evt.detail.code;
      if (!code || code === region) return;
      setRegion(code);
    };
    if (typeof window !== "undefined") {
      window.addEventListener("abbyy:region-changed", onRegionChanged);
    }
    return () => {
      if (typeof window !== "undefined") {
        window.removeEventListener("abbyy:region-changed", onRegionChanged);
      }
    };
  }, [region]);
  useEffect(() => {
    const onClickAway = e => {
      if (!dropdownRef.current) return;
      if (!dropdownRef.current.contains(e.target)) {
        setOpen(false);
      }
    };
    document.addEventListener("click", onClickAway, true);
    return () => document.removeEventListener("click", onClickAway, true);
  }, []);
  const onSelect = code => {
    setRegion(code);
    safeSetSavedRegion(code);
    dispatchRegionChanged(code);
    setOpen(false);
  };
  const current = REGIONS.find(r => r.code === region) || REGIONS[0];
  return <div className="not-prose">
      <div className="mb-4 inline-flex items-center gap-2" ref={dropdownRef}>
        <span className="text-sm text-zinc-950/80 dark:text-white/80">Tenant Region:</span>
        <div className="relative">
          <button type="button" aria-haspopup="listbox" aria-expanded={open ? "true" : "false"} onClick={() => setOpen(v => !v)} className="h-8 px-3 rounded-md bg-zinc-900/5 dark:bg-white/5 border border-zinc-950/20 dark:border-white/20 text-sm inline-flex items-center gap-2">
            <span className="text-zinc-950 dark:text-white">{current.label}</span>
            <svg width="8" height="24" viewBox="0 -9 3 24" className="transition-transform text-gray-400 overflow-visible dark:text-gray-600 ml-auto" style={{
    transform: open ? "rotate(270deg)" : "rotate(90deg)"
  }}>
              <path d="M0 0L3 3L0 6" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round"></path>
            </svg>
          </button>
          {open ? <div role="listbox" className="absolute z-50 left-full top-0 ml-2 w-56 rounded-xl border border-zinc-950/20 dark:border-white/20 bg-white dark:bg-zinc-900 shadow-lg p-2">
              {REGIONS.map(r => {
    const selected = r.code === region;
    return <button key={r.code} type="button" role="option" aria-selected={selected ? "true" : "false"} onClick={() => onSelect(r.code)} className={"w-full flex items-center justify-between px-3 py-2 rounded-lg text-sm hover:bg-zinc-950/5 dark:hover:bg-white/10 text-zinc-950 dark:text-white" + (selected ? " font-medium" : "")}>
                    <span style={selected ? {
      color: "#ff2038"
    } : undefined}>{r.label}</span>
                    <span className={selected ? "ml-3" : "ml-3 invisible"} style={selected ? {
      color: "#ff2038"
    } : undefined}>✓</span>
                  </button>;
  })}
            </div> : null}
        </div>
      </div>
      <div ref={containerRef} className="prose dark:prose-invert max-w-none">{children}</div>
    </div>;
};

Le connecteur ABBYY Vantage pour Microsoft Power Automate permet aux développeurs d’ajouter des fonctionnalités d’extraction de données et de classification de documents aux flux d’automatisation. Il s’agit d’un package redistribuable destiné à une installation manuelle.

<div id="prerequisites">
  ## Prérequis
</div>

<Note>
  Une licence Power Automate Premium est requise pour utiliser ce connecteur.
</Note>

Vous devez disposer d’un tenant Vantage avec un [client d’API public](/fr/vantage/documentation/tenant-admin/tenant-management/configure-client) configuré. Paramètres spécifiques à ce connecteur :

* **URL de redirection autorisée** : obtenue dans Power Automate plus loin dans ce guide de configuration. Conservez l’URL de redirection abbyy.com.
* **ID client** : l’ID de votre client d’API public.
* **Secret client** : votre secret client.
* Désactivez **Require PKCE for Authorization Code Flow**.
* Activez **Allow issuing refresh tokens to refresh access tokens**.
* Activez **Allow client credentials flow**. Pour le ou les rôles, `Skill User` est recommandé.

<Accordion title="Exemple de client d’API configuré">
  <img src="https://mintcdn.com/abbyy/YpqdJk1A1n7Rrt8K/images/vantage/developer/connectors/ms-powerautomate/public-api-client.jpg?fit=max&auto=format&n=YpqdJk1A1n7Rrt8K&q=85&s=d425aa3ac98d861d817edb2811d6023c" alt="Écran du client d’API public ABBYY Vantage" width="1684" height="1688" data-path="images/vantage/developer/connectors/ms-powerautomate/public-api-client.jpg" />
</Accordion>

Vous aurez besoin de l’ID du tenant Vantage lors de l’étape de configuration de la sécurité.

<Accordion title="Trouver l’ID du tenant">
  <Steps>
    <Step title="Ouvrez la configuration du tenant">
      Dans Vantage, cliquez sur **Configuration** dans le volet de gauche.
    </Step>

    <Step title="Copiez l’ID du tenant">
      Cliquez sur **General** et recherchez le champ **ID du tenant**.

      <img src="https://mintcdn.com/abbyy/YpqdJk1A1n7Rrt8K/images/vantage/developer/connectors/ms-powerautomate/finding-tenant-id.jpg?fit=max&auto=format&n=YpqdJk1A1n7Rrt8K&q=85&s=9797a2c9bf66dfa4ba7e4319c9717f4b" alt="Écran de configuration du tenant ABBYY Vantage" width="1414" height="610" data-path="images/vantage/developer/connectors/ms-powerautomate/finding-tenant-id.jpg" />
    </Step>
  </Steps>
</Accordion>

<div id="installing-the-connector">
  ## Installation du connecteur
</div>

Commencez par [télécharger le connecteur](https://www.abbyy.com/marketplace/assets/host/abbyy/connector/microsoft-power-automate/) sur ABBYY Marketplace.

1. Ouvrez Microsoft Power Automate, puis sélectionnez **Data > Custom connectors** dans le menu de gauche. Vous devrez peut-être sélectionner **More** pour afficher cette option.

2. Cliquez sur **+ New custom connector**, puis sélectionnez **Import an OpenAPI file**.

3. Saisissez un nom pour le connecteur, par exemple « ABBYY Vantage ».

4. Recherchez le fichier `ABBYY-Vantage-ProcessingAPI.swagger.json`, puis ouvrez-le.

<div id="configure-general-information">
  ### Configurer les informations générales
</div>

1. \[Facultatif] Téléversez une icône pour le connecteur à l’aide du logo ABBYY Vantage (`Vantage-Square-icon.png`) inclus dans le téléchargement du connecteur.

2. Remplacez l’URL **Host** par l’adresse de votre serveur Vantage. La même adresse doit être utilisée dans les champs **Authorization URL** et **Token URL**.

<VantageRegion>
  ```
  vantage-us.abbyy.com
  ```
</VantageRegion>

<div id="configure-security">
  ### Configurer la sécurité
</div>

Définissez **Type d’authentification** sur **OAuth 2.0** et renseignez les champs suivants à l’aide des valeurs de votre client d’API public Vantage :

* **Client ID** : l’ID de votre client d’API public.
* **Secret client** : le secret de votre client d’API public.
* **URL d’autorisation** : `https://vantage-[region].abbyy.com/auth2/[tenant-id]/connect/authorize`
* **URL du jeton** : `https://vantage-[region].abbyy.com/auth2/[tenant-id]/connect/token`
* **URL de rafraîchissement** : `https://vantage-[region].abbyy.com/auth2/[tenant-id]/connect/token`
* **Portée** : `openid permissions global.wildcard offline_access`

Pour finaliser la configuration de la sécurité :

1. Cliquez sur **Créer un connecteur** en haut de la page pour créer le connecteur et générer l’URL de redirection.

2. Copiez l’URL de redirection. Dans votre client d’API public Vantage, sous **URL de redirection autorisées**, cliquez sur **Ajouter une URL de redirection** et collez l’URL.

3. Dans votre client d’API public Vantage, sous **Paramètres des flux OAuth 2.0** :
   * Désactivez **Exiger PKCE pour le flux de code d’autorisation**.
   * Activez **Autoriser l’émission de jetons de rafraîchissement pour actualiser les jetons d’accès**.

<div id="create-a-connection">
  ## Créer une connexion
</div>

Dans l’onglet **Test**, choisissez **Nouvelle connexion**. Une fenêtre contextuelle de connexion s’ouvre. Saisissez votre nom d’utilisateur et votre mot de passe ABBYY Vantage, puis veillez à sélectionner le même compte que celui qui contient le client d’API public pour Microsoft Power Automate.

<div id="test-the-connection">
  ## Tester la connexion
</div>

Une fois connecté à votre compte Vantage, la nouvelle connexion apparaît dans la liste Connections. Vérifiez que le connecteur fonctionne correctement en testant une opération. Sélectionnez `ListAllAvailableSkills` dans la liste Operations, puis cliquez sur **Tester l’opération**. Si cela ne fonctionne pas, reprenez les étapes précédentes pour vous assurer que tous les champs ont été correctement configurés.

<div id="import-demo-flows">
  ## Flows de démonstration Import
</div>

Voir les détails du [processus d’exemple](/fr/vantage/connectors/ms-powerautomate/sample-process).

<div id="modifying-flows">
  ## Modification des flows
</div>

Vous pouvez modifier un flow de démonstration ou créer le vôtre. Si vous devez travailler avec un jeu de données spécifique issu d’une réponse au format JSON, vous pouvez modifier le JSON Schema. Pour obtenir le JSON Schema, ouvrez le Swagger UI et appelez la méthode requise. Le Swagger UI est disponible à l’adresse suivante :

<VantageRegion>
  ```
  https://vantage-[region].abbyy.com/api/index.html?urls.primaryName=publicapi%2Fv1
  ```
</VantageRegion>

<div id="next-steps">
  ## Étapes suivantes
</div>

Consultez les [notes de version](/fr/vantage/connectors/ms-powerautomate/release-notes) du connecteur Microsoft Power Automate.
