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

# UPDATE - 更新

> YiDAフォームの標準コンポーネント値やサブフォームデータを条件に基づき更新するUPDATE関数の使い方を解説。在庫管理や出荷処理などの具体的な業務シナリオに沿った数式設定例、適用範囲、注意事項を紹介します。

UPDATE()関数は、フォーム内の標準コンポーネント値およびサブフォームデータを更新します。サブフォームに複数のレコードが含まれている場合、指定した条件に一致するレコードのみが更新されます。

## 形式

UPDATE()関数の形式は以下のとおりです。

```javascript theme={"theme":{"light":"github-light","dark":"github-dark"}}
UPDATE(TargetForm, MainCondition, SubCondition, TargetColumn1, TargetValue1, TargetColumn2, TargetValue2...)
```

* ターゲットフォーム：データを更新する対象のフォームです。

* メイン条件：ターゲットフォーム内で更新するフォームレコードを特定します。メイン条件は論理関数を用いて構築します。

* サブ条件：更新するフォームレコードは特定済みで、更新対象の値がそのレコード内のサブフォームに属する場合に使用します。サブ条件により、どのサブフォームレコードを更新するかを特定します。論理関数を用いて構築します。サブフォームの値を更新する必要がない場合は、""を入力してください。この引数は省略できません。

* ターゲット列：

* ターゲット値：ターゲット列に更新する値です。ターゲット値には、現在の入力フォームのコンポーネント値、更新対象となるターゲットフォームのコンポーネント値、固定値、または他の関数で構成した値を指定できます。

## ユースケース

### 入力フォームの標準コンポーネントのデータでターゲットフォームの標準コンポーネントのデータを更新する

**使用するフォーム**

* 在庫フォーム：商品名（一行テキスト）、在庫数量（数値コンポーネント）
* 出荷フォーム：商品名（ドロップダウン選択）、現在の在庫（数値コンポーネント）、出荷数量（数値コンポーネント）

**要件**

* 在庫フォームには、各商品の在庫数量が保存されています。商品は出荷フォームを通じて出荷されます。
* 出荷フォームの商品名は、在庫フォームの商品から取得します。
* 出荷フォームで商品を選択すると、現在の在庫数量が表示されます。
* 出荷時、出荷数量は在庫数量を超えることはできません。
* 出荷後、在庫フォーム内の該当商品の在庫数量は、それに応じて差し引かれる必要があります。

**数式の設定と説明**

* 要件の説明：

* 数式の設定：以下のとおり、出荷フォームのビジネス関連ルールに数式を設定します。

* 数式の説明：

### 入力フォームのサブフォームコンポーネントのデータでターゲットフォームの標準コンポーネントのデータを更新する

**使用するフォーム**

* 出荷フォーム：商品カテゴリ（ドロップダウン選択）、出荷サブフォーム（サブフォームコンポーネント）。出荷サブフォームには、商品名（ドロップダウン選択）、現在の在庫（数値コンポーネント）、出荷数量（数値コンポーネント）が含まれます。
* 在庫フォーム：商品カテゴリ（ドロップダウン選択）、商品名（一行テキスト）、在庫数量（数値コンポーネント）

**要件**

出荷フォームには出荷明細が含まれ、複数の商品を一度に出荷できます。出荷された各商品について、在庫フォームの対応する在庫数量を差し引きます。

**数式の設定と説明**

* 要件の説明：出荷フォームには出荷明細が含まれ、複数の商品を一度に出荷できます。出荷された各商品について、在庫フォームの対応する在庫数量を差し引きます。

* 数式の設定：以下のとおり、出荷フォームのビジネス関連ルールに数式を設定します。

* 数式の説明：

### 入力フォームの標準コンポーネントのデータでターゲットフォームのサブフォームコンポーネントのデータを更新する

**使用するフォーム**

* 在庫フォーム：商品カテゴリ（ドロップダウン選択）、在庫サブフォーム（サブフォームコンポーネント）。在庫サブフォームには、商品名（一行テキスト）と在庫数量（数値コンポーネント）が含まれます。出荷フォーム：商品カテゴリ（ドロップダウン選択）、商品名（一行テキスト）、出荷数量（数値コンポーネント）

**要件**

在庫フォームには複数の商品の在庫数量が記録されています。出荷フォームでレコードを送信するたびに、在庫フォームのサブフォーム内で該当する商品データが見つかった場合、一致した商品の在庫数量から出荷数量が差し引かれます。

**数式の設定と説明**

* 要件の説明：在庫フォームには複数の商品の在庫数量が記録されています。出荷フォームでレコードを送信するたびに、在庫フォームのサブフォーム内で該当する商品データが見つかった場合、一致した商品の在庫数量から出荷数量が差し引かれます。

* 数式の設定：以下のとおり、出荷フォームのビジネス関連ルールに数式を設定します。

* 数式の説明：

## 注意事項

* ターゲットフォームのメインフォームフィールドを更新する場合、UPDATE関数は最大100件のレコードの更新に対応しています。ターゲットフォーム内のレコードのサブフォーム明細を更新する場合、Freeプランでは最大50件の明細レコード、ベーシック版およびプロフェッショナル版では最大500件のレコードに対応します（デフォルトは50件です。フォーム編集ページでサブフォームレコードの上限を500に設定してください）。

* UPDATE関数は、1回の実行で1つのサブフォームコンポーネント内のデータのみ操作できます。複数のサブフォームコンポーネント内のデータを操作する必要がある場合は、複数のUPDATE関数を設定してください。

* メイン条件とサブ条件は論理関数を用いて構築します。ANDおよびORを除き、その他の論理関数の第一引数はターゲットフォームのコンポーネントである必要があり、2つの引数の順序を入れ替えることはできません。

* プレミアム数式コンポーネントの対応スコープは以下のとおりです。

* 数式の設定時に「実行に失敗しました。ビジネスルールの設定をご確認ください」というエラーが表示された場合、どうすればよいですか？

このイシューは、マッチング条件に設定されたフィールドがフィールド上限を超えた場合に発生する可能性があります。現在、クエリ条件のサイズは1 KB未満（約512文字）に制限されています。この上限を超えると実行に失敗します。シリアル番号、インスタンスID、電話番号など、一意性を持つフィールドをマッチングに使用することで、このイシューを回避できます。
