- À propos d'ABBYY FlexiCapture
- Architecture d'ABBYY FlexiCapture
-
Utilisation de scripts sous ABBYY FlexiCapture
- Règles spécifiques aux scripts écrits en langages .Net
- Assemblages externes
- L'éditeur de script
- Modèle d'objet
-
Scripts permettant de personnaliser les étapes de traitement
-
Types de scripts
- Règle de script
- Script d'autocorrection
- Script d'exportation
- Script utilisateur (action personnalisée)
- Script d'assemblage de document
- Script de reconnaissance personnalisée
- Règle d'étape
- Scripts de traitement
- Script de mise à jour de jeu de données
- Script de validation de jeu de données
- Document classification script
-
Gestionnaires d'événements
- Lot créé
- Lot supprimé
- Modification des paramètres du lot
- Modification de la structure d'un lot (page ajoutée/page supprimée/document ajouté/document supprimé)
- Pages déplacées
- Lot ouvert/fermé
- Vérification de l’intégrité du lot
- Modification de paramètres du document
- Modification de l'état du document
- Exportation terminée
- Scripté exécuté après la vérification des règles
- Avant l'association
- Requête de vérification de champs
-
Objets
- IActionResult
- IAssemblingError
- IAssemblingErrors
- IBatch
- IBatchCheckResults
- IBatchItem
- IBatchItems
- IBatchTypeClassifier
- IBatchTypeClassifierResult
- IBinarizationParams
- IBoxedBoolean
- ICharacterParams
- ICharactersParams
- ICheckmarkGroupValue
- ICheckmarkValue
- IDataSet
- IDataSetQuery
- IDataSetRecord
- IDocument
- IDocuments
- IDocumentExportResults
- IDocumentsExportResults
- IDocumentDefinitionInfo
- IDocumentDefinitionInfoArray
- IEditablePictureObject
- IExportFieldsToRedact
- IExportImageSavingOptions
- IField
- IFieldRegion
- IFieldRegions
- IFields
- IFlexiCaptureTools
- ILocalContrastParams
- IMatchedSectionInfo
- IMatchingInfo
- IPage
- IPageClassificationResult
- IPages
- IPictureObject
- IPictureObjectsInfo
- IPrincipal
- IPrincipals
- IProcessingCallback
- IProject
- IProperties
- IProperty
- IPropertyModificationInfo
- IRecordCheckResult
- IRecordset
- IRect
- IRects
- IRoutingRuleResult
- IRuleContext
- IRuleError
- IRuleErrors
- IRuleTag
- IRuleTags
- IScriptBinaryAttributes
- IScriptDefinitionContext
- ISectionDefinitionInfo
- ISectionDefinitionInfoArray
- IShadowsHighlightsParams
- IStageInfo
- IUserAttachment
- IUserAttachments
- IUserSessionInfo
- IValue
- IVARIANTArray
- TAssemlingErrorType
- TBatchItemType
- TColorToFilter
- TExportFieldType
- TExportType
- TImageCompressionType
- TPageClassificationType
- TPdfAVersion
- TPdfDocumentInfoType
- TPdfTextSearchAreaType
- TPrincipalType
- TProcessingPriority
- TPropertyType
- TRuleErrorType
- TStateType
- Exemples de scripts
- Noms internes des langues de reconnaissance
-
Types de scripts
-
Scripts de traitement des évènements de l'interface
-
Gestionnaires d'événements
- À la fermeture du document
- À la fermeture du projet
- À l'activation du document
- À l'activation du contrôle de champ
- Au retour de la tâche
- En cas de commande utilisateur
- À la désactivation du contrôle de champ
- À la fermeture du document
- À la fermeture de la tâche
- À la fermeture du projet
- À la modification de région
- À la modification du mode de la fenêtre Tâche
- À l'ouverture du document
- À la création de la fenêtre Tâche
- Au rejet de la tâche
- À la conception du contrôle de région
- À l'étape Envoyer vers
- À la validation du champ de texte
-
Objets
- IBoolean
- IBoxedFieldControl
- IDocumentEditor
- IDocumentItem
- IDocumentItems
- IDocumentsCollection
- IDocumentsWindow
- IDrawContext
- IErrorControl
- IErrorControls
- IErrorsWindow
- IFieldControl
- IFieldRegionControl
- IFieldRegionControls
- IFormWindow
- IImageWindow
- IMainMenu
- IMainWindow
- IMenu
- IMenuItem
- IPageControl
- IPageItem
- IPageItems
- IPagesCollection
- IPoint
- ISelection
- IShellRational
- IShellRect
- IShellRects
- ITaskWindow
- ITextEditor
- IToolbar
- IToolbarButton
- IToolbars
- TCommandBarType
- TCommandID
- TDockingType
- TDocumentState
- TErrorType
- TSelectionType
- TTaskWindowMode
- TTextSize
- TUserRole
- TWorkWindowType
-
Gestionnaires d'événements
- Script utilisateur pour le poste de vérification Web
-
Application Programming Interface (API)
- About the ABBYY FlexiCapture Application Server Web Services API
- Using the Web Services API of the ABBYY FlexiCapture Application Server
-
References
- API Methods
- Data types
- Working with files
- Web Services Mobile API
- Web Services for user account management
- Examples of API Use
- Intégration des postes Web dans des systèmes tiers
- Configuration de paramètres supplémentaires et personnalisation des postes Web
- Custom reports
-
Annexe
- Sauvegarde de FlexiCapture
- Langues de reconnaissance prises en charge
- Polices requises pour un rendu correct des caractères
- Types de textes pris en charge
- Types de codes barres pris en charge
- Formats d'entrée pris en charge
- Formats de fichiers d'exportation
- Formats de la date
- Caractères alphabétiques utilisés dans les expressions régulières
- Protection de définitions de documents et des modules supplémentaires
- Glossaire
- Brevets
- Technologies tierces
- Support technique
- Contrat de licence utilisateur final (CLUF)
Exemples de script d'assemblage
Script d'assemblage en présence de documents tributaires de la valeur d'un champ
Le script de cet exemple permet d'assembler des documents en ensembles de documents définis par une définition d'ensemble de documents. La définition d'ensemble de documents contient une section intitulée Formulaire de l'emprunteur et des références aux définitions de document suivantes :
- Passeport
- Documents du garant
- Documents du co-emprunteur
- Référence de l'employeur
La section Formulaire de l'emprunteur inclut les champs suivants :
- Nom du co-emprunteur
- Montant du prêt
Les documents à inclure dans l'ensemble de documents dépendent de la valeur du champ Montant du prêt. Le script contient deux valeurs seuil qui déterminent quels documents sont inclus dans l'ensemble :
- Si le montant du prêt est inférieur à la première valeur seuil, l'ensemble de documents doit uniquement contenir un passeport.
- Si le montant du prêt est supérieur à la première valeur seuil, mais inférieur à la seconde valeur seuil, l'ensemble de documents doit contenir un passeport et une référence de l'employeur.
- Si le montant du prêt est supérieur à la seconde valeur seuil, l'ensemble de documents doit contenir un passeport, une référence de l'employeur et les documents du garant.
En plus de ceci, si le champ Nom du co-emprunteur contient une valeur, l'ensemble de documents doit contenir les documents du co-emprunteur.
Le script ci-dessous a recours à cette logique pour assembler les ensembles de documents.
à l'aide deSystem.Collections.Generic; intcreditSum=0; boolcreditSumFound=false; stringcocreditor=""; intformCount=0; stringformName=« Formulaire de l'emprunteur »; // Définitions de document utilisées dans l'ensemble de documents intreferenceFromWorkCount=0; stringreferenceFromWorkName=« Référence de l'employeur »; intguaranteeDocsCount=0; stringguaranteeDocsName=« Documents du garant »; intcocreditorDocsCount=0; stringcocreditorDocsName=« Documents du co-emprunteur »; intpassportCount=0; stringpassportName=« Passeport »; foreach(IBatchItemiteminBatchItems){ // Trouver le formulaire et déterminer le montant du prêt if(item.Type==TBatchItemType.BIT_Page) { if(item.AsPage.SectionName!=formName) AssemblingErrors.AddCustomError(« Ne peut pas contenir les sections suivantes : « +item.AsPage.SectionName,1); else { cocreditor=item.AsPage.Document.IndexedItemValue("Nom de l'emprunteur").ToString(); stringcreditSumText=item.AsPage.Document.IndexedItemValue(« Montant du prêt »).ToString(); if(!int.TryParse(creditSumText,outcreditSum)) AssemblingErrors.AddCustomError(« Le montant du prêt n'a pas été reconnu : « +creditSumText,1); else creditSumFound=true; formCount++; } } // Compter les documents dans l'ensemble elseif(item.Type==TBatchItemType.BIT_Document){ if(item.AsDocument.TemplateName==referenceFromWorkName) referenceFromWorkCount++; elseif(item.AsDocument.TemplateName==guaranteeDocsName) guaranteeDocsCount++; elseif(item.AsDocument.TemplateName==passportName) passportCount++; elseif(item.AsDocument.TemplateName==cocreditorDocsName) cocreditorDocsCount++; else AssemblingErrors.AddCustomError(« L'ensemble de documents ne peut pas contenir le document »+item.AsDocument.TemplateName,1); } } // Vérifier le nombre de sections et de documents dans l'ensemble if(formCount>1) AssemblingErrors.AddCustomError(« Il y a trop de documents du type : « +formName,formCount); elseif(formCount<1) AssemblingErrors.AddCustomError(« Les documents suivants manquent : « +formName,1); if(passportCount>1) AssemblingErrors.AddCustomError(« Il y a trop de documents du type : « +passportName,passportCount); elseif(passportCount<1) AssemblingErrors.AddCustomError(« Les documents suivants manquent : « +passportName,1); // Vérifier que l'ensemble de documents contient un co-emprunteur si un nom de co-emprunteur est présent dans le formulaire if(cocreditor!=""&&cocreditorDocsCount<1) AssemblingErrors.AddCustomError(« Les documents suivants manquent : « +cocreditorDocsName,1); elseif(cocreditor!=""&&cocreditorDocsCount>1) AssemblingErrors.AddCustomError(« Il y a trop de documents du type : « +cocreditorDocsName,cocreditorDocsCount); elseif(cocreditor==""&&cocreditorDocsCount>0) AssemblingErrors.AddCustomError(« Il y a trop de documents du type : « +cocreditorDocsName,cocreditorDocsCount); // Vérifier que l'ensemble de documents contient tous les documents requis, car le montant du prêt dépasse l'un des seuils if(creditSumFound) { if(creditSum>50000)// nécessite une référence de l'employeur { if(referenceFromWorkCount>1) AssemblingErrors.AddCustomError(« Il y a trop de documents du type : « +referenceFromWorkName,referenceFromWorkCount); elseif(referenceFromWorkCount<1) AssemblingErrors.AddCustomError(« Les documents suivants manquent : « +referenceFromWorkName,1); } if(creditSum>500000)// nécessite les documents du garant { if(guaranteeDocsCount>1) AssemblingErrors.AddCustomError(« Il y a trop de documents du type : « +guaranteeDocsName,guaranteeDocsCount); elseif(guaranteeDocsCount<1) AssemblingErrors.AddCustomError(« Les documents suivants manquent : « +guaranteeDocsName,1); } }
Script d'assemblage qui vérifie si des documents sont manquants
Dans cet exemple, le script fonctionne avec la définition de l'ensemble de documents intitulé Documents d'identification. La définition de l'ensemble de documents contient des références aux définitions de document suivantes :
- Passeport
- Permis de conduire
Les ensembles de documents produits par le script peuvent inclure un seul document de chacun de ces types mais au moins un document de ces types.
Le script ci-dessous a recours à cette logique pour assembler des ensembles de documents.
à l'aide de System.Collections.Generic; à l'aide de System; string docSetName = « Documents d'identification »; intpagesCnt = 0; // Liste des types de documents pouvant être inclus dans l'ensemble Liste<chaîne> autorisé =nouvelleListe<chaîne>{« Passeport », « Permis de conduire »}; // Limite du nombre de documents de chaque type dans l'ensemble Liste<int> allowedCount =nouvelleListe<int>{1,1}; // Le nombre de documents détectés dans l'ensemble Liste<int>foundCount = nouvelleListe<int>{0,0}; // Le nombre de documents et de pages dans l'ensemble foreach(IBatchItem itemin BatchItems) { if(item.Type == TBatchItemType.BIT_Document) { if(item.AsDocument.TemplateName == docSetName) AssemblingErrors.AddCustomError(« Ne peut pas contenir un ensemble imbriqué », 1); else if(allowed.Contains(item.AsDocument.TemplateName)) { int i = allowed.IndexOf(item.AsDocument.TemplateName); foundCount[i]++; } } else if(item.Type == TBatchItemType.BIT_Page) pagesCnt++; } // Vérifier le nombre de documents et de pages if(foundCount[0] + foundCount[1] == 0) AssemblingErrors.AddCustomError(« Au moins un document d'identification est requis », 1); for(int i = 0; i < allowed.Count; i++) { if(foundCount[i] > allowedCount[i]) AssemblingErrors.AddCustomError(« Nombre maximal de documents : « + allowed[i] + » : « + allowedCount[i]); } if (pagesCnt > 0) AssemblingErrors.AddCustomError(« L'ensemble de documents ne peut pas contenir de pages n'appartenant pas à un document », pagesCnt);
02.03.2021 8:10:42