- Introduction
- Démarrage
- Modélisation du processus avec BPMN
- Compréhension de la modélisation des processus
- 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
- Modélisation des processus avec la gestion des incidents
- Concevoir un schéma d'entité de cas persistant
- 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)
- Gestion des instances de cas en cours : suspendre, migrer et réessayer
- Dictionnaire des composants de gestion des incidents Maestro
- Modélisation des processus avec Flow
- Implémentation des processus
- Débogage
- Simulation
- Publication et mise à niveau des processus agentiques
- Scénarios de mise en œuvre courants
- Extraire et valider des documents
- Opérations de processus
- Surveillance des processus
- Optimisation des processus
- Informations de référence
Extraire des champs structurés de documents à l’aide de modèles d’extraction IXP.
Le nœud Extraire extrait les champs structurés d'un document (facture, reçu, formulaire ou contrat) à l'aide d'un modèle UiPath Intelligent eXtraction Platform (IXP), et renvoie le résultat pour que les nœuds en aval puissent agir. Utilisez-le lorsqu'une étape de votre processus nécessite que des données saisies soient extraites d'un fichier non structuré.
Avant de commencer: Déployer un modèle IXP
Le nœud d'extraction ne dispose pas d'extracteur intégré. Il fait apparaître les modèles IXP déployés dans votre organisation, de sorte que vous devez déployer au moins un modèle d'extraction IXP avant que les options n'apparaissent sous le nœud.
- Créez et déployez un modèle dans IXP. Consultez la documentation IXP pour de plus amples 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 complet,
<Folder>/<ModelName>(par exemple,Shared/Finance/invoice-extraction). - Si aucun modèle n'est déployé, la catégorie Extraire s'affiche dans la palette, mais reste vide.
Votre locataire doit également avoir activé les services IXP et Document Understanding (Admin → Locataire → Services). Le nœud d'extraction dépend de l'enregistrement des deux, même lorsque vous utilisez uniquement des modèles 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 chargent depuis Integration Service. Dans la palette des nœuds, les modèles déployés apparaissent sous Traitement des documents → Extraire, chacun comme son propre nœud. L'ajout d'un nœud à la zone de dessin crée un nœud d'extraction lié à ce modèle spécifique.
Lorsque le nœud s'exécute, Flow envoie le document au modèle IXP, le modèle le numérise et l'extraire, 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 la fin du modèle avant de continuer, prévoyez donc du temps pour les documents volumineux.
Configuration
Configurez le nœud d’extraction 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 IXP déployé à exécuter. Ceci est défini lorsque vous ajoutez le nœud depuis la palette, et le dossier et la version du modèle sont automatiquement liés. |
| 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 antérieure. |
| Page Range | Non (No) | Vide | Pages à partir desquelles extraire, par exemple 1-3. Laissez ce champ vide pour traiter l'ensemble du document. |
Sortie
Le nœud d'extraction 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 Lire le résultat. |
error | Détails de l'erreur lorsque le nœud échoue. Contient code, message, detail, category et status. Disponible lorsque la gestion des erreurs du nœud est connectée. |
Lire le résultat
L’extraction a pour résultat une structure imbriquée. Les champs extraits se trouvent sous ExtractionResult.ResultsDocument.Fields et la valeur de chaque champ se trouve 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 de 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 champ comportent des espaces et des casses du schéma du modèle (Invoice No., Vendor Name), une recherche normalisée est plus robuste:
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 profond 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 comporte IsMissing: true et un tableau Values vide ou nul. Protégez toujours avec Values?.[0] (comme le font les extraits ci-dessus) afin qu'un champ manquant soit lu comme undefined plutôt que d'être généré.
Scores de confiance
Chaque valeur extraite porte un Confidence et un OcrConfidence, tous deux flottants de 0 à 1 où le plus élevé est plus certain. Ils se trouvent sur l'objet de valeur, au niveau de Values[0].Confidence. Une valeur de -1.0 est un sentiment qui signifie « non applicable» (par exemple, sur les lignes d'en-tête du tableau). Filtrez-les avant de comparer. Utilisez un nœud de décision pour acheminer les extractions peu fiables vers une tâche humaine pour qu'elles soient révisées.
Champs de table
Un champ dont FieldType est Table tient ses lignes sous Values, et non sous 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 d’extraction prend en charge une gestion des erreurs. Si l'extraction échoue et que la gestion des erreurs est connectée, l'exécution est redirigée vers le chemin d'erreur avec l'objet d'erreur au niveau de $vars.<nodeName>.error. Reportez-vous à la section Gestion des erreurs pour de plus amples informations.
Remarques
- La liste des modèles sous la catégorie Extraire reflète ce qui est déployé dans votre organisation au moment de la conception. Déployez ou redéployez un modèle dans IXP, puis rouvrez la palette pour voir la modification.
- Les valeurs des champs sont toujours des chaînes sur
Values[0].Value, même pour les dates et les chiffres. Le modèle peut également renvoyer des parties analysées sousDerivedFields(par exemple,Year,Month,Dayà une date ouCityetCountryà une adresse).