Zum Hauptinhalt springen
In diesem Abschnitt wird beschrieben, wie Sie Skripte verwenden, um Verarbeitungsstufen und die Benutzeroberfläche der Stationen in ABBYY FlexiCapture anzupassen.

Unterstützte Skriptsprachen

ABBYY FlexiCapture unterstützt die folgenden Skriptsprachen: C#.Net, VisualBasic.Net, JScript.Net, JScript®, JScript.Compact und VBScript. Besonderheiten von Skripten, die in .NET-Sprachen geschrieben sind

Besonderheiten der Verwendung

In VBScript muss beim Übergeben eines NULL-Werts zwingend das Schlüsselwort „Me“ verwendet werden (das Gegenstück zu „this“ in JScript), während in .NET-Sprachen der NULL-Wert als gewöhnlicher Parameter übergeben wird. Für jedes Skript sind die Zugriffsberechtigungen für alle seine Parameter von Anfang an bekannt. Die Zugriffsberechtigungen bestimmen die Teilmenge der Methoden, die aus Skripten verfügbar sind. Beim Aufruf von Objektmethoden werden die Berechtigungen für zurückgegebene Objekte immer vom Quellobjekt geerbt (Ausnahmen von dieser Regel sind in den Kommentaren zu den entsprechenden Methoden beschrieben).
Skriptobjekte können nach Abschluss des Skripts wegen des unbestimmten Objektverhaltens nicht weiterverwendet werden.
Zum Debuggen von Skripten, die im ABBYY FlexiCapture Skripteditor geschrieben wurden, kann die Methode MessageBox verwendet werden.

Benutzerdefinierte Funktionen

Der Skripteditor ermöglicht es Benutzern, eigene Funktionen und Prozeduren zu erstellen und sie anschließend im Skriptcode aufzurufen. Benutzerdefinierte Funktionen und Prozeduren sollten im globalen Modul geschrieben werden, auf das Sie über den Skripteditor zugreifen können. Wählen Sie dazu in der Dropdown-Liste auf der Symbolleiste des Skripteditors ein verfügbares globales Modul aus: Rule Global Script Module, Export Global Script Module, Events oder NonInteractiveProcessor. Alle Funktionen innerhalb eines Moduls müssen in derselben Sprache geschrieben sein. Der Hauptcode eines Skripts kann in einer anderen Sprache geschrieben sein als das entsprechende globale Modul. Globale Funktionen, die in den Skriptsprachen JScript®, JScript.Compact und VBScript geschrieben sind, können auch aus Skripten aufgerufen werden, die in einer dieser Sprachen geschrieben sind. So können Sie beispielsweise aus dem Code einer in VBScript geschriebenen Regel eine Funktion aufrufen, die im globalen Modul enthalten ist und in JScript geschrieben wurde. Globale Funktionen, die in .Net-Sprachen geschrieben sind, können aus Skripten aufgerufen werden, die in einer der .Net-Sprachen geschrieben sind (C#.Net, VisualBasic.Net oder JScript.Net). Um eine Funktion aus ihrem globalen Modul aufzurufen, muss ein entsprechendes Präfix (Rules, Export, Events oder NonInteractiveProcessor) verwendet werden. So muss die Funktion DoSomething aus dem Modul Rule Global Script Module beispielsweise wie folgt aufgerufen werden: Rules.DoSomething ().
Bei Skripten, die in .Net-Sprachen geschrieben sind, werden Funktionen aus globalen Modulen direkt über ihren Namen und ohne Präfix aufgerufen.
Sie können im Skripteditor keine RTL-Sprachen für Textkonstanten verwenden. Wenn Sie RTL-Text in Ihr Skript einfügen müssen, verwenden Sie eine der folgenden Umgehungslösungen:
  1. Platzieren Sie Ihren RTL-Text in einer Benutzerskriptnachricht oder in einer Umgebungsvariablen.
  2. Verwenden Sie eine externe Assembly für Ihr Projekt oder Ihre Document Definition (weitere Informationen finden Sie unter Externe Assemblies).

Zeitlimit für die Skriptausführung

Die Standard-Timeouts betragen 30 Sekunden für den Export und 10 Sekunden für andere Skripte. Um die Standard-Timeouts zu ändern, legen Sie in der Registrierungsdatenbank den folgenden Wert fest: HKEY_CURRENT_USER\Software\ABBYY\FlexiCapture\12.0\Controller\ScriptSupport\DefaultScriptTimeout Der Timeoutwert in der Registrierungsdatenbank wird in Millisekunden angegeben. Dauert die Ausführung eines Skripts länger als das angegebene Timeout, wird es beendet und die Fehlermeldung „Zeitlimit für die Skriptausführung“ zurückgegeben. Ist das Skript Teil eines Import-, Erkennungs- oder Exportvorgangs, wird eine ähnliche Fehlermeldung im Protokoll aufgezeichnet.
Das Zeitlimit für die Skriptausführung gilt nur für Skripte, die in JScript und VBScript geschrieben sind.
Um die Timeouts für Skripte zu ändern, die unter dem NetworkService ausgeführt werden, müssen Sie den Registrierungszweig für das entsprechende Benutzerprofil ändern.

Objektmodell

Das Objektmodell ist mit Skripten kompatibel, die in früheren Versionen von ABBYY FlexiCapture erstellt wurden. Weitere Informationen zum Objektmodell