- Introduction
- Démarrage
- Créer avec Maestro BPMN
- Compréhension de la modélisation BPMN de Maestro
- Ouverture du canevas de modélisation
- Modéliser votre processus
- Alignement et connexion des éléments BPMN
- Autopilot pour Maestro (aperçu)
- Référentiel de processus
- Implémenter un processus BPMN simple
- Implémenter un processus BPMN complexe
- Débogage
- Simulation
- Evaluations (Preview)
- Scénarios de mise en œuvre courants
- Building with Maestro Case
- Présentation de Maestro Case
- Maestro BPMN vs. Maestro Case : quand utiliser la gestion des incidents
- Le cycle de vie de Maestro Case : du déclencheur d'événement à l'expérience de l'application
- Créer votre premier incident avec Maestro Case
- Build a Maestro Case with a coding agent (preview)
- Définition des clés de cas (système vs. externe)
- Établissement des contrats d'E/S et de réécriture de la tâche
- Règles de sortie et fin de l’étape précoce
- Modélisation des étapes primaires et secondaires
- Déclencher un cas à partir de Data Fabric
- Implémentation des personas et des autorisations au niveau de l'étape
- Définition des SLA et des règles d'escalade automatisées
- Configuration d'une boucle de retraitement (renouvellement)
- Configuring and testing the Case Manager Agent (preview)
- Contrat d’entrée et de sortie du gestionnaire de cas
- Dictionnaire des composants de Maestro Case
- Créer avec Maestro Flow
- Maestro Automate
- Intégrations
- Opérations
- Surveillance
- Optimisation
- Informations de référence
Extrayez des champs structurés de documents à l'aide de modèles d'extraction basés sur l'Extraction et traitement intelligents (IXP).
Le nœud Extraire extrait des champs structurés d'un document (une facture, un reçu, un formulaire ou un contrat) à l'aide d'un modèle d'Extraction et de traitement intelligents (IXP) UiPath et renvoie le résultat pour que les nœuds en aval puissent agir en conséquence. Utilisez-le lorsqu'une étape de votre processus nécessite que des données typées soient retirées d'un fichier non structuré.
Avant de commencer : déployez un modèle d'extraction et traitement intelligents (IXP)
Le nœud Extraire n'a aucun extracteur intégré. Il affiche les modèles d'extraction et traitement intelligents (IXP) en déploiement dans votre organisation, de sorte que vous devez effectuer un déploiement d'au moins un modèle d'extraction IXP avant que des options n'apparaissent sous le nœud.
- Créez et déployez un modèle dans Extraction et traitement intelligents (IXP). Reportez-vous à la documentation IXP pour plus d'informations.
- Le modèle doit être déployé dans un dossier auquel vous pouvez accéder. Les modèles sont répertoriés par leur nom entièrement qualifié,
<Folder>/<ModelName>(par exemple,Shared/Finance/invoice-extraction). - Si aucun modèle n'est déployé, la catégorie Extraire apparaît dans la palette, mais est vide.
Votre locataire doit également avoir les services Extraction et traitement intelligents (IXP) et Document Understanding activés (Admin → Locataire → Services). Le nœud Extraction dépend du fait que les deux sont provisionnés, même lorsque vous utilisez uniquement des modèles d'extraction et traitement intelligents (IXP).
Mode de fonctionnement
Les modèles d'extraction se chargent dynamiquement à partir de votre organisation, de la même manière que les nœuds de connecteur se chargent à partir d'Integration Service. Dans la palette de nœuds, les modèles déployés apparaissent sous Traitement du document → Extraire, chacun comme son propre nœud. L'ajout de l'un d'entre eux à la zone de dessin crée un nœud Extraire lié à ce modèle spécifique.
Lorsque le nœud s'exécute, Flow envoie le document au modèle d'extraction et traitement intelligents (IXP), le modèle le numérise et l'extrait, et le résultat structuré revient sur le output du nœud. L'extraction s'exécute de manière asynchrone : le nœud attend que le modèle se termine avant de continuer, afin de prévoir le temps pour les documents volumineux.
Configuration
Configurez le nœud Extraire dans le panneau Propriétés après l'avoir ajouté à la zone de dessin.
| Champ | Requis | Default | Description |
|---|---|---|---|
| Modèle | Oui (Yes) | Modèle sélectionné | Modèle d'extraction et traitement intelligents (IXP) déployé à exécuter. Cela est défini lorsque vous ajoutez le nœud à partir de la palette et que le dossier et la version du modèle se lient automatiquement. |
| Document | Oui (Yes) | Aucun (None) | Fichier à partir duquel extraire. Liez-le à un fichier produit plus tôt dans le flux, tel qu'une pièce jointe d'un déclencheur ou d'une sortie de nœud précédente. |
| Page Range | Non (No) | Vide | Pages à extraire, par exemple 1-3. Laissez-le vide pour traiter l'ensemble du document. |
Sortie
Le nœud Extraire renvoie son résultat à $vars.<nodeName>.output.
| Variable | Description |
|---|---|
output | Résultat de l'extraction. Contient un seul objet ExtractionResult avec des métadonnées de document, des champs extraits et des scores de confiance par champ. La forme est détaillée dans la section Lecture du résultat. |
error | Détails de l'erreur lorsque le nœud échoue. Contient code, message, detail, category, et status. Disponible lorsque le gestionnaire d'erreurs du nœud est connecté. |
Lecture du résultat
Le résultat de l'extraction est une structure imbriquée. Les champs extraits sont disponibles sous ExtractionResult.ResultsDocument.Fields, et la valeur de chaque champ est dans un tableau Values, et non directement sur le champ :
$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
]
}
}
}
Pour lire la valeur d'un seul champ dans un nœud Script en aval, accédez à ExtractionResult.ResultsDocument.Fields, recherchez le champ par son FieldName, et lisez 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;
Étant donné que les noms de champs comportent des espaces et respectent la casse du schéma du modèle (Invoice No., Vendor Name), une recherche normalisée s'avère plus fiable :
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");
Erreur courante : la lecture de Fields.find((f) => f.FieldName === "Total").Value renvoie undefined. Les champs se trouvent sous ResultsDocument.Fields (un niveau plus bas que ExtractionResult) et la valeur se trouve dans le tableau Values, et non directement sur le champ. Les exemples copiés à partir de workflows Document Understanding hérités utilisent une forme plus plate et ne fonctionneront pas ici.
Champs manquants
Un champ que le modèle n'a pas pu trouver contient IsMissing: true et un tableau Values vide ou nul. Protégez-vous toujours avec Values?.[0] (comme le font les extraits ci-dessus) afin qu'un champ manquant se lise comme undefined plutôt que de provoquer une exception.
Scores de confiance
Each extracted value carries a Confidence and an OcrConfidence, both floats from 0 to 1 where higher is more certain. They sit on the value object, at Values[0].Confidence. A value of -1.0 is a sentinel meaning "not applicable" (for example, on table header rows), so filter those out before comparing. Use a Decision node to route low-confidence extractions to a Human node for review.
Champs de table
Un champ dont le FieldType est Table contient ses lignes sous Values, et non la forme scalaire ci-dessus. Chaque valeur de table porte un tableau Components (une ligne Header et une ligne Body) et chaque composant contient à son tour les champs de cellule sous son propre Components, chacun avec le Values[0].Value familier. Parcourez Components de manière récursive pour atteindre des cellules individuelles.
Gestion des erreurs
Le nœud Extraire prend en charge un gestionnaire d'erreurs. Si l'extraction échoue et que le gestionnaire d'erreurs est connecté, l'exécution est acheminée vers le chemin d'erreur avec l'objet d'erreur à $vars.<nodeName>.error. Reportez-vous à la section Gestion des erreurs pour plus d'informations.
Remarques
- La liste de modèles sous la catégorie Extraire reflète ce qui est déployé dans votre organisation au moment de la conception. Effectuez le déploiement ou le redéploiement d'un modèle dans Extraction et traitement intelligents (IXP), puis rouvrez la palette pour voir la modification.
- Les valeurs de champs sont toujours des chaînes sur
Values[0].Value, même pour les dates et les nombres. Le modèle peut également renvoyer des parties analysées sousDerivedFields(par exemple,Year,Month,Daysur une date, ouCityetCountrysur une adresse).