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

# ルールによる検証

> Document skill でルールを使用して fields の値を検証、変更、計算する方法について説明します。組み込みルール、実行順序、テーブルでのルールの使用方法を扱います。

ルールを使うと、定義した条件に基づいて抽出データを自動的に検証し、fields の値を変更し (たとえば複数の fields の合計を計算するなど) 、条件を満たさないドキュメントを手動確認に回すことができます。

<div id="how-rules-work">
  ## ルールの仕組み
</div>

同じグループ (表など) にある繰り返し field だけを参照するルールは、**繰り返しルール**になります。これは、インスタンスごとに 1 回ずつ (最初のインスタンス、次に 2 番目、というように) 実行されます。表の各行がルールで処理されるのはこのためです。

1 つ以上のルールを満たさない field を含む文書は、手動確認に送られます。手動確認中にオペレーターが field の値を変更すると、該当するルールが再度実行されます。繰り返し field の 1 つのインスタンスだけが変更された場合 (たとえば、表の 1 つのセルのみ) 、繰り返しルールは変更されたインスタンスに対してのみ再実行されます。

<div id="execution-order">
  ### 実行順序
</div>

Vantage は、ルールを事前定義された順序で実行します。

* field を**読み取る**ルールは、その field に**書き込む**ルールの後に実行されます。
* 連鎖した依存関係は順番に実行されます。たとえば、ルール A が field X に書き込み (これをルール B が読み取り) 、ルール B が field Y に書き込む場合、A は B より前に実行されます。
* 複数のルールが同じ field に書き込む場合は、作成順に実行されます。
* 循環依存関係、つまりルール A が X を読み取って Y に書き込み、ルール B が Y を読み取って X に書き込む状態では、エラーが発生します。

<div id="create-a-rule">
  ## ルールの作成
</div>

field 検証ルールを追加するには:

<Steps>
  <Step title="New rule をクリックする">fields プロパティで **New rule** をクリックします。</Step>
  <Step title="ルールに名前を付けて設定する">ダイアログで、ルール名と検証対象の fields を指定します。ドロップダウンリストから該当する fields を選択してください。</Step>
</Steps>

スクリプトを使用してカスタムルールを作成するには、[ビジネス ルールの自動化](/ja/vantage/documentation/skill-designer/document/rule-verification/business-rules-automation) を参照してください。

<div id="built-in-rules">
  ## 組み込みルール
</div>

| ルール               | 内容                                                                                                                                                          | 適用対象   |
| :---------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------- | :----- |
| **Check Sum**     | 複数のfieldの値を加算し、その結果を別のfieldと比較します。                                                                                                                          | 数値, 金額 |
| **Check Product** | 複数のfieldの値を乗算し、その結果を別のfieldと比較します。                                                                                                                          | 数値, 金額 |
| **比較**            | 複数のfieldの値を比較します。                                                                                                                                           | 任意     |
| **結合**            | 複数のfieldの値を対象のfieldに結合します (対象のfieldはあらかじめ存在している必要があります) 。用意されている一覧から区切り文字を追加できます。                                                                           | 任意     |
| **データ カタログ検索**    | fieldの値をデータ カタログ内のレコードと照合します。詳細については、[データ カタログ検索ルールの作成](/ja/vantage/documentation/skill-designer/document/rule-verification/setting-lookup-rules)を参照してください。 | 任意     |

<div id="use-rules-with-tables">
  ## 表でルールを使用する
</div>

すべての組み込みルールおよびカスタムルールは、列をfieldとして指定することで表のセルに適用できます。すると、ルールはその列内のすべてのセルに対して実行されます。1つのルールで、表の列と、その表の外側にあるfieldsの両方を参照できます。

**Check Sum** と **Check Product** の各ルールは、一般的な3つの表パターンをサポートしています:

<div id="compare-a-column-total-with-an-external-field">
  ### 列の合計を外部fieldと比較する
</div>

1 つ以上の列のすべてのセルを合計 (または乗算) し、その結果をテーブル外の単一のfieldと比較します。

* **Add Up Fields** または **Fields to Multiply** で、列を選択します。異なるテーブルの列を組み合わせることもできます。1 列だけでも使用できます。
* **Compare Sum with** または **Compare Product with** で、外部fieldを選択します。選択した列内のすべてのセルがまとめて計算され、その結果がそのfieldと比較されます。

<div id="compare-two-columns-row-by-row">
  ### 2 つの列を行ごとに比較する
</div>

入力 field と比較 field の両方が同じテーブルの列である場合、このルールは繰り返しルールとなり、各行に対して 1 回ずつ実行されます。たとえば、単価列に注文数量列を掛けた結果を行合計列と比較することで、各行の計算が正しいことを検証できます。

<div id="compare-a-column-with-another-column-plus-a-constant-external-field">
  ### 列を、別の列に定数の外部fieldを加えた値と比較する
</div>

テーブル列とテーブル外のfieldを入力として渡し、比較対象には同じテーブルの別の列を指定します。このルールは各行につき1回実行され、外部fieldはすべての行で定数として使用されます。

<div id="related-topics">
  ## 関連トピック
</div>

* [ビジネス ルールの自動化](/ja/vantage/documentation/skill-designer/document/rule-verification/business-rules-automation)
* [データ カタログ検索ルールの作成](/ja/vantage/documentation/skill-designer/document/rule-verification/setting-lookup-rules)
* [fields を追加する](/ja/vantage/documentation/skill-designer/document/adding-fields/adding-fields)
