> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Skripte in ABBYY FlexiCapture verwenden

> Verwenden Sie Skripte, um Verarbeitungsstufen und die Benutzeroberfläche von Stationen in ABBYY FlexiCapture anzupassen: unterstützte Skriptsprachen, benutzerdefinierte Funktionen, globales Skriptmodul, Zeitlimit für die Skriptausführung, Objektmodell.

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

<div id="supported-scripting-languages">
  ## Unterstützte Skriptsprachen
</div>

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](/de/flexi-capture/appendix/scripts/dot-net)

<div id="specifics-of-usage">
  ## Besonderheiten der Verwendung
</div>

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).

<Note>
  Skriptobjekte können nach Abschluss des Skripts wegen des unbestimmten Objektverhaltens nicht weiterverwendet werden.
</Note>

<Tip>
  Zum Debuggen von Skripten, die im ABBYY FlexiCapture Skripteditor geschrieben wurden, kann die Methode **MessageBox** verwendet werden.
</Tip>

## <a id="customfunction" />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](/de/flexi-capture/interface/script-editor) 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 ()**.

<Note>
  Bei Skripten, die in .Net-Sprachen geschrieben sind, werden Funktionen aus globalen Modulen direkt über ihren Namen und ohne Präfix aufgerufen.
</Note>

<Note>
  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:
</Note>

1. Platzieren Sie Ihren RTL-Text in einer [Benutzerskriptnachricht](/de/flexi-capture/templates/localization) 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](/de/flexi-capture/appendix/scripts/user-assembly)).

<div id="script-execution-timeout">
  ## Zeitlimit für die Skriptausführung
</div>

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.

<Note>
  Das Zeitlimit für die Skriptausführung gilt nur für Skripte, die in JScript und VBScript geschrieben sind.
</Note>

<Warning>
  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.
</Warning>

<div id="object-model">
  ## Objektmodell
</div>

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

[Weitere Informationen zum Objektmodell](/de/flexi-capture/appendix/scripts/scripting-model)
