カスタムバリデーションの追加
利用可能な Liferay 7.4 U27+/GA27+
バリデーションは、有効なフィールドエントリを決定するためのルールを設定します。 各バリデーションには、独自のトリガー、条件、エラーテキストがあり、オブジェクトUIから設定することができます。 Groovyスクリプト または Liferay式 を使ってバリデーションを定義することができます。
Groovy スクリプトの検証は、Liferay Experience Cloud Self-Managed と Liferay DXP Self-Hosted でのみ利用可能です。
以下の手順で、バリデーションを追加します。
グローバルメニュー(
) を開き、 コントロールパネル タブを開き、 オブジェクト をクリックします。
オブジェクト定義の編集を開始します。
noteLiferay 7.4 U38+/GA38+ では、システムオブジェクトにカスタムバリデーションを追加することができます。
Validations タブを開き、 Add(
) をクリックします。
ラベル を入力し、バリデーションタイプ、つまり Groovy または 式ビルダー を選択します。
[Save] をクリックします。
新しく作成したバリデーションの編集を開始します。
[Conditions] タブに移動して、バリデーションに条件を追加します。
Groovyを使用する場合、サイドパネルから利用可能なデータフィールドを参照し、条件に追加することができます。 詳細は、 Groovyバリデーションの使用 を参照してください。
式ビルダーを使用する場合、サイドパネルからフィールド、演算子、関数を参照し、条件に追加できます。 詳細は、 式ビルダーバリデーションの使用 を参照してください。
tip条件には、複雑な検証をするための複数のフィールドや関数を含めることができます。
ローカライズ可能な エラーメッセージを入力します 。 このメッセージは、バリデーションが開始され、フィールドの入力が1つ以上の定義された条件を満たさない場合に表示されます。
[Basic Info] タブを開き、バリデーションを 有効に します。
Trigger Event を選択し、検証の実行タイミングを決定します。
各検証は、1つのトリガーイベントしか持つことができません。
[Save] をクリックします。
一度有効にすると、すべての新規オブジェクトの入力に対して検証が実行されます。
Groovyバリデーションの使用
Groovy の検証は、標準的な Groovy Script の機能をすべてサポートしています。 条件を定義する場合、 invalidFields
変数を使用する必要があります。 LiferayはinvalidFields
がtrue
を返す場合にのみ、確認エラーメッセージを表示します。
Liferay 7.4 U33+とGA33+では、Liferayは GroovyShellクラス を使って、 [保存] をクリックしたときにGroovy スクリプトの構文が有効であるかどうかをチェックします。 スクリプトが無効な場合、Liferayはエラーメッセージを表示します。
式ビルダーバリデーションの使用
Expression Builderには、定義済みのフィールド、演算子、関数が用意されており、Elementsサイドパネルからアクセスすることができます。 要素をクリックすると、その要素が条件エディタに追加されます。 これらの関数は、ブール値を返します。 提供される演算子や関数の完全なリストについては、 式ビルダーバリデーションのリファレンス を参照してください。
Expression Builderの検証は、テキスト、数値、日付、およびブーリアンフィールドタイプにのみ使用できます。
Liferay 7.4 U33+ と GA33+ では、Liferay は Save をクリックしたときに、式が有効な構文かどうかをチェックします。 式が無効な場合、Liferayはエラーメッセージを表示します。
式ビルダーの演算子
この表は、Expression Builderの検証で利用できる演算子の一覧です。
演算子 | 説明 |
---|---|
And ( AND ) |
依存した関係を表すのに使用される等位接続詞 |
Divided By ( / ) |
除算の数学演算子 |
Minus ( - ) |
除算の数学演算子 |
Or ( OR ) |
独立した関係を表すのに使用される等位接続詞 |
Plus ( + ) |
加算の数学演算子 |
Multiply ( * ) |
乗算の数学演算子 |
式ビルダーの関数
この表は、利用可能なExpression Builder関数とその互換性のあるフィールドタイプの一覧です。
演算子 | テキストフィールド | 数値フィールド | 日付フィールド |
---|---|---|---|
日付を比較 | ✔ | ||
連結 | ✔ | ||
条件 | ✔ | ✔ | ✔ |
が以下を含む | ✔ | ✔ | |
含まない | ✔ | ✔ | |
未来の日付 | ✔ | ||
URL である | ✔ | ||
Is an Email | ✔ | ||
小数である | ✔ | ||
が空の場合 | ✔ | ||
が以下と等しい | ✔ | ✔ | |
以上 | ✔ | ||
Is Greater Than or Equal To | ✔ | ||
整数である | ✔ | ||
以下 | ✔ | ||
Is Less Than or Equal To | ✔ | ||
等しくない | ✔ | ✔ | |
一致 | ✔ | ||
過去の日付 | ✔ | ||
範囲 | ✔ | ||
合計 | ✔ |
利用可能なフィールドのリファレンス
7.4 U41+/GA41+ 用
条件を構成する際には、オブジェクトのカスタムフィールドやシステムフィールドのいずれかを使用することができます。 また、1対多のリレーションの子側のリレーションシップフィールドから選択することも可能です。
以下は、カスタムオブジェクトで利用可能なすべてのデフォルトフィールドです。
項目 | 説明 |
---|---|
companyId |
エントリーが作成されたポータルインスタンス |
createDate |
エントリーが作成された日時 |
externalReferenceCode |
エントリーの外部参照コード |
groupId |
エントリーが作成されたサイトID |
lastPublishDate |
エントリーが最後に公開された日付 |
modifiedDate |
エントリーが最後に更新された日付 |
mvccVersion |
エントリーのMVCCバージョン |
objectDefinitionId |
エントリーのオブジェクトのID |
objectEntryId |
エントリーのID |
status |
エントリーのワークフローステータス |
statusByUserId |
ワークフローで割り当てられたユーザーのID |
statusByUserName |
ワークフローで割り当てられたユーザーの名前 |
statusDate |
ワークフローステータスが最後に更新された日付 |
userId |
エントリー作成者のID |
userName |
エントリー作成者のユーザー名 |
uuid |
エントリーの重複しないユニバーサルID |
システムオブジェクトは、上記の表と重複する部分もありますが、独自のデフォルトフィールドを持っています。