- Aucun mot-clé supplémentaire n’est utilisé pour accéder aux membres des objets. Par exemple, dans les règles écrites en langages .NET, le contexte de la règle est transmis en paramètre sous le nom “Context”.
- Les assembly .NET doivent être compilées avec Microsoft .NET Framework 4.0 ou version ultérieure. Vous pouvez spécifier la version souhaitée de .NET Framework dans les propriétés de votre projet Visual Studio.
- Il est possible d’ajouter une assembly externe utilisable dans les scripts et les modules globaux. Les assembly standard comme les assembly utilisateur compilées peuvent être utilisées. Toutes les classes des assembly ajoutées seront disponibles dans les scripts et les modules globaux. Voir Assemblies externes pour plus de détails.
- Une fois le script compilé, le corps du script compilé est stocké à l’emplacement où le script est défini. Ainsi, un script .NET peut occuper plus d’espace que d’autres scripts.
- Tous les objets FlexiCapture sont définis comme des objets COM. Par conséquent, l’exécution des scripts .NET peut être ralentie en cas d’accès fréquents aux champs des objets, en raison des transitions entre code managé et non managé.
- Les objets FlexiCapture ne prennent pas en charge le multithreading.
- Pour déboguer les scripts .NET, la méthode System.Diagnostics.Debugger.Break est utilisée.
- Lors du débogage des scripts .NET, vous avez également besoin d’un fichier *.pdb contenant les informations de débogage. Ce fichier peut être très volumineux et nous ne recommandons pas de le stocker dans le projet avec vos scripts. Toutefois, lors du débogage d’un script .NET, vous devez spécifier que le script doit être compilé avec certaines informations de débogage. Si vous utilisez Microsoft Visual Studio 2010, vous pouvez vous attacher au processus dans lequel le code .NET est exécuté.
- Les objets de script FlexiCapture sont stockés dans les assembly ControllerInterop.dll et ShellInterop.dll et appartiennent respectivement aux espaces de noms ABBYY.FlexiCapture et ABBYY.FlexiCapture.ClientUI. Ces assembly se trouvent dans le dossier racine du programme.
- Tous les objets de script ABBYY FlexiCapture sont accessibles sous leurs propres noms depuis les espaces de noms ABBYY.FlexiCapture et ABBYY.FlexiCapture.ClientUI. Par exemple :
- Les directives “Using” peuvent être placées au début du corps du script, avec des commentaires et des chaînes vides. La même syntaxe que dans le langage de programmation est utilisée (using pour C#.NET, Import pour JScript.NET et Imports pour VisualBasic.NET). Par exemple :
Vous pouvez utiliser la directive using dans le Script Editor, à condition que le mot-clé “using” figure avant la première ligne de code exécutable. Par exemple :
- Dans les scripts .NET, les fonctions de tous les modules globaux sont appelées directement, sans utiliser le nom du module global. Remarque : Les classes définies dans le Rule Global Script Module et dans le Export Global Script Module doivent avoir des noms différents. Sinon, lors de la création d’une instance de classe dans le code de règle, une erreur se produira.
- Si vous ne souhaitez pas spécifier la valeur d’un paramètre facultatif de la fonction (pour les fonctions avec paramètres facultatifs), vous devez transmettre System.null ou System.Type.Missing à la place.
Pour les scripts exécutés de manière non interactive (c’est-à-dire par le processus FlexiEx.exe au lieu de FlexiCapture.exe), le bouton Debug n’est pas affiché par défaut pour le processus FlexiEx.exe dans la fenêtre “Recherche de solution” (pour les scripts contenant un point d’arrêt). Pour afficher ce bouton, cliquez sur l’icône Centre de maintenance dans votre barre des tâches, puis sélectionnez Modifier les paramètres du Centre de maintenance → Paramètres des rapports de problèmes → Ne jamais rechercher de solutions.
