ABBYY FlexiCapture でのスクリプトの使用
このセクションでは、ABBYY FlexiCapture の処理ステージとステーションインターフェースをカスタマイズするためにどのようにスクリプトを使用するかを説明します。
サポートされているスクリプト言語
ABBYY FlexiCapture は以下のスクリプト言語をサポートしています:C#.Net,VisualBasic.Net,JScript.Net,JScript®,JScript.CompactとVBScript。
利用方法の仕様
VBScript では、キーワード "Me" を用いてNULL値 (JScript の "this" の代わり) をパスすることが必須ですが、 .Net languages ではNULL値は一般のパラメータとしてパスされます。
どのスクリプトでも、パラメータのアクセス権限はすべて一般的に知られています。アクセス権限はスクリプトで利用できるメソッドのサブセットを決定します。オブジェクトメソッドをアドレスした場合、返されるオブジェクトの権限は常にソースオブジェクトから継承されています (このルールの例外については、対応するメソッドにコメントとして記述されています) 。
注:不確定なオブジェクト動作のため、スクリプトオブジェクトをスクリプト完了後に使用することはできません。
注:ABBYY FlexiCapture スクリプトエディタに書かれたスクリプトのデバッグには、MessageBoxメソッドを使用することができます。
カスタム機能
スクリプトエディタにより、ユーザーは自分の機能や手順を作成し、それをスクリプトコードから呼び出すことができます。
カスタム機能と手順は、グローバルモジュールに書かれなければならず、これにはスクリプトエディタからアクセスできます。このためには、スクリプトエディタのツールバー内のドロップダウンリストから、利用可能なグローバルモジュールを選択します:ルールグローバルスクリプトモジュール,グローバルスクリプトモジュールのエクスポート,EventsまたはNonInteractiveProcessor。
1つのモジュール内のすべての機能は、同じ言語で書かれていなければなりません。スクリプトのコアコードは、対応するグローバルモジュールで使用されている言語とは異なる言語で書くことができます。
グローバル機能のうち、JScript®,JScript.CompactとVBScriptのスクリプト言語で書かれたものは、このどれかの言語で書かれたスクリプトから呼び出すことができます。例えば、VBScript で書かれたルールのコードから、JScript で書かれたグローバルモジュールに含まれる機能を呼び出すことができます。
.Net languages で書かれたグローバル機能は、.Net languages のうちのどれか (C#.Net,VisualBasic.NetまたはJScript.Net) で書かれたスクリプトから呼び出すことができます。
グローバルモジュールから機能を呼び出すためには、対応するプレフィックス (Rules,Export,EventsまたはNonInteractiveProcessor) を使用しなければなりません。例えば、DoSomethingの機能を、ルールグローバルスクリプトモジュールモジュールから呼び出すには、以下のようにします:Rules.DoSomething ()。
注:.Net languagesで書かれたスクリプトでは、グローバルモジュールの機能をプレフィックスを用いずにその名前で呼び出します。
注:スクリプトエディターでテキスト定数にRTL言語を使用することはできません。RTLテキストをスクリプトに追加する必要がある場合は、次のいずれかの回避策を使用してください:
- RTLテキストをユーザースクリプトメッセージまたは環境変数に配置します。
- プロジェクトまたは文書定義に外部アセンブリを使用する(詳細は、外部アセンブリをご覧ください)。
スクリプト実行タイムアウト
既定のタイムアウトは、エクスポートが30秒、その他のスクリプトが10秒です。
既定のタイムアウトを変更するには、レジストリで以下の値を指定します:
HKEY_CURRENT_USER\Software\ABBYY\FlexiCapture\12.0\Controller\ScriptSupport\DefaultScriptTimeout
レジストリのタイムアウトの値は、1000分の1秒単位で指定します。指定タイムアウトより長い時間がスクリプトの実行にかかる場合、それは終了し、"スクリプト実行タイムアウト" というエラーメッセージが返されます。スクリプトがインポート、認識、エクスポートのタスクの一部である場合、同様のエラーメッセージがログに記録されます。
重要!スクリプト実行タイムアウトは、JScript と VBScript で書かれたスクリプトだけに適用されます。
重要!NetworkService でスクリプト実行タイムアウトを変更するためには、対応するユーザープロファイルのレジストリブランチを修正する必要があります。
オブジェクトモデル
オブジェクトモデルは、ABBYY FlexiCapture の初期のバージョンで作成されたスクリプトと互換性があります。
12.04.2024 18:16:06