Verwenden von Skripten in ABBYY FlexiCapture
In diesem Abschnitt wird beschrieben, wie Sie in ABBYY FlexiCapture Skripte für die benutzerdefinierte Anpassung der Verarbeitungsphasen und die Schnittstelle der Verarbeitungsstation verwenden.
Unterstützte Skriptsprachen
ABBYY FlexiCapture unterstützt die folgenden Skriptsprachen: C#.Net, VisualBasic.Net, JScript.Net, JScript®, JScript.Compact und VBScript.
Besonderheiten von in .Net-Sprachen geschriebenen Skripten
Besonderheiten bei der Verwendung
In VBScript muss bei der Weitergabe eines NULL-Wertes (die Alternative von "this" in JScript) das Schlüsselwort "Me" verwendet werden, während mit .Net-Sprachen der NULL-Wert als gewöhnlicher Parameter weitergegeben wird.
Für jedes Skript sind die Zugriffsberechtigungen für alle Parameter im Voraus bekannt. Die Zugriffsberechtigungen bestimmen die Teilmenge an Methoden, die über Skripte zur Verfügung stehen. Bei der Adressierung der Objektmethoden werden die Berechtigungen für zurückgegebene Objekte immer vom Quellobjekt vererbt (Ausnahmen dieser Regel werden in Kommentaren der entsprechenden Methoden beschrieben).
Hinweis. Skriptobjekte können aufgrund des unbestimmten Objektverhaltens nach Abschluss des Skripts nicht verwendet werden.
Hinweis. Für das Debugging von Skripten, die mit dem ABBYY FlexiCapture Skripteditor geschrieben wurden, kann die Methode MessageBox verwendet werden.
Benutzerdefinierte Funktionen
Mithilfe des Skripteditors können Benutzer eigene Funktionen und Prozeduren schreiben und diese dann aus den Codes des Skripts aufrufen.
Benutzerdefinierte Funktionen und Prozeduren sollten in das globale Modul geschrieben werden, auf das vom Skripteditor aus zugegriffen werden kann. Wählen Sie dafür aus der Dropdownliste des Skripteditors ein verfügbares globales Modul: Regel für globales Skriptmodul, Globales Skriptmodul exportieren, Events oder NonInteractiveProcessor.
Alle Funktionen innerhalb eines Moduls müssen in derselben Sprache geschrieben sein. Der Kerncode eines Skripts kann in einer anderen Sprache geschrieben sein als in derjenigen, die im entsprechenden globalen Modul verwendet wird.
In den Skriptsprachen JScript®, JScript.Compact und VBScript geschriebene globale Funktionen können von Skripten aufgerufen werden, die auch in einer diese Sprachen geschrieben wurden. Sie können zum Beispiel von dem Code einer Regel aus, die in VBScript geschrieben ist, eine im globalen Modul enthaltene Funktion aufrufen, die in JScript geschrieben ist.
Alle Funktionen aller globalen Module stehen in allen Skripten zur Verfügung, mit Ausnahme der Skripts, die in .Net-Sprachen geschrieben wurden (C#.Net, VisualBasic.Net oder JScript.Net).
Um eine Funktion von dessen globalem Modul aufzurufen, muss ein entsprechender Präfix verwendet werden (Rules, Export, Events oder NonInteractiveProcessor). Beispiel: Die Funktion DoSomething aus dem Modul Regel für globales Skriptmodul muss folgendermaßen aufgerufen werden: Rules.DoSomething ().
Hinweis. Für Skripte in .Net-Sprachen werden die Funktionen globaler Module mit ihrem Namen und ohne Präfixe aufgerufen.
Hinweis. Sie können keine RTL-Sprachen für Textkonstanten im Skript-Editor verwenden. Wenn Sie RTL-Text in Ihr Skript einfügen müssen, verwenden Sie eine der folgenden Lösungen:
- Platzieren Sie Ihren RTL-Text in einer Benutzerskript-Meldung oder in einer Umgebungsvariable.
- Verwenden Sie eine externe Assembly für Ihr Projekt oder die Dokumentdefinition (weitere Informationen finden Sie unter Externe Assemblies).
Zeitüberschreitung bei Skriptausführung
Der Standardwert für Zeitüberschreitungen beträgt 30 Sekunden für den Export und 10 Sekunden für andere Skripte.
Zum Ändern des Standardwerts für Zeitüberschreitungen passen Sie den Wert in der Registry an.
HKEY_CURRENT_USER\Software\ABBYY\FlexiCapture\12.0\Controller\ScriptSupport\DefaultScriptTimeout
Der Wert für Zeitüberschreitungen wird in der Registry in Millisekunden angegeben. Dauert die Ausführung eines Skripts länger als der angegebene Wert für die Zeitüberschreitung, wird das Skript beendet und eine Fehlermeldung "Zeitüberschreitung bei Skriptausführung" zurückgegeben. Handelt es sich bei dem Skript um den Teil eines Imports, einer Erkennung oder eines Exporttasks, wird eine ähnliche Fehlermeldung im Protokoll aufgezeichnet.
Wichtig! Zeitüberschreitung bei Skriptausführung gilt nur für in JScript und VBScript geschriebene Skripte.
Wichtig! Um die Standardwerte für Zeitüberschreitungen von Skripten zu ändern, die unter dem NetworkService ausgeführt werden, müssen Sie den Registryeintrag für das entsprechende Benutzerprofil bearbeiten.
Objektmodell
Das Objektmodell ist kompatibel zu Skripten, die mit älteren Versionen von ABBYY FlexiCapture erstellt wurden.
12.04.2024 18:16:01