Saltar al contenido principal
En esta sección se describe cómo usar scripts para personalizar las etapas de procesamiento y la interfaz de las estaciones en ABBYY FlexiCapture.

Lenguajes de scripting compatibles

ABBYY FlexiCapture admite los siguientes lenguajes de scripting: C#.Net, VisualBasic.Net, JScript.Net, JScript®, JScript.Compact y VBScript. Aspectos específicos de los scripts escritos en lenguajes .Net

Particularidades de uso

En VBScript es obligatorio usar la palabra clave “Me” al pasar un valor NULL (la alternativa a “this” en JScript), mientras que en los lenguajes .Net el valor NULL se pasa como un parámetro normal. Para cada script, los permisos de acceso de todos sus parámetros se conocen de antemano. Los permisos de acceso determinan el subconjunto de métodos disponibles en los scripts. Al acceder a los métodos del objeto, los permisos de los objetos devueltos siempre se heredan del objeto de origen (las excepciones a esta regla se describen en los comentarios de los métodos correspondientes).
Los objetos de script no pueden usarse una vez finalizada la ejecución del script debido al comportamiento indeterminado del objeto.
Para depurar scripts escritos en el editor de scripts de ABBYY FlexiCapture, se puede usar el método MessageBox.

Funciones personalizadas

El editor de scripts permite a los usuarios crear sus propias funciones y procedimientos y luego llamarlos desde el código de los scripts. Las funciones y los procedimientos personalizados deben escribirse en el módulo global, al que se puede acceder desde el editor de scripts. Para ello, en la lista desplegable de la barra de herramientas del editor de scripts, seleccione uno de los módulos globales disponibles: Rule Global Script Module, Export Global Script Module, Events o NonInteractiveProcessor. Todas las funciones de un mismo módulo deben escribirse en el mismo lenguaje. El código principal de un script puede escribirse en un lenguaje distinto del utilizado en el módulo global correspondiente. Las funciones globales escritas en los lenguajes de scripting JScript®, JScript.Compact y VBScript pueden llamarse desde scripts escritos también en uno de estos lenguajes. Por ejemplo, desde el código de una regla escrita en VBScript, puede llamar a una función contenida en el módulo global que está escrita en JScript. Las funciones globales escritas en lenguajes .Net pueden llamarse desde scripts escritos en uno de los lenguajes .Net (C#.Net, VisualBasic.Net o JScript.Net). Para llamar a una función desde su módulo global, debe utilizarse el prefijo correspondiente (Rules, Export, Events o NonInteractiveProcessor). Por ejemplo, la función DoSomething del módulo Rule Global Script Module debe llamarse de la siguiente manera: Rules.DoSomething ().
En los scripts escritos en lenguajes .Net, las funciones de los módulos globales se llaman por su nombre, sin usar prefijos.
No se pueden usar idiomas RTL en constantes de texto en el editor de scripts. Si necesita agregar texto RTL a su script, utilice una de las siguientes alternativas:
  1. Coloque el texto RTL en un mensaje de script de usuario o en una variable de entorno.
  2. Use un ensamblado externo para su proyecto o Definición de Document (Para obtener más información, consulte Ensamblados externos).

Tiempo de espera para la ejecución de scripts

Los tiempos de espera predeterminados son de 30 segundos para la exportación y de 10 segundos para otros scripts. Para cambiar los tiempos de espera predeterminados, especifique el siguiente valor en el registro: HKEY_CURRENT_USER\Software\ABBYY\FlexiCapture\12.0\Controller\ScriptSupport\DefaultScriptTimeout El valor del tiempo de espera en el registro se especifica en milisegundos. Si un script tarda más en ejecutarse que el tiempo de espera especificado, se terminará y se devolverá el siguiente mensaje de error: “Tiempo de espera para la ejecución de scripts”. Si el script forma parte de una tarea de importación, reconocimiento o exportación, se registrará un mensaje de error similar en el registro.
El tiempo de espera para la ejecución de scripts se aplica solo a los scripts escritos en JScript y VBScript.
Para cambiar los tiempos de espera de los scripts ejecutados con NetworkService, debe modificar la rama del registro correspondiente al perfil de usuario.

Modelo de objetos

El modelo de objetos es compatible con los scripts creados en versiones anteriores de ABBYY FlexiCapture. Más información sobre el modelo de objetos