Passer au contenu principal
Cette section explique comment utiliser des scripts pour personnaliser les étapes de traitement et l’interface des stations dans ABBYY FlexiCapture.

Langages de script pris en charge

ABBYY FlexiCapture prend en charge les langages de script suivants : C#.Net, VisualBasic.Net, JScript.Net, JScript®, JScript.Compact et VBScript. Spécificités des scripts écrits en .Net

Particularités d’utilisation

En VBScript, il est obligatoire d’utiliser le mot-clé “Me” lors du passage d’une valeur NULL (l’équivalent de “this” en JScript), tandis que dans les langages .Net, la valeur NULL est passée comme un paramètre ordinaire. Pour chaque script, les autorisations d’accès de tous ses paramètres sont connues dès le départ. Les autorisations d’accès déterminent le sous-ensemble de méthodes accessibles depuis les scripts. Lors de l’appel des méthodes d’objet, les autorisations des objets renvoyés sont toujours héritées de l’objet source (les exceptions à cette règle sont décrites dans les commentaires des méthodes correspondantes).
Les objets de script ne peuvent pas être utilisés après l’exécution du script en raison de leur comportement indéterminé.
Pour déboguer les scripts écrits dans ABBYY FlexiCapture Script Editor, vous pouvez utiliser la méthode MessageBox.

Fonctions personnalisées

Le Script Editor permet aux utilisateurs de créer leurs propres fonctions et procédures, puis de les appeler depuis le code des scripts. Les fonctions et procédures personnalisées doivent être écrites dans le module global, accessible depuis le Script Editor. Pour cela, dans la liste déroulante de la barre d’outils du Script Editor, sélectionnez l’un des modules globaux disponibles : Rule Global Script Module, Export Global Script Module, Events ou NonInteractiveProcessor. Toutes les fonctions d’un même module doivent être écrites dans le même langage. Le code principal d’un script peut être écrit dans un langage différent de celui utilisé dans le module global correspondant. Les fonctions globales écrites dans les langages de script JScript®, JScript.Compact et VBScript peuvent être appelées depuis des scripts également écrits dans l’un de ces langages. Par exemple, depuis le code d’une règle écrite en VBScript, vous pouvez appeler une fonction contenue dans un module global écrit en JScript. Les fonctions globales écrites dans des langages .Net peuvent être appelées depuis des scripts écrits dans l’un des langages .Net (C#.Net, VisualBasic.Net ou JScript.Net). Pour appeler une fonction depuis son module global, vous devez utiliser le préfixe correspondant (Rules, Export, Events ou NonInteractiveProcessor). Par exemple, la fonction DoSomething du module Rule Global Script Module doit être appelée comme suit : Rules.DoSomething ().
Pour les scripts écrits dans des langages .Net, les fonctions des modules globaux sont appelées par leur nom, sans préfixe.
Vous ne pouvez pas utiliser de langues RTL pour les constantes de texte dans le Script Editor. Si vous devez ajouter du texte RTL à votre script, utilisez l’une des solutions suivantes :
  1. Placez votre texte RTL dans un message de script utilisateur ou dans une variable d’environnement.
  2. Utilisez une assembly externe pour votre projet ou votre Document Definition (pour plus d’informations, consultez External assemblies).

Délai d’expiration de l’exécution des scripts

Les délais d’expiration par défaut sont de 30 secondes pour l’export et de 10 secondes pour les autres scripts. Pour modifier les délais d’expiration par défaut, spécifiez la valeur suivante dans le registre : HKEY_CURRENT_USER\Software\ABBYY\FlexiCapture\12.0\Controller\ScriptSupport\DefaultScriptTimeout La valeur d’un délai d’expiration dans le registre est indiquée en millisecondes. Si l’exécution d’un script dépasse le délai d’expiration spécifié, il sera interrompu et le message d’erreur suivant sera renvoyé : “Script execution timeout”. Si le script fait partie d’une tâche d’import, de reconnaissance ou d’export, un message d’erreur similaire sera consigné dans le Log.
Le délai d’expiration de l’exécution des scripts s’applique uniquement aux scripts écrits en JScript et VBScript.
Pour modifier les délais d’expiration des scripts exécutés sous NetworkService, vous devez modifier la branche du registre correspondant au profil utilisateur concerné.

Modèle objet

Le modèle objet est compatible avec les scripts créés dans les versions antérieures d’ABBYY FlexiCapture. En savoir plus sur le modèle objet