- Einleitung
- Erste Schritte
- Erstellen mit Maestro BPMN
- Grundlegendes zur BPMN-Modellierung von Maestro
- Öffnen der Modellierungsarbeitsfläche
- Modellierung Ihres Prozesses
- Ausrichten und Verbinden von BPMN-Elementen
- Autopilot for Maestro (Vorschau)
- Prozess-Repository
- Einen einfachen BPMN-Prozess implementieren
- Einen komplexen BPMN-Prozess implementieren
- Debugging
- Simulieren
- Auswertungen (Vorschau)
- Häufige Implementierungsszenarien
- Erstellen mit Maestro Case
- Einführung in Maestro Case
- Maestro BPMN vs. Maestro Case: Wann wird Case Management verwendet?
- Der Lebenszyklus von Maestro Case: Vom Ereignis-Trigger zum App-Erlebnis
- Erstellen Sie Ihren ersten Fall mit Maestro Case
- Maestro Case mit einem Codierungs-Agent erstellen (Vorschau)
- 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)
- Konfigurieren und Testen des Case Manager-Agents (Vorschau)
- Eingabe- und Ausgabevertrag für den Fall Manager
- Wörterbuch für die Komponente „Maestro Case“.
- Erstellen mit Maestro Flow
- Skript
- HTTP-Anfrage (HTTP Request)
- Datentransformation
- Entscheidung
- Umschalten (Switch)
- Schleife
- Verzögerung (Delay)
- Zusammenführen
- Beenden
- Terminate
- Pseudo
- Manual Trigger
- Geplanter Trigger
- Autonomer Agent
- BPMN-Prozess (Business Process Model and Notation).
- RPA-Workflow
- API-Workflow
- Personalwesen
- Extrahieren
- Zusammenfassen
- Connector-Knoten
- Maestro Automate
- Integrationen
- Betrieb
- Überwachung
- Optimieren
- Referenzinformationen
Extrahieren Sie strukturierte Felder aus Dokumenten mithilfe von IXP-Extraktionsmodellen (Intelligente Datenextraktion und Verarbeitung).
Der Extract-Knoten extrahiert mithilfe eines Modells der UiPath Intelligent eXtraction Platform (IXP) strukturierte Felder aus einem Dokument (einer Rechnung, einem Beleg, einem Formular oder einem Vertrag) und gibt das Ergebnis zur weiteren Verarbeitung an nachgelagerte Knoten zurück. Verwenden Sie ihn, wenn ein Schritt in Ihrem Prozess typisierte Daten aus einer unstrukturierten Datei extrahieren muss.
Bevor Sie beginnen: Bereitstellung eines Modells für Intelligente Datenextraktion und Verarbeitung (IXP)
Der Extract-Knoten verfügt über keinen eigenen integrierten Extraktor. Er zeigt die in Ihrer Organization bereitgestellten IXP-Modelle an. Sie müssen also mindestens ein IXP-Extraktionsmodell bereitstellen, bevor unter dem Knoten Optionen angezeigt werden.
- Ein Modell in Intelligente Datenextraktion und Verarbeitung (IXP) erstellen und die Bereitstellung durchführen. Weitere Informationen finden Sie in der 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 ist, wird die Kategorie „Extract“ 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 Extract-Knoten setzt voraus, dass beide Dienste bereitgestellt sind, auch wenn Sie nur IXP-Modelle verwenden.
Wie es funktioniert
Extraktionsmodelle werden dynamisch aus Ihrer Organization geladen, genauso wie Connector-Knoten aus Integration Service geladen werden. In der Knotenpalette werden bereitgestellte Modelle unter „Document processing → Extract“ angezeigt, jeweils als eigener Knoten. Wenn Sie einen zur Arbeitsfläche hinzufügen, wird ein Extract-Knoten 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 ist, bevor die Ausführung fortgesetzt wird. Planen Sie daher bei großen Dokumenten ausreichend Zeit ein.
Konfiguration
Konfigurieren Sie den Extract-Knoten im Eigenschaftenbereich, nachdem Sie ihn zur 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; der Ordner und die Version des Modells werden automatisch zugeordnet. |
| Document | Ja | Keine | Datei, aus der extrahiert werden soll. Binden Sie es an eine Datei, die zuvor im Flow erstellt wurde, z. B. einen Anhang aus einem Trigger oder eine Ausgabe eines vorherigen Knotens. |
| Seitenbereich | Nein | Leer | Seiten, aus denen extrahiert werden soll, z. B. 1-3. Lassen Sie es leer, um das gesamte Dokument zu verarbeiten. |
Ausgabe
Der Summarize-Knoten gibt sein Ergebnis unter $vars.<nodeName>.output zurück.
| Variable | Beschreibung |
|---|---|
output | Extraktionsergebnis. Enthält ein einzelnes ExtractionResult-Objekt mit Dokumentmetadaten, extrahierten Feldern und Konfidenzwerten pro Feld. Die Struktur wird unter Lesen des Ergebnisses beschrieben. |
error | Fehlerdetails, wenn der Knoten fehlschlägt. Enthält code, message, detail, category und status. Verfügbar, wenn der Error-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 Feldes befindet sich in einem Values-Array und nicht direkt im 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 Script-Knoten zu lesen, greifen Sie auf ExtractionResult.ResultsDocument.Fields zu, suchen Sie das Feld anhand von 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 von 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 Struktur 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. Sichern Sie dies immer mit Values?.[0] (wie in den oben genannten Snippets), damit ein fehlendes Feld als undefined gelesen wird, anstatt eine Ausnahme auszulösen.
Konfidenz-Scores
Jeder extrahierte Wert hat ein Confidence und ein OcrConfidence, beides floats von 0 bis 1, wobei „höher“ sicherer ist. Sie befinden sich auf dem Wertobjekt unter Values[0].Confidence. Der Wert -1.0 ist ein Sentinel, der „nicht anwendbar“ bedeutet; (z. B. in Tabellenheaderzeilen), also filtern Sie diese vor dem Vergleich heraus. Verwenden Sie einen Entscheidungsknoten , um Extraktionen mit geringer Zuverlässigkeit zur Überprüfung an einen menschlichen Knoten weiterzuleiten.
Tabellenfelder
Ein Feld, dessen FieldType Table ist, enthält seine Zeilen unter Values und nicht in der oben genannten Skalarstruktur. Jeder Tabellenwert enthält ein Components-Array (eine Header-Zeile und eine Body-Zeile), und jede Komponente enthält wiederum die Zellfelder unter ihrem eigenen Components, jeweils mit dem vertrauten Values[0].Value. Gehen Sie rekursiv durch Components, um einzelne Zellen zu erreichen.
Fehlerbearbeitung
Der Summarize-Knoten unterstützt einen Error-Handle. Wenn die Extraktion fehlschlägt und der Error-Handle verbunden ist, wird die Ausführung mit dem Fehlerobjekt unter $vars.<nodeName>.error an den Error-Pfad weitergeleitet. Weitere Informationen finden Sie unter Fehlerbehandlung.
Hinweise
- Die Liste der Modelle in der Kategorie „Extract“ spiegelt wider, was zur Entwurfszeit in Ihrer Organization bereitgestellt ist. Stellen Sie ein Modell in IXP bereit oder stellen Sie es erneut bereit und öffnen Sie anschließend die Palette, um die Änderung anzuzeigen.
- Feldwerte sind immer Strings in
Values[0].Value, auch für Daten und Zahlen. Das Modell kann auch geparste Teile unterDerivedFieldszurückgeben (z. B.Year,Month,Daybei einem Datum oderCityundCountrybei einer Adresse).