Cet article décrit l’ordre dans lequel les FlexiLayouts sont mis en correspondance avec les documents et la façon dont les régions de champ sont sélectionnées.
FlexiCapture for Invoices peut utiliser plusieurs types de FlexiLayout lors de la mise en correspondance de la Document Definition :
- Un FlexiLayout générique, utilisé pour traiter toutes les factures et pouvant lui-même inclure deux sous-types :
- Un FlexiLayout principal, utilisé pour détecter les champs de facture standard prédéfinis. Ce FlexiLayout est fourni avec FlexiCapture for Invoices et ne peut pas être modifié.
- Un FlexiLayout supplémentaire, utilisé pour détecter les champs définis par l’utilisateur ainsi que les champs de facture standard dont la logique de détection a été modifiée. Ce FlexiLayout est créé par l’utilisateur.
- Variantes FlexiLayout, utilisées pour traiter les factures de fournisseurs spécifiques. Les variantes FlexiLayout peuvent détecter tous les champs définis dans leur Document Definition respective et peuvent être créées par l’utilisateur ou par FlexiCapture for Invoices lorsqu’il est entraîné sur des factures de fournisseurs spécifiques.
Après la mise en correspondance de la Document Definition avec une facture, le programme obtient un ensemble de régions de champ provenant des différents FlexiLayouts inclus dans la Document Definition.
Étape 1 : Associer le FlexiLayout générique
Appliquer le FlexiLayout principal
Tout d’abord, le programme applique le FlexiLayout principal. L’image de la facture est soumise à une pré-reconnaissance à l’aide des paramètres de pré-reconnaissance spécifiés dans le Document Definition :
- Les langues sont indiquées sous Pays et langues dans l’onglet Paramètre de la définition de document de la boîte de dialogue Document Definition Properties.
- Le mode de pré-reconnaissance (Fast, Balanced, Normal ou Accurate) est spécifié dans l’onglet FlexiLayout de la boîte de dialogue Document Definition Properties.
L’application du FlexiLayout principal permet au programme d’obtenir :
- L’ID du fournisseur et l’ID de l’unité commerciale, s’ils sont détectés.
- Les régions des champs standard. Pour plus d’informations, consultez Champs capturés.
Appliquer le FlexiLayout supplémentaire
Ensuite, le programme applique le FlexiLayout supplémentaire, s’il est disponible dans le FlexiLayout générique.
L’image de la facture est préreconnue à l’aide des paramètres de pré-reconnaissance (les langues et le mode de pré-reconnaissance) spécifiés dans le FlexiLayout. Nous recommandons de spécifier les mêmes paramètres de pré-reconnaissance dans le FlexiLayout supplémentaire que dans la Document Definition. Dans ce cas, le programme utilise le résultat de pré-reconnaissance obtenu lors de l’application du FlexiLayout principal au lieu de préreconnaître deux fois la facture.
Si vos factures contiennent des champs inhabituels, vous pouvez spécifier des paramètres de pré-reconnaissance différents dans le FlexiLayout supplémentaire, mais cela ralentit le traitement.
Lorsque le FlexiLayout supplémentaire est appliqué, le programme obtient les régions de tous les champs qui y sont définis. Il peut s’agir soit de champs de facture standard dont la logique de détection a dû être modifiée, soit de champs supplémentaires non définis dans le FlexiLayout principal.
Générer le résultat global
Ensuite, le programme génère le résultat global de l’application du FlexiLayout générique. Si la Document Definition inclut un FlexiLayout supplémentaire, à ce stade, le programme fusionne les résultats obtenus par l’application du FlexiLayout principal avec ceux obtenus par l’application du FlexiLayout supplémentaire.
Les champs sont identifiés par leur nom. Le résultat est une collection de champs uniques issus des FlexiLayouts principal et supplémentaire. S’il existe des champs portant le même nom dans le FlexiLayout principal et dans le FlexiLayout supplémentaire, le programme utilisera la région du champ obtenue par l’application du FlexiLayout supplémentaire.
Cette approche vous permet de définir de nouveaux champs ou de modifier la logique de capture de n’importe lequel des champs de facture standard.
Étape 2 : Appliquer les variantes FlexiLayout
Si le programme a détecté le fournisseur en appliquant le FlexiLayout générique à l’étape 1 et qu’il existe une variante de FlexiLayout pour ce fournisseur, cette variante de FlexiLayout est appliquée à cette étape.
Les paramètres de pré-reconnaissance de la Document Definition sont utilisés. Il s’agit des mêmes paramètres de pré-reconnaissance que ceux utilisés lors de la mise en correspondance du FlexiLayout principal inclus dans le FlexiLayout générique. Par conséquent, aucune pré-reconnaissance supplémentaire n’est nécessaire.
Après la mise en correspondance de la variante de FlexiLayout avec la facture, le programme obtient les régions de tous les champs définis dans la variante de FlexiLayout pour ce fournisseur. Si une variante de FlexiLayout est obtenue en entraînant le programme sur différentes factures, elle inclut tous les champs définis dans la Document Definition. Si une variante de FlexiLayout est créée manuellement, seuls les champs dont la détection nécessite des actions propres au fournisseur concerné doivent être conservés dans la variante.
Étape 3 : Fusionner les résultats
À cette étape, les résultats obtenus par la mise en correspondance du FlexiLayout générique sont fusionnés avec les résultats obtenus par la mise en correspondance de la variante de FlexiLayout.
Si la variante de FlexiLayout a été obtenue en entraînant le programme sur différentes factures, elle inclut tous les champs définis dans la Document Definition. La Document Definition stocke des informations sur les champs dont les régions ont dû être modifiées par l’utilisateur pendant l’entraînement, c’est-à-dire les champs mal détectés par le FlexiLayout générique. Le programme utilise ces informations pour déterminer quelles régions de champ prendre dans le FlexiLayout générique et lesquelles prendre dans la variante de FlexiLayout entraînée sur les factures de ce fournisseur.
Les régions des champs Montant sont sélectionnées différemment. Lors de l’application du FlexiLayout générique, le programme indique le niveau de confiance avec lequel les régions des champs Montant ont été détectées. Si les régions sont détectées de manière peu fiable, le champ Total doit être vérifié. S’il existe une variante de FlexiLayout entraînée sur les factures du fournisseur concerné et que le FlexiLayout générique ne parvient pas à détecter les champs Montant avec un niveau de confiance suffisant, ou ne les détecte pas du tout, les régions des champs Montant détectées par la variante de FlexiLayout sont utilisées. Vous pouvez également configurer le programme pour qu’il utilise toujours les régions des champs Montant détectées par la variante de FlexiLayout. Pour ce faire, définissez la valeur de la clé de registre HKEY_CURRENT_USER\Software\ABBYY\FlexiCapture\12.0\DAForms\UseTrainedInvoiceAmounts sur true (par défaut, cette clé est définie sur false).
Si la variante de FlexiLayout a été créée manuellement, le programme utilise les régions de tous les champs inclus dans la variante de FlexiLayout. Les régions des autres champs proviennent de la mise en correspondance du FlexiLayout générique.
Les informations indiquant quel FlexiLayout a été utilisé pour détecter la région d’un champ sont consignées dans le log de reconnaissance.
Considérons certains des champs définis dans la Document Definition.
Prenons deux champs de facture standard, InvoiceDate et InvoiceNumber, ainsi que deux champs définis par l’utilisateur, CustomFieldA et CustomFieldB.
- InvoiceDate et InvoiceNumber sont des champs standard, et l’algorithme de détection de ces champs est spécifié dans le FlexiLayout principal inclus dans le FlexiLayout générique.
- CustomFieldA et CustomFieldB sont des champs définis par l’utilisateur, et les algorithmes de détection de ces champs sont spécifiés dans le FlexiLayout supplémentaire inclus dans le FlexiLayout générique.
Supposons que l’Operator ne soit pas satisfait de la qualité de détection des champs InvoiceDate et CustomFieldB sur les factures d’un fournisseur spécifique et entraîne le programme sur les factures de ce fournisseur.
Les régions de champ des factures de ce fournisseur sont fusionnées comme suit :
- InvoiceNumber — Cette région provient des résultats obtenus avec le FlexiLayout principal.
- CustomFieldA — Cette région provient des résultats obtenus avec le FlexiLayout supplémentaire.
- InvoiceDate et CustomFieldB — Ces régions proviennent des résultats obtenus avec la variante de FlexiLayout générée en entraînant le programme sur les factures de ce fournisseur.
Dans le cas des factures d’autres fournisseurs, les régions de champ sont fusionnées comme suit :
- InvoiceDate et InvoiceNumber — Ces régions proviennent des résultats obtenus avec le FlexiLayout principal.
- CustomFieldA et CustomFieldB — Ces régions proviennent des résultats obtenus avec le FlexiLayout supplémentaire.