Form Rules
Liferay DXP 2024.Q4/Portal GA129 の時点で、Forms アプリケーションは メンテナンス モード になっています。 フォームを オブジェクト および フォーム コンテナー フラグメント に移行して、ソリューションの将来性を確保します。
フォームは、1つの質問に対する回答でフォームの残りの部分が変化するような、動的なものにすることができます。 1つの回答で次の3つの質問をスキップできる場合や、追加の質問に答えなければならない場合などが考えられます。 このようなフィールドは、条件付きフィールドと呼ばれます。 どのフィールドを条件付きにするかを決めたら、フォームルールを使って、その質問に対する回答に基づいて次のアクションを決定します(例えば、複数ページのフォームでは、3ページ目をスキップして4ページ目に進むなど)。
Liferay 7.4 以降では、 フォーム フィールド を非表示にすることもできます。 つまり、データプロバイダーが非表示フィールドにデータを入力し、その非表示フィールドをルールで使用して動的にフォームを変更できるのです。
フォームルールの条件とアクション
ルールには2つの要素があります。
- 条件 により、アクションが実行されるかどうかが決まります。
- アクション は条件が満たされた場合に何が起こるかを決定します。
ルールはデフォルトではJSON形式でデータベースに保存されます。
ユーザーはOR または AND を選択して、複数の条件の間の関係を定義することができます。
- OR: 指定した条件の いずれか が trueと評価された場合に、アクションがトリガーされます。
- AND: 指定した条件 すべて が trueと評価された場合にのみ、アクションがトリガーされます。

ルールビルダーへのアクセス
-
フォームルールを適用するフォームに移動します。
-
ルール タブをクリックします。
![[Rules]タブをクリックします。](https://resources.learn.liferay.com/images/dxp/latest/en/low-code/forms/form-rules/images/02.png)
-
開始するには、 追加 ボタン (
) をクリックします。
条件の指定
ルールを作成するときは、フィールドを指定する必要があります(例: 18歳以上ですか?)、条件(はと等しい)、および比較する値(はい/いいえ)です。 条件の if 文 が trueの場合、アクションがトリガーされます。 falseの場合、何も起こりません。
| 条件 | 説明 |
|---|---|
| が以下と等しい | 入力された値が条件と一致するかどうかをチェックします。 例:言語がスペイン語と一致した場合、アクションをトリガーします。 |
| 等しくない | 入力された値が条件と一致していないかどうかをチェックします。 |
| が以下を含む | 入力された値が、その値を含んでいるかどうかをチェックします。 |
| 含まない | 入力された値が、その値を含んでいないかどうかをチェックします。 |
| が空の場合 | フィールド が 空かどうかを確認します。 |
| は空ではありません | フィールドが空でない限り、アクションを実行します。 |
| ユーザー | ユーザーが特定のロールに所属しているかどうかを確認します。 Yesの場合、アクションがトリガーされます。 |
フォームルールアクション
次のアクションを使用できます。

| 操作 | 説明 |
|---|---|
| 以下を表示する: | あらかじめ定義された条件に基づいて、フォームフィールドの可視性を設定します。 |
| 有効にする | 定義済みの条件を使用して、フィールドを有効または無効にします。 |
| 必須 | 定義済みの条件を使用して、フィールドを必須にします。 |
| ページへ移動 | ユーザーの入力内容に応じて、一部のフォームページをスキップして関連するページに直接移動します。 このルールは、2番目のページがフォームに追加されるまで、ルールビルダーに表示されません。 |
| データプロバイダーによる自動入力 | 別のフィールドで条件が満たされたときにフィールドにデータを入力するには、 データ プロバイダー を使用します。 |
| 計算 | 他のフィールドに入力されたデータを使って、フィールドに計算値を入力します。 |