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

# フォーム数式

> YiDAのフォーム数式で入力効率化、エラー削減、業務ロジック計算、作業フロー自動化を実現する方法を解説します。ユースケース、設定手順、注意事項を紹介します。

YiDAの数式は、フォーム入力の効率化、入力エラーの削減、カスタムデータ処理をサポートします。さらに、業務ロジックの計算や作業フローの自動化にも対応しています。本記事では、YiDAのフォーム数式の使用方法について解説します。

## ユースケース

* フォームデータの入力・編集時に、手動入力の代わりに数式でコンポーネントの値を自動計算し、効率化とエラー削減を実現します。
* ユーザーがフォームデータを送信する際、数式で検証ルールを定義できます。入力がルールに合致しない場合、送信はブロックされ、エラーメッセージが表示されます。
* フォームデータの送信後、数式で業務ルールを適用し、他のフォームのデータを追加、更新、削除できます。

## 数式を使用する

以下の手順に従って、YiDAの数式を使用します。

1. YiDAで数式エディタのダイアログを開きます。

例として、次の図はコンポーネントに数式を設定する方法を示しています。

2. 数式エディタのダイアログで、**関数一覧**をクリックし、必要な関数を選択します。

例として、テキスト連結関数の**CONCATENATE**を選択します。

3. 左側で、使用するフォームフィールドを選択します。

例として、本記事では**一行テキスト1**と**一行テキスト2**を連結します。

4. 関数の設定が完了したら、右下の**完了**をクリックして設定を確定します。

## 数式使用時の注意事項

* 現在のフォームフィールドまたはすべてのフォームフィールドからフィールドを選択する

ほとんどの場合、数式で使用するフィールドは**現在のフォームフィールド**から選択します。

業務関連ルールの関数のみ、**すべてのフォームフィールド**を使用します。

注意：現在のフォームから選択したフィールドは青色で表示され、すべてのフォームフィールドから選択したフィールドは緑色で表示されます。

* 演算子

数式は、基本的な算術演算子である +、-、\*、/ をサポートします。

| 加算 | 減算 | 乗算 | 除算 |
| -- | -- | -- | -- |
| +  | -  | \* | /  |

* 関数は大文字で入力する

関数名はすべて大文字で入力してください。入力中に候補が自動表示され、有効な関数名は紫色で表示されます。

* 現在のフォームから選択したフィールドは**青色**、すべてのフォームフィールドから選択したフィールドは**緑色**で表示されます（業務関連ルールのみすべてのフォームフィールドを使用します）。
* 関数名はすべて大文字で入力してください。
* 数式内のカンマ、括弧、その他の記号はすべて半角（英字）で入力してください。
* 非表示フィールドは、**常に送信**がオンの場合のみ計算に含まれます。

## FAQ

**Q：コンポーネントに数式を設定した後、値を手動で編集できないのはなぜですか？**

コンポーネントが数式でデフォルト値を設定している場合（例：`user()` 数式が設定されており、コンポーネントの状態が正常である場合）、フォーム送信時に値を編集できないときは、そのコンポーネントが他のコンポーネントの数式から参照されていないかを確認してください。他のコンポーネントの数式から参照されているコンポーネントは、手動で編集できません。

**Q：保存に失敗しました：フォームに循環する数式依存関係が含まれています。**

このエラーメッセージが表示される場合、数式の設定が編集中のコンポーネント自身を参照していることを意味します。

例：フォームに数値1と数値2のコンポーネントが含まれているとします。数値2に設定された数式が数値2自身を参照している場合、システムは循環依存エラーを返します。

**Q：データを処理中です。しばらく経ってから再試行してください。**

フォームの送信または保存時に、システムは実行中の数式計算がないかを自動的に確認します。数式計算が進行中の場合、システムは「データを処理中です。しばらく経ってから再試行してください。」と表示します。

**そのまま続ける：続行するとデータが不整合になる可能性があります。データ処理の完了をお待ちください。**
