UiPath Documentation
maestro
latest
false
Benutzerhandbuch zu Maestro
Wichtig :
Es kann 1–2 Wochen dauern, bis die Lokalisierung neu veröffentlichter Inhalte verfügbar ist.

Extrahieren

Extrahieren Sie strukturierte Felder aus Dokumenten mithilfe von IXP-Extraktionsmodellen.

Der Extrahierungsknoten ruft strukturierte Felder aus einem Dokument (eine Rechnung, einen Beleg, ein Formular oder einen Vertrag) mithilfe eines UiPath Intelligent eXtraction Platform (IXP)-Modells ab und gibt das Ergebnis an nachgelagerte Knoten zurück, damit diese bearbeitet werden können. Verwenden Sie sie, wenn ein Schritt in Ihrem Prozess typisierte Daten aus einer unstrukturierten Datei erfordert.

Bevor Sie beginnen: Stellen Sie ein IXP-Modell bereit

Der Extrahierungsknoten verfügt nicht über einen eigenen integrierten Extraktor. Es zeigt die in Ihrer Organisation bereitgestellten IXP-Modelle an, daher müssen Sie mindestens ein IXP-Extraktionsmodell bereitstellen, bevor Optionen unter dem Knoten angezeigt werden.

  • Erstellen und Bereitstellen eines Modells in IXP. Weitere Informationen finden Sie in der Intelligente Datenextraktion und Verarbeitung (IXP)-Dokumentation .
  • Das Modell muss in einem Ordner bereitgestellt werden, auf den Sie zugreifen können. Modelle werden mit ihrem vollqualifizierten Namen <Folder>/<ModelName> (z. B. Shared/Finance/invoice-extraction) aufgeführt.
  • Wenn kein Modell bereitgestellt wird, wird die Kategorie „Extraktieren “ in der Palette angezeigt, ist aber leer.

Für Ihren Mandanten müssen außerdem sowohl IXP- als auch Document Understanding -Dienste aktiviert sein (Administrator → Mandant → Dienste). Der Extraktionsknoten hängt davon ab, dass beide bereitgestellt werden, auch wenn Sie nur IXP-Modelle verwenden.

Wie es funktioniert

Extraktionsmodelle werden dynamisch aus Ihrer Organisation geladen, so wie Connector-Knoten aus dem Integration Service geladen werden. In der Knotenpalette werden unter Dokumentverarbeitung → Extrahieren jedes als eigener Knoten angezeigt. Wenn Sie eine zur Arbeitsfläche hinzufügen, wird ein Extraktionsknoten erstellt, der an dieses bestimmte Modell gebunden ist.

Wenn der Knoten ausgeführt wird, sendet Flow das Dokument an das IXP-Modell, das Modell digitalisiert und extrahiert es und das strukturierte Ergebnis wird auf der Datei output des Knotens zurückgegeben. Die Extraktion wird asynchron ausgeführt: Der Knoten wartet, bis das Modell fertig gestellt ist, bevor er fortfährt. Planen Sie also Zeit für große Dokumente ein.

Konfiguration

Konfigurieren Sie den Extraktionsknoten im Eigenschaftenbereich, nachdem Sie ihn der Arbeitsfläche hinzugefügt haben.

FeldErforderlichStandardBeschreibung
ModellJaAusgewähltes ModellBereitgestelltes IXP-Modell zur Ausführung. Dies wird festgelegt, wenn Sie den Knoten aus der Palette hinzufügen, und der Ordner und die Version des Modells werden automatisch gebunden.
DocumentJaKeineDatei, aus der extrahiert werden soll. Binden Sie es an eine Datei, die zuvor im Flow erstellt wurde, z. B. ein Anhang aus einem Trigger oder eine vorherige Knotenausgabe.
SeitenbereichNeinLeerSeiten, aus denen extrahiert werden soll, z. B. 1-3. Lassen Sie ihn leer, um das gesamte Dokument zu verarbeiten.

Ausgabe

Der Extraktionsknoten gibt sein Ergebnis unter $vars.<nodeName>.output zurück.

VariableBeschreibung
outputExtraktionsergebnis. Enthält ein einzelnes ExtractionResult -Objekt mit Dokumentmetadaten, extrahierten Feldern und Konfidenzbewertungen pro Feld. Die Form ist unter Lesen des Ergebnisses detailliert beschrieben.
errorFehlerdetails, wenn der Knoten fehlschlägt. Enthält code, message, detail, category und status. Verfügbar, wenn das Fehler-Handle des Knotens verbunden ist.

Lesen des Ergebnisses

Das Extraktionsergebnis ist eine verschachtelte Struktur. Extrahierte Felder befinden sich unter ExtractionResult.ResultsDocument.Fields und der Wert jedes Felds befindet sich in einem Values Array, nicht direkt auf dem Feld:

$vars.<nodeName>.output = {
  ExtractionResult: {
    DocumentId: "<id>",
    ResultsVersion: 0,
    ResultsDocument: {
      DocumentTypeField: { Value: "Invoice", Confidence: 1.0, OcrConfidence: -1.0 },
      Fields: [
        {
          FieldId: "Test.Financial.Invoice.Total", // model-qualified id
          FieldName: "Total",                        // leaf label, use this for lookups
          FieldType: "Text",
          IsMissing: false,
          Values: [
            { Value: "12.57", Confidence: 0.604, OcrConfidence: 0.604, Components: [], Reference: {} }
          ]
        }
        // ...one entry per field in the model schema
      ]
    }
  }
}
$vars.<nodeName>.output = {
  ExtractionResult: {
    DocumentId: "<id>",
    ResultsVersion: 0,
    ResultsDocument: {
      DocumentTypeField: { Value: "Invoice", Confidence: 1.0, OcrConfidence: -1.0 },
      Fields: [
        {
          FieldId: "Test.Financial.Invoice.Total", // model-qualified id
          FieldName: "Total",                        // leaf label, use this for lookups
          FieldType: "Text",
          IsMissing: false,
          Values: [
            { Value: "12.57", Confidence: 0.604, OcrConfidence: 0.604, Components: [], Reference: {} }
          ]
        }
        // ...one entry per field in the model schema
      ]
    }
  }
}

Um den Wert eines einzelnen Felds in einem nachgelagerten Skriptknoten zu lesen, erreichen Sie ExtractionResult.ResultsDocument.Fields, suchen Sie das Feld anhand seiner FieldName und lesen Sie Values[0].Value:

const value =
  $vars.extract1.output
    ?.ExtractionResult?.ResultsDocument?.Fields
    ?.find((f) => f.FieldName === "Total")
    ?.Values?.[0]?.Value;
const value =
  $vars.extract1.output
    ?.ExtractionResult?.ResultsDocument?.Fields
    ?.find((f) => f.FieldName === "Total")
    ?.Values?.[0]?.Value;

Da Feldnamen Leerzeichen und Groß-/Kleinschreibung aus dem Modellschema (Invoice No., Vendor Name) enthalten, ist eine normalisierte Suche robuster:

const fields = $vars.extract1.output?.ExtractionResult?.ResultsDocument?.Fields || [];
const norm = (s) => String(s || "").toLowerCase().replace(/\s+/g, "");
const get = (name) => {
  const f = fields.find((x) => norm(x.FieldName) === norm(name));
  return f && Array.isArray(f.Values) && f.Values[0] ? f.Values[0].Value : undefined;
};

const total = get("Total");
const vendor = get("Vendor Name");
const fields = $vars.extract1.output?.ExtractionResult?.ResultsDocument?.Fields || [];
const norm = (s) => String(s || "").toLowerCase().replace(/\s+/g, "");
const get = (name) => {
  const f = fields.find((x) => norm(x.FieldName) === norm(name));
  return f && Array.isArray(f.Values) && f.Values[0] ? f.Values[0].Value : undefined;
};

const total = get("Total");
const vendor = get("Vendor Name");
Hinweis:

Häufiger Fehler: Lesen Fields.find((f) => f.FieldName === "Total").Value gibt undefined zurück. Die Felder befinden sich unter ResultsDocument.Fields (eine Ebene tiefer als ExtractionResult), und der Wert befindet sich im Values -Array, nicht direkt im Feld. Beispiele, die aus älteren Document Understanding-Workflows kopiert wurden, verwenden eine flachere Form und funktionieren hier nicht.

Fehlende Felder

Ein Feld, das das Modell nicht finden konnte, hat IsMissing: true und ein Values -Array, das leer oder NULL ist. Schützen Sie immer mit Values?.[0] (wie es die obigen Snippets tun), sodass ein fehlendes Feld als undefined anstatt ausgelöst wird.

Konfidenzbewertungen

Jeder extrahierte Wert hat ein Confidence und ein OcrConfidence, beide float von 0 auf 1 , wobei „höher“ sicherer ist. Sie befinden sich auf dem Wertobjekt unter Values[0].Confidence. Ein Wert von -1.0 ist ein Sentinel, der „nicht anwendbar“ bedeutet (z. B. in Tabellenheaderzeilen). Filtern Sie diese vor dem Vergleich heraus. Verwenden Sie einen Entscheidungsknoten , um Extraktionen mit geringer Zuverlässigkeit zur Überprüfung an eine menschliche Aufgabe weiterzuleiten.

Tabellenfelder

Ein Feld, dessen FieldType Table ist, enthält seine Zeilen unter Values, nicht unter der obigen Skalarform. Jeder Tabellenwert hat ein Components -Array (eine Header -Zeile und eine Body -Zeile), und jede Komponente enthält wiederum die Zellfelder unter ihrem eigenen Components, jedes mit dem vertrauten Values[0].Value. Gehen Sie Components rekursiv, um einzelne Zellen zu erreichen.

Fehlerbearbeitung

Der Extraktionsknoten unterstützt ein Fehler-Handle. Wenn die Extraktion fehlschlägt und das Fehlerhandle verbunden ist, wird die Ausführung an den Fehlerpfad mit dem Fehlerobjekt unter $vars.<nodeName>.error weitergeleitet. Weitere Informationen dazu finden Sie unter Fehlerbehandlung .

Hinweise

  • Die Liste der Modelle unter der Kategorie Extrahieren spiegelt das wider, was in Ihrer Organisation zur Entwurfszeit bereitgestellt wird. Stellen Sie ein Modell in IXP bereit oder stellen Sie es erneut bereit, und öffnen Sie die Palette erneut, um die Änderung anzuzeigen.
  • Feldwerte sind immer Zeichenfolgen in Values[0].Value, auch für Datumsangaben und Zahlen. Das Modell kann auch geparste Teile unter DerivedFields zurückgeben (z. B. Year, Month, Day für ein Datum oder City und Country für eine Adresse).

War diese Seite hilfreich?

Verbinden

Benötigen Sie Hilfe? Support

Möchten Sie lernen? UiPath Academy

Haben Sie Fragen? UiPath-Forum

Auf dem neuesten Stand bleiben