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

# スクリプトルール

> ABBYY FlexiCapture でスクリプトルールを作成し、カスタムの検証および正規化アルゴリズムを実行できます。IRuleContext を使用して、キャッシュされたデータセットにアクセスできます。

<div id="what-it-does">
  ## 機能
</div>

スクリプトに基づくルールを使用すると、ドキュメントの検証や正規化を行うための複雑なカスタム アルゴリズムを作成できます。

スクリプトルールは、 *(管理者)* [Document Definition プロパティ](/ja/flexi-capture/templates/template-properties) *(開発者)* Document Definition プロパティの Rules タブで設定します。

<div id="parameters">
  ## パラメーター
</div>

| **名前**  | **型**                                                           | **アクセス** | **説明**     |
| ------- | --------------------------------------------------------------- | -------- | ---------- |
| Context | [IRuleContext](/ja/flexi-capture/appendix/scripts/irulecontext) | ルール設定による | ルールのコンテキスト |

複数のルールで使用するプロシージャは、スクリプト エディターからアクセスできるグローバル ルール モジュールに記述します。スクリプト エディターのツールバーにあるドロップダウンリストから、Rule Global Script Module を選択します。グローバル ルール モジュールには、Document Definition エディター (**Document Definition → Script Modules →** Rule Script...) からもアクセスできます。

スクリプト ルールを使用すると、キャッシュされたデータ セットのレコードにアクセスできます。これは、バリデーションルールを手動で作成する必要がある場合に便利です。キャッシュされたデータ セット内のレコードにアクセスするには、次の手順を実行します。

1. [IRuleContext](/ja/flexi-capture/appendix/scripts/irulecontext).DataSet メソッドを使用してデータ セットに接続します。
2. [IDataSet](/ja/flexi-capture/appendix/scripts/idataset).CreateQuery メソッドを使用してクエリを作成します。
3. [IDataSetQuery](/ja/flexi-capture/appendix/scripts/idatasetquery).AddValue メソッドを使用して、1 つ以上の条件を追加します。
4. [IDataSet](/ja/flexi-capture/appendix/scripts/idataset).GetRecords メソッドを使用して、クエリに一致するデータを取得します。クエリに一致するレコード数を確認する必要がある場合は、[IDataSet](/ja/flexi-capture/appendix/scripts/idataset).GetRecordsCount メソッドを使用します。
5. [IRecordset](/ja/flexi-capture/appendix/scripts/irecordset).GetRecord メソッドを使用すると、特定のインデックス番号のレコードを取得できます。

スクリプトまたはグローバル モジュールで [external assembly](/ja/flexi-capture/appendix/scripts/user-assembly) のクラスやメソッドを使用する場合は、Document Definition プロパティの .NET References タブでアセンブリ ファイルをアタッチする必要があります。

<div id="administrator-see-also">
  ## (管理者) 参照:
</div>

*(管理者)*  [スクリプトルール](/ja/flexi-capture/templates/rule-script)
