> ## 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.

# ABBYY Vantage Connector für Microsoft Power Automate

> Installieren und konfigurieren Sie den ABBYY Vantage Custom Connector für Microsoft Power Automate, einschließlich der Einrichtung von OAuth 2.0 und des Verbindungstests.

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>;
};

Der ABBYY Vantage Connector für Microsoft Power Automate ermöglicht Entwicklern, Automatisierungsflows um Funktionen für Datenextraktion und Dokumentklassifizierung zu erweitern. Es handelt sich um ein Paket zur manuellen Installation, das weitergegeben werden darf.

<div id="prerequisites">
  ## Voraussetzungen
</div>

<Note>
  Für die Verwendung dieses Connectors ist eine Premium-Lizenz für Power Automate erforderlich.
</Note>

Sie benötigen einen Vantage-Mandanten mit einem konfigurierten [Public API-Client](/de/vantage/documentation/tenant-admin/tenant-management/configure-client). Folgende Einstellungen sind für diesen Connector erforderlich:

* **Authorized Redirect URL**: Diese erhalten Sie später in diesem Einrichtungsleitfaden aus Power Automate. Behalten Sie die Redirect-URL von abbyy.com bei.
* **Client ID**: Die ID Ihres Public API-Clients.
* **Client Secret**: Ihr Client Secret.
* Deaktivieren Sie **Require PKCE for Authorization Code Flow**.
* Aktivieren Sie **Allow issuing refresh tokens to refresh access tokens**.
* Aktivieren Sie **Allow client credentials flow**. Für Role(s) wird `Skill User` empfohlen.

<Accordion title="Beispiel eines konfigurierten API-Clients">
  <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="ABBYY Vantage-Bildschirm des Public API-Clients" width="1684" height="1688" data-path="images/vantage/developer/connectors/ms-powerautomate/public-api-client.jpg" />
</Accordion>

Sie benötigen die Vantage-Mandanten-ID im Schritt zur Sicherheitskonfiguration.

<Accordion title="Tenant ID finden">
  <Steps>
    <Step title="Mandantenkonfiguration öffnen">
      Klicken Sie in Vantage im linken Bereich auf **Konfiguration**.
    </Step>

    <Step title="Tenant ID kopieren">
      Klicken Sie auf **General** und suchen Sie das Feld **Tenant ID**.

      <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="ABBYY Vantage-Bildschirm der Mandantenkonfiguration" width="1414" height="610" data-path="images/vantage/developer/connectors/ms-powerautomate/finding-tenant-id.jpg" />
    </Step>
  </Steps>
</Accordion>

<div id="installing-the-connector">
  ## Installieren des Connectors
</div>

Laden Sie zunächst den [Connector](https://www.abbyy.com/marketplace/assets/host/abbyy/connector/microsoft-power-automate/) aus dem ABBYY Marketplace herunter.

1. Öffnen Sie Microsoft Power Automate, und wählen Sie dann im Menü auf der linken Seite **Data > Custom connectors** aus. Möglicherweise müssen Sie **More** auswählen, um diese Option zu finden.

2. Klicken Sie auf **+ New custom connector** und wählen Sie **Import an OpenAPI file** aus.

3. Geben Sie einen Namen für den Connector ein, zum Beispiel „ABBYY Vantage“.

4. Suchen Sie die Datei `ABBYY-Vantage-ProcessingAPI.swagger.json` und öffnen Sie sie.

<div id="configure-general-information">
  ### Allgemeine Informationen konfigurieren
</div>

1. \[Optional] Laden Sie ein Connectorsymbol hoch. Verwenden Sie dazu das im Connector-Download enthaltene ABBYY Vantage-Logo (`Vantage-Square-icon.png`).

2. Setzen Sie die **Host**-URL auf die Adresse Ihres Vantage-Servers. Dieselbe Host-Adresse sollte in den Feldern **Authorization URL** und **Token URL** verwendet werden.

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

<div id="configure-security">
  ### Sicherheit konfigurieren
</div>

Setzen Sie **Authentication type** auf **OAuth 2.0** und füllen Sie die folgenden Felder mit den Werten aus Ihrem Vantage Public API-Client aus:

* **Client ID**: Ihre Public API-Client-ID.
* **Client secret**: Ihr Public API-Client-Secret.
* **Authorization URL**: `https://vantage-[region].abbyy.com/auth2/[tenant-id]/connect/authorize`
* **Token URL**: `https://vantage-[region].abbyy.com/auth2/[tenant-id]/connect/token`
* **Refresh URL**: `https://vantage-[region].abbyy.com/auth2/[tenant-id]/connect/token`
* **Scope**: `openid permissions global.wildcard offline_access`

So schließen Sie die Sicherheitskonfiguration ab:

1. Klicken Sie oben auf der Seite auf **Create Connector**, um den Connector zu erstellen und die Redirect-URL zu generieren.

2. Kopieren Sie die Redirect-URL. Klicken Sie in Ihrem Vantage Public API-Client unter **Authorized Redirect URLs** auf **Add Redirect URL** und fügen Sie die URL ein.

3. Führen Sie in Ihrem Vantage Public API-Client unter **OAuth 2.0 Flows Settings** folgende Schritte aus:
   * Deaktivieren Sie **Require PKCE for Authorization Code Flow**.
   * Aktivieren Sie **Allow issuing refresh tokens to refresh access tokens**.

<div id="create-a-connection">
  ## Eine Verbindung erstellen
</div>

Wählen Sie auf der Registerkarte **Test** **New Connection** aus. Ein Anmeldefenster wird geöffnet. Geben Sie Ihren ABBYY Vantage-Benutzernamen und Ihr Kennwort ein und achten Sie darauf, dass Sie dasselbe Konto auswählen, dem der Public API-Client für Microsoft Power Automate zugeordnet ist.

<div id="test-the-connection">
  ## Verbindung testen
</div>

Nachdem Sie sich erfolgreich bei Ihrem Vantage-Konto angemeldet haben, wird die neue Verbindung in der Liste Connections angezeigt. Vergewissern Sie sich, dass der Connector ordnungsgemäß funktioniert, indem Sie einen Vorgang testen. Wählen Sie `ListAllAvailableSkills` aus der Liste Operations aus und klicken Sie auf **Test operation**. Wenn das nicht funktioniert, überprüfen Sie die vorherigen Schritte, um sicherzustellen, dass alle Felder korrekt konfiguriert wurden.

<div id="import-demo-flows">
  ## Demo-Flows für die Import-Stufe
</div>

Details finden Sie unter [Beispielprozess](/de/vantage/connectors/ms-powerautomate/sample-process).

<div id="modifying-flows">
  ## Flows ändern
</div>

Sie können einen Demo-Flow ändern oder einen eigenen erstellen. Wenn Sie mit einem bestimmten Datensatz aus einer JSON-basierten Antwort arbeiten müssen, können Sie das JSON-Schema anpassen. Um das JSON-Schema abzurufen, öffnen Sie die Swagger UI und rufen Sie die erforderliche Methode auf. Die Swagger UI ist unter folgender Adresse verfügbar:

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

<div id="next-steps">
  ## Nächste Schritte
</div>

Lesen Sie die [Versionshinweise](/de/vantage/connectors/ms-powerautomate/release-notes) für den Microsoft Power Automate Connector.
