WYSIWYG オーサリングのルールエディターの概要
この機能は、早期アクセスプログラムを通じて使用できます。アクセスをリクエストするには、GitHub 組織名とリポジトリ名を記載したメールを公式アドレスから aem-forms-ea@adobe.com に送信してください。 例えば、リポジトリ URL が https://github.com/adobe/abc の場合、組織名は adobe で、リポジトリ名は abc になります。
ルールを作成できるルールエディターを使用して、動的なフォームの動作を追加できます。これらのルールにより、条件付きフィールドの表示が有効になり、ユーザー入力に基づいて計算が自動化され、全体的なユーザーエクスペリエンスが向上します。ルールエディターは、フォーム入力プロセスを効率化することで、正確性と効率性の両方を確保するのに役立ちます。
ルールエディターには、ルールを作成および管理する直感的で視覚的なインターフェイスが用意されています。わかりやすいアプローチにより、広範な技術的専門知識を持たないユーザーも含め、すべてのユーザーがアクセスでき、フォーム内にロジックを簡単に実装できます。
ルールについて
ルールは、特定の条件下でユーザーが実行するアクションをガイドする手順です。
-
条件:条件とは、対象が true または false かどうかを評価する確認またはルールです。「これは要件を満たしていますか?」という質問にに回答します。
-
アクション:アクションとは、条件が true の場合に実行される動作を示します。条件の評価に基づいてトリガーされるタスクまたは動作です。
一般的なルールは、次のいずれかの構文に従います。
- 条件=アクション:最初に条件を確認してから、アクションを実行します。ルールエディターで
When
ルールタイプを使用することで、condition-action
の構文が適用されます。 - アクション=条件:最初にアクションを実行してから、条件を確認します。ルールエディターの
Set Value Of
とValidate
のルールタイプでは、action-condition
構文が適用されます。 - アクション=条件=代替アクション:アクションを実行し、条件を確認してから、条件に基づいてメインアクションまたは代替アクションを実行します。例えば、デフォルトでは、
Show
の代替アクションはHide
、Enable
の代替アクションはDisable
です。
例えば、条件では、ユーザーがフィールドに特定の値を入力したかどうかを確認し、アクションではフィールドを表示または非表示にすることができます。
- 条件:収入が 50,000 ドルを超えているかどうかを確認します。
- アクション:条件が true の場合は、
Additional Deduction
フィールドを表示します。それ以外の場合は、代替アクションを実行して、Additional Deduction
フィールドを非表示にします。
手順について詳しくは、条件付きルールの追加を参照してください。
ルールエディター拡張機能を有効にする方法
ユニバーサルエディターでは、ルールエディター拡張機能はデフォルトで有効になっていません。ルールエディター拡張機能を有効にするには、公式メール ID から aem-forms-ea@adobe.com までご連絡ください。
お使いの環境でルールエディター拡張機能が有効になると、エディターの右上隅に
ルールを記述するフォームコンポーネントを選択し、
この記事では、form object
と form component
が同じ意味で使用されています。
これで、ルールエディターで使用可能なルールタイプを使用して、選択したフォームフィールドのルールまたはビジネスロジックの記述を開始できます。
ルールエディターのユーザーインターフェイスについて
コンポーネントを選択すると、フォームコンポーネント上に既存のルールが一覧表示されます。ルールエディターでタイトルを表示し、ルール概要をプレビューできます。さらに、ルールの順序変更、ルールの編集、ルールの有効化/無効化、ルールの削除を行うことができます。
使用可能なルールタイプ
ルールエディターでは、以下の表に示すように、ルールを記述する事前定義された一連のルールタイプを利用できます。
次に、ルールエディターでルールを記述する方法を見てみましょう。
ルールの記述
ビジュアルルールエディターでルールを記述する方法を理解するには、税金計算フォームの簡単な例を考えます。
上記のフォームでは、ユーザーは総給与を入力します。この入力に基づいて条件付きフィールドが表示され、支払税が計算されます。
フォームフィールド:
- 総給与(ユーザー入力)
- 追加控除(条件付きフィールド)
- 課税所得(計算済みフィールド)
- 支払税(計算済みフィールド)
条件付きルール:
- 条件:総給与が 50,000 ドルより上
- アクション:「追加控除」フィールドを表示
計算ルール:
- 課税所得 = 総給与 – 追加控除(該当する場合)
- 支払税 = 課税所得 × 税率(簡単にするため、固定税率を 10%と仮定)
ルールを記述するには、次の手順を実行します。
1. フォームを作成
ユニバーサルエディターでフォームを作成するには:
-
編集用にユニバーサルエディターでフォームを開きます。
-
次のフォームコンポーネントを追加します。
- 税金計算フォーム(タイトル)
- 総給与(数値入力)
- 追加控除(数値入力)
- 課税所得(数値入力)
- 支払税(数値入力)
- 送信(「送信」ボタン)
-
Properties
を開いて、Additional Deduction
フォームフィールドを非表示にします。
2. フォームフィールドの条件付きルールを追加
フォームを作成したら、総給与が 50,000 ドルを超える場合にのみ「Additional Deduction
」フィールドを表示する最初のルールを記述します。条件付きルールを追加するには:
- 編集用にユニバーサルエディターでフォームを開き、コンテンツツリーで「総給与」フィールドを選択して、「
ビジュアルルールエディターのインターフェイスが表示されます。 - 「作成」をクリックして、ルールを作成します。
デフォルトでは、Set Value Of
ルールタイプが選択されます。選択したオブジェクトを変更または修正できませんが、ルールドロップダウンを使用して別のルールタイプを選択できます。
- ルールタイプドロップダウンリストを開き、When ルールタイプを選択します。
- 状態の選択 ドロップダウンを選択し、「次の値より大きい」を選択します。「数値を入力」フィールドが表示されます。
- ルールの「数値を入力」フィールドに
50000
を入力します。
条件をWhen Gross Salary is greater than 50000
と定義しました。次に、この条件がTrue
の場合に実行するアクションを定義します。 Then
ステートメントで、アクションを選択 ドロップダウンから「表示」を選択します。
- 「オブジェクトをドロップするか、または次から選択」フィールドの「フォームオブジェクト」タブから「追加控除」フィールドをドラッグ&ドロップします。あるいは、「オブジェクトをドロップするか、または次から選択」フィールドを選択し、ポップアップメニューから「追加控除」フィールドを選択します。この中には、フォーム内のすべてのフォームオブジェクトが一覧表示されます。
50000
未満の給与を入力した場合は、「Else セクションを追加」をクリックして、「総給与」フィールドに別の条件を追加します。
Else
ステートメントの アクションを選択 ドロップダウンから「非表示」を選択します。
- 「オブジェクトをドロップするか、または次から選択」フィールドの「フォームオブジェクト」タブから「追加控除」フィールドをドラッグ&ドロップします。あるいは、「オブジェクトをドロップするか、または次から選択」フィールドを選択し、ポップアップメニューから「追加控除」フィールドを選択します。この中には、フォーム内のすべてのフォームオブジェクトが一覧表示されます。
- 「完了」を選択し、ルールを保存します。
ルールエディターでは、ルールが次のように表示されます。
3. フォームフィールドの計算ルールを追加
次に、Gross Salary
と Additional Deduction
の差である Taxable Income
を計算するルールを記述します(該当する場合)。「課税所得」フィールドに計算ルールを追加するには、次の手順を実行します。
-
オーサリングモードで「課税所得」フィールドを選択し、
-
次に、「作成」を選択して、ルールを作成します。
-
「オプションの選択」を選択し、「数式」を選択します。数式記述用のフィールドが開きます。
-
数式フィールドで、次の操作を行います。
-
最初の「オブジェクトをドロップまたは次から選択」フィールドの「総給与」フィールドで、「フォームオブジェクト」タブから選択またはドラッグ&ドロップします。
-
「演算子を選択」フィールドから「減算」を選択します。
-
他の「オブジェクトをドロップまたは次から選択」フィールドの「追加控除」フィールドで、「フォームオブジェクト」タブから選択またはドラッグ&ドロップします。
-
-
「完了」を選択し、ルールを保存します。
次に、課税所得に税率を乗算して決定される「
Tax Payable
」フィールドにルールを追加します。簡素化して固定税率を10%
と仮定します。 -
オーサリングモードで「支払税」フィールドを選択し、
-
「オプションの選択」を選択し、「数式」を選択します。数式記述用のフィールドが開きます。
-
数式フィールドで、次の操作を行います。
-
最初の「オブジェクトをドロップまたは次から選択」フィールドの「課税所得」フィールドで、「フォームオブジェクト」タブから選択またはドラッグ&ドロップします。
-
「演算子を選択」フィールドから「乗算」を選択します。
-
「オプションを選択」フィールドから「数値」を選択し、「数値を入力」フィールドに
10
のように値を入力します。
-
-
次に、式フィールドの周りのハイライト表示された領域を選択し、「拡張式」を選択します。
-
拡張式フィールドでは、「演算子を選択」フィールドから「割り算」を選択し、「オプションを選択」フィールドから「数字」を選択します。次に、数値フィールドに
100
を指定します。
-
「完了」を選択し、ルールを保存します。
4. フォームをプレビュー
これで、フォームをプレビューし、総給与 を 60,000
として入力すると、「追加控除」フィールドが表示され、それに応じて「課税所得」と「支払税」が計算されます。
「関数出力」の下にリストされている「合計」、「平均」などの標準の関数に加え、カスタム関数を記述して複雑なビジネスロジックを実装することもできます。
ルールエディターでのカスタム関数
Edge Delivery Services のフォームでは、ユーザーが複雑なビジネスルールを実装する JavaScript 関数を定義できるカスタム関数をサポートしています。カスタム関数は、指定された要件を満たすエントリ済みデータの操作と処理を容易にすることで、フォームの機能を拡張します。
カスタム関数の作成
カスタム関数を作成するには、../[blocks]/form/functions.js
ファイルを編集します。作成プロセスには通常、次の手順が含まれます。
- 関数宣言:関数名とそのパラメーター(受け入れる入力)を定義します。
- ロジック実装:関数で実行される特定の計算や操作の概要を説明するコードを書き込みます。
- 関数の書き出し:関連ファイルから関数を書き出して、ルール内で関数にアクセスできます。
次の例では、getFullName
と days
という 2 つのカスタム関数を示します。
/**
* Get Full Name
* @name getFullName Concats first name and last name
* @param {string} firstname in Stringformat
* @param {string} lastname in Stringformat
* @return {string}
*/
function getFullName(firstname, lastname) {
return `${firstname} ${lastname}`.trim();
}
/**
* Calculate the number of days between two dates.
* @param {*} endDate
* @param {*} startDate
* @name days Calculates the numebr of days between two dates
* @returns {number} returns the number of days between two dates
*/
function days(endDate, startDate) {
const start = typeof startDate === 'string' ? new Date(startDate) : startDate;
const end = typeof endDate === 'string' ? new Date(endDate) : endDate;
// return zero if dates are valid
if (Number.isNaN(start.getTime()) || Number.isNaN(end.getTime())) {
return 0;
}
const diffInMs = Math.abs(end.getTime() - start.getTime());
return Math.floor(diffInMs / (1000 * 60 * 60 * 24));
}
// eslint-disable-next-line import/prefer-default-export
export { getFullName, days };
ルールエディターでのカスタム関数の使用
ルールエディターでカスタム関数を使用するには:
-
関数を追加:カスタム関数を
../[blocks]/form/functions.js
ファイルに含めます。必ず、ファイル内のexport
ステートメントに追加します。 -
ファイルをデプロイ:更新された
functions.js
ファイルを GitHub プロジェクトにデプロイし、ビルドが成功したことを確認します。 -
関数の使用:「アクションを選択」フィールドの「
Function Output
」オプションを選択して、フォームのルールエディター内の関数にアクセスします。 -
フォームをプレビュー:新しく実装された関数でフォームをプレビューします。
追加情報
../[blocks]/form/functions.js
ファイルに追加する必要があります。この記事では、ユニバーサルエディターで使用できるルールエディターに関する限定的な情報を提供します。ルールエディターとカスタム関数について詳しくは、次の記事を参照してください。
- コアコンポーネントに基づくアダプティブフォームのルールエディターの概要
- コアコンポーネントに基づくアダプティブフォームのルールエディターでの演算子のタイプとイベント
- コアコンポーネントに基づくアダプティブフォームのルールエディターのユーザーインターフェイス
- コアコンポーネントに基づくアダプティブフォームの様々なユースケース
- ルールエディターの様々なエディションの違い
- アダプティブフォームでの非同期関数の使用
- コアコンポーネントに基づくフォーム用のビジュアルルールエディターの呼び出しサービスの機能強化
- コアコンポーネントに基づくアダプティブフォームのカスタム関数の概要
- コアコンポーネントに基づくアダプティブフォームのカスタム関数の作成
- カスタム関数のスコープオブジェクト
- カスタム関数の開発と使用の例