- Einleitung
- Erste Schritte
- Prozessmodellierung mit BPMN
- Grundlagen der Prozessmodellierung
- Öffnen der Modellierungsarbeitsfläche
- Modellierung Ihres Prozesses
- Ausrichten und Verbinden von BPMN-Elementen
- Autopilot for Maestro (Vorschau)
- Prozess-Repository
- Prozessmodellierung mit Fallverwaltung
- Entwerfen eines persistenten Fallentitätsschemas
- Definieren von Fallschlüsseln (System vs. extern)
- Erstellen von Task-E/A- und Write-Back-Verträgen
- Austrittsregeln und Beendigung der frühen Phase
- Modellieren von primären und sekundären Phasen
- Auslösen eines Falls aus Data Fabric
- Implementieren von Personas und Berechtigungen auf Phasenebene
- Festlegen von SLAs und automatisierten Eskalationsregeln
- Konfigurieren einer Nacharbeitsschleife (Wiedereintritt)
- Verwalten von Live-Fallinstanzen: Anhalten, migrieren und wiederholen
- Maestro-Komponentenwörterbuch für die Fallverwaltung
- Prozessmodellierung mit Flow
- Skript
- HTTP-Anfrage (HTTP Request)
- Datentransformation
- Entscheidung
- Umschalten (Switch)
- Schleife
- Verzögerung (Delay)
- Zusammenführen
- Beenden
- Terminate
- Pseudo
- Manual Trigger
- Geplanter Trigger
- Mitarbeiter
- BPMN-Prozess (Business Process Model and Notation).
- RPA-Workflow
- API-Workflow
- Menschliche Aufgabe
- Extrahieren
- Zusammenfassen
- Connector-Knoten
- Prozessimplementierung
- Debugging
- Simulieren
- Veröffentlichen und Aktualisieren von agentischen Prozessen
- Häufige Implementierungsszenarien
- Extraktieren und Validieren von Dokumenten
- Prozessabläufe
- Prozessüberwachung
- Prozessoptimierung
- Referenzinformationen
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.
| Feld | Erforderlich | Standard | Beschreibung |
|---|---|---|---|
| Modell | Ja | Ausgewähltes Modell | Bereitgestelltes 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. |
| Document | Ja | Keine | Datei, 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. |
| Seitenbereich | Nein | Leer | Seiten, 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.
| Variable | Beschreibung |
|---|---|
output | Extraktionsergebnis. Enthält ein einzelnes ExtractionResult -Objekt mit Dokumentmetadaten, extrahierten Feldern und Konfidenzbewertungen pro Feld. Die Form ist unter Lesen des Ergebnisses detailliert beschrieben. |
error | Fehlerdetails, 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");
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 unterDerivedFieldszurückgeben (z. B.Year,Month,Dayfür ein Datum oderCityundCountryfür eine Adresse).