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

# フォーム検証

> DingTalk YiDAでフォームデータを検証する方法を解説。請求書情報入力フォームを例に、一意性チェック、日付範囲、金額範囲などの検証ルールの設定手順と、EXIST関数や論理関数、日付関数を用いた数式の記述方法を紹介します。

<Warning>
  注意：ワークフローフォームの検証については、[**こちら**](/ja/yida/process/emt041) をご参照ください。
</Warning>

## 1. 検証ルール

### 1.1 フォーム検証ルールの活用シーン

（1）フォーム内のデータがルールに合致するかを検証します。検証ルールに合致した場合はデータを送信できず、検証ルールに合致しない場合は送信が可能となります。

（2）送信をブロックするためのプロンプトテキストは、検証ルールに合致した際に表示されます。

（3）検証ルールは [**YiDA 数式**](/ja/yida/form/gvtpe4) を使用して記述します。

**検証ルールの設定パス**：フォーム編集ページ >> 右上のフォーム設定をクリック >> 数式検証

**注意**：本検証は現時点で、通常フォームの統合と自動化および業務関連ルールでは有効になりません。

## 2. ケースシナリオと操作手順

### 2.1 ケースシナリオ

請求書情報入力フォームがあり、請求書番号、請求書日付、請求書タイプ、請求書金額の4つのフィールドを含みます。以下の検証条件を満たす場合のみデータを送信できます。

（1）請求書番号：一意性を検証

（2）請求書日付が30日以内であること

（3）請求書金額が0〜50000の範囲内であること

### 2.2 操作手順

（1）フォーム設定 >> 右側の属性 >> 数式を追加

検証数式を設定

数式編集ページ

（2）1つ目の条件を設定：請求書番号の一意性。

**注意**：[**EXIST**](/ja/yida/form/vwncwe) 関数はフォームフィールドの一意性検証（重複除去）に使用され、パラメータ値が既に送信済みデータに存在するかを判定します。

数式フォーマット：`EXIST(Invoice Number)` は、今回送信する請求書番号が既に送信済みデータに存在するかを判定することを意味します。存在する場合は送信がブロックされ、存在しない場合は送信が許可されます。

以下のとおりです。

EXIST関数の使用

エラープロンプト

（3）数式を追加をクリックし、2つ目の条件を設定：請求書日付が30日以内

数式は次のとおりです：`GE(DAYS(TODAY(),DATE(Invoice Date)),30)`

関数の使用方法については、次を参照してください：[**論理関数の使用方法**](/ja/yida/form/mnx96u) [**日付関数の使用方法**](/ja/yida/form/dh7m8n)

数式 GE(DAYS(TODAY(),DATE()) の使用

エラープロンプト

（4）最後に、請求書金額の検証条件を設定：請求書金額が0〜50000の範囲内

数式は次のとおりです：`OR(LE(Invoice Amount,0),GE(Invoice Amount,50000))`。これは、請求書金額が0以下または50000以上の場合、送信が許可されないことを意味します。関数の使用方法については、次を参照してください：[**論理関数の使用方法**](/ja/yida/form/mnx96u)

数式 OR(LE(),GE()) の使用

エラープロンプト

**注意**：ルールを設定した後は、必ず保存をクリックしてください。

## 3. よくあるシナリオ

### 3.1 フォームに重複除去検証を設定するには？

方法：フォーム検証エリアで EXIST(Product Category) 関数を設定します。

* 通常フォームの重複除去検証

* ワークフローフォームの重複除去検証
