> ## 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のフォーム業務関連ルールの概念と活用シーンを解説。INSERT・UPDATE・UPSERT・DELETEなどのプレミアム関数を使用してフォーム間でデータを同期する方法や、家計簿アプリを例にした明細送信・削除時のサマリ表更新の実装手順、よくある質問への回答を紹介します。

## 1. フォーム業務関連ルール

### 1.1 業務ルールとは

主にフォーム間の関係を処理するために使用します。あるフォームのデータの変更が、別のフォームのデータに同期的に影響を与える必要がある場合（追加、更新、削除）に利用します。

**パス**：フォーム編集ページに入る >> フォームの空白領域をクリック >> 右側にフォームイベントが表示されます >> 業務関連ルールを追加

業務関連ルールを追加

### 1.2 活用シーン

例えば、商品の出庫・入庫・最終在庫を計算する必要がある場合：商品が入庫されると、在庫表内の該当商品の在庫が増加します。商品が出庫されるか、入庫フォームが削除されると、在庫表内の該当商品の在庫が減少します。

## 2. 業務関連ルール機能の説明

### 2.1 フォームイベント

* 業務関連ルールは、3 つのイベント（フォーム送信、フォーム削除、フォーム編集）すべてでトリガーできます。
* 業務関連ルールでは、アプリ内の他のフォームに対して作成・読み取り・更新・削除の操作を実行するために、以下 4 つのプレミアム関数が必要です。

#### 2.1.1 [INSERT](/ja/yida/form/yhdw79)

形式：INSERT(form, form.field1, value1, form.field2, value2,......)

主に、現在のエントリフォームのデータをターゲットフォームに挿入し、ターゲットフォームに新しいインスタンスを挿入するために使用します。現在のフォームの操作が成功すると、ターゲットフォーム（form）に新しいインスタンスが挿入され、新しいインスタンス内でターゲットフィールド（field1, field2, ......）に順番にターゲット値（value1, value2, ......）が設定されます。残りのフィールドはデフォルトで空になります。

#### 2.2.2 [UPDATE](/ja/yida/form/svrgxm)

形式：UPDATE(form, rule, rule2, form.field1, value1, form.field2, value2,......)

主に、ターゲットフォーム内の指定条件を満たすデータを更新するために使用します。現在のフォームの操作が成功すると、ターゲットフォーム（form）にフィルタ条件（rule, rule2）を満たすインスタンスがある場合、そのインスタンスのターゲットフィールド（field1, field2, ......）が順番にターゲット値（value1, value2, ......）に更新されます。

#### 2.2.3 [UPSERT](/ja/yida/form/al3gkc)

形式：UPSERT(form, rule, rule2, form.field1, value1, form.field2, value2,......)

主に、ターゲットフォーム内のデータを挿入または更新するために使用します。現在のフォームの操作が成功すると、ターゲットフォーム（form）にフィルタ条件（rule, rule2）を満たすインスタンスがある場合、UPDATE と同じ方法でインスタンスが更新されます。存在しない場合は、INSERT と同じ方法で新しいインスタンスが挿入されます。

#### 2.2.4 [DELETE](/ja/yida/form/fqtnhh)

形式：DELETE(form, rule, rule2)

主に、ターゲットフォームからデータを削除するために使用します。現在のフォームの操作が成功すると、ターゲットフォーム（form）にフィルタ条件（rule, rule2）を満たすインスタンスがある場合、そのインスタンスが削除されます。

### 2.2 事例説明

家計簿機能を実装してみましょう。家計簿には 2 つのフォームが含まれます：明細表と月次サマリ表です。

含まれる具体的な機能：

1. 明細レコードが送信されたときに、新しい金額をその月の集計支出額に加算する。
2. 明細レコードが削除されたときに、その金額をその月の集計支出額から減算する。

* 手順

（1）フォームの右側 >> 属性 >> 業務関連ルールを追加

業務関連ルール

（2）業務ルールを設定：明細レコードが送信されたときに、新しい金額をその月の集計支出額に加算する。

使用するプレミアム関数：[**UPDATE**](/ja/yida/form/svrgxm)

（3）業務ルールを設定：明細レコードが削除されたときに、その金額をその月の集計支出額から減算する。

使用するプレミアム関数：[**UPDATE**](/ja/yida/form/svrgxm)

（4）**送信**と**削除**の両方に業務ルールを関連付けます。これにより、フォームの送信時にデータが集計され、フォームの削除時にもデータが集計されます。

この時点でフォームの保存を忘れないでください。2 つの業務ルールの設定が完了しました。テストしてみましょう：

（1）明細レコードが送信されたときに、新しい金額をその月の集計支出額に加算する。

（2）業務ルールを設定：明細レコードが削除されたときに、その金額をその月の集計支出額から減算する。

**注意**：ワークフローフォームの関連設定はフォームデザイナー内にはなく、ワークフロー設計内で設定します。詳細な設定については、[こちらをクリックしてご覧ください](/ja/yida/process/emt041)
