コアコンポーネントに基づくアダプティブフォームのルールエディターでの演算子のタイプとイベント
AEM Forms as a Cloud では、複雑な条件やアクションを簡単に定義して実行できる様々な演算子やイベントがルールエディターに含まれています。
アダプティブフォームのルールエディターで使用できる演算子タイプは、正確な条件を構築するための堅牢なフレームワークを提供します。 これにより、データの操作、計算の実行、複数の条件の論理的かつ一貫した組み合わせを行うことができます。 値の比較、算術演算の実行、文字列の操作のいずれを行う場合でも、これらの演算子を使用すると、ルールが柔軟かつ強力であることが保証されます。
ルールエディターのイベントは、ルールをアクティブにするトリガーとして機能します。 特定の条件が満たされた場合に発生する特定のアクションを定義します。 様々なタイプのイベントを活用することで、ユーザーのインタラクション、スケジュールされた時間、データの変更、システムの状態など、様々なシナリオへの対応を自動化できます。 これらのトリガーを指定する機能により、特定の要件に合わせた動的でレスポンシブなルールを作成できます。
使用可能な演算子のタイプとイベントを理解し、使用することで、ルールエディターの可能性を最大限に引き出すことができます。これにより、独自のニーズを満たす効率的かつ効果的なルールを作成し、システム全体の機能を向上させることができます。
ルールエディターで使用可能な演算子の種類とイベント available-operator-types-and-events-in-rule-editor
ルールエディターでは、次のような論理演算子やイベントを使用してルールを作成することができます。
- Is Equal To(次と等しい)
- Is Not Equal To(次の値と等しくない)
- Starts With(次の値で始まる)
- Ends With(次の値で終わる)
- Contains(次を含む)
- 次を含まない
- Is Empty(空である)
- Is Not Empty(空ではない)
- Has Selected(選択済み): チェックボックス、ドロップダウン、ラジオボタンの特定のオプションをユーザーが選択した場合に true を返します。
- Is Initialized (event)(初期化(イベント型)): フォームオブジェクトがブラウザーでレンダリングされたときに true を返します。
- Is Changed (event)(変更(イベント型)): フォームオブジェクトに入力された値または選択したオプションをユーザーが変更したときに true を返します。
ルールエディターで利用可能なルールタイプ available-rule-types-in-rule-editor
ルールエディターでは、ルールを記述するための、事前定義された一連のルールタイプを利用できます。ここからは、各ルールタイプについて詳しく説明します。ルールエディターでルールを記述する詳細については、「 ルールの記述」を参照してください。
When whenruletype
「When」のルールタイプは、「条件 - アクション - 代替アクション」のルール構文に従います。また、単に「条件 - アクション」構文が使用されることもあります。このルールタイプでは、評価条件を指定し、条件が満たされた(True
)場合にトリガーするアクションを記述します。「When」のルールタイプの使用中、複数の「AND」および「OR」演算子を使用してネスト式を作成することができます。
「When」のルールタイプを使用することで、フォームオブジェクトの状態を評価し、1 つ以上のオブジェクトに対してアクションを実行することができます。
代表的な「When」のルール構文は、次のようになります。
When on Object A:
(Condition 1 AND Condition 2 OR Condition 3) is TRUE;
Then, do the following:
Action 2 on Object B;
AND
'オブジェクト C のアクション 3;
Else, do the following:
Action 2 on Object C;
_
ラジオボタンやリストなどの複数値コンポーネントに対してルールを作成する場合、オプションが自動的に取得され、それらのオプションを使用してルールを作成できるようになりました。これらのオプションの値を再入力する必要はありません。
例えばリストの場合、赤、青、緑、黄という 4 つのオプションがあります。ルールの作成時に、次のようにオプション(ラジオボタン)が自動的に取得され、ルール作成者が使用できるようになります。
「When」ルールを記述するときに、「Clear Value Of」アクションをトリガーできます。「Clear Value Of」アクションは、指定したオブジェクトの値をクリアします。「When」ステートメントに「Clear Value Of」をオプションとして含めると、複数フィールドで複雑な条件を作成できます。 Else ステートメントを追加して、さらに条件を追加できます
When に複数のフィールドを使用できる allowed-multiple-fields
When 条件には、ルールが適用されるフィールド以外のフィールドを追加するオプションがあります。
例えば、「When」のルールタイプを使用すると、様々なフォームオブジェクトの条件を評価し、アクションを実行することができます。
日時:
(Object A Condition 1)
AND/OR
(オブジェクト B 条件 2)
次に、以下の手順を実行します。
アクション 1 (オブジェクト A)
_
When 条件機能で複数のフィールドを許可して使用する場合の考慮事項
- ルールエディターでこの機能を使用するには 🔗 コアコンポーネントがバージョン 3.0.14 以降に設定されていることを確認します。
- When 条件内の異なるフィールドにルールが適用されている場合、そのフィールドの 1 つのみが変更されても、ルールはトリガーします。
「When」条件機能で許可されている複数のフィールドに問題が発生した場合は、次のようにトラブルシューティング手順に従います。
- フォームを編集モードで開きます。
- コンテンツブラウザーを開き、アダプティブフォームの ガイドコンテナ コンポーネントを選択します。
- ガイドコンテナプロパティ アイコンをクリックします。アダプティブフォームコンテナダイアログボックスが開きます。
- 「完了」をクリックして、ダイアログを再度保存します。
Hide (非表示):指定したオブジェクトを非表示にします。
Show (表示):指定したオブジェクトを表示します。
Enable (有効):指定したオブジェクトを有効にします。
Disable (無効):指定したオブジェクトを無効にします。
Invoke service (サービスを起動):フォームデータモデル(FDM)で設定されたサービスを起動します。「サービスを起動」オプションを選択すると、フィールドが表示されます。このフィールドをタップすると、Experience Manager インスタンス上のすべてのフォームデータモデル(FDM)で設定されたすべてのサービスが表示されます。フォームデータモデルサービスを選択すると、さらにフィールドが表示され、指定したサービスに対する入力パラメーターと出力パラメーターを使用して、ここでフォームオブジェクトをマップすることができます。フォームデータモデル(FDM)サービスの呼び出しについては、ルール例を参照してください。
フォームデータモデルサービスに加えて、ダイレクト WSDL URL を指定して Web サービスを呼び出すことができます。 ただし、フォームデータモデルサービスには数多くの利点があるので、この方法でサービスを起動することをお勧めします。
フォームデータモデル(FDM)でのサービス設定について詳しくは、Experience Manager Forms のデータ統合機能を参照してください。
「次の値を設定」は、指定したオブジェクトの値を計算して設定します。オブジェクト値には、文字列、他のオブジェクトの値、数式や関数を使用して計算された値、オブジェクトのプロパティの値、または設定されたフォームデータモデルサービスからの出力値を設定することができます。 Web サービスオプションを選択すると、Experience Manager インスタンス上のすべてのフォームデータモデル(FDM)で設定されたすべてのサービスが表示されます。フォームデータモデルサービスを選択すると、さらにフィールドが表示され、指定したサービスに対する入出力パラメーターを使用して、ここでフォームオブジェクトをマップすることができます。
フォームデータモデル(FDM)でのサービス設定について詳しくは、Experience Manager Forms のデータ統合機能を参照してください。
プロパティを設定 のルールタイプを使用すると、条件アクションに基づいて、指定したオブジェクトのプロパティの値を設定できます。プロパティは次のいずれかに設定できます。
- visible(ブーリアン)
- label.value (文字列)
- label.visible (ブール値)
- 説明(文字列)
- enabled(ブーリアン)
- readOnly (ブール値)
- 必須(ブール値)
- screenReaderText (String)
- valid(ブーリアン)
- errorMessage(文字列)
- デフォルト(数値、文字列、日付)
- enumNames (String[])
- chartType(文字列)
例えば、ボタンがクリックされたときにテキストボックスを表示するルールを定義できます。 カスタム関数、フォームオブジェクト、オブジェクトプロパティ、またはサービス出力を使用して、ルールを定義できます。
カスタム関数に基づいてルールを定義するには、ドロップダウンリストから「関数の出力」を選択し、「関数」タブからカスタム関数をドラッグアンドドロップします。条件アクションが満たされると、テキスト入力ボックスが表示されます。
フォームオブジェクトに基づいてルールを定義するには、ドロップダウンリストから「フォームオブジェクト」を選択し、「フォームオブジェクト」タブからフォームオブジェクトをドラッグ&ドロップします。条件アクションが満たされると、テキスト入力ボックスがアダプティブフォームに表示されます。
オブジェクトプロパティに基づくプロパティの設定ルールを使用すると、アダプティブフォームに含まれる別のオブジェクトプロパティに基づいて、アダプティブフォーム内でテキスト入力ボックスを表示できます。
次の図は、アダプティブフォーム内のテキストボックスの非表示または表示に応じてチェックボックスを動的に有効にする例を示しています。
Clear value of (値のクリア):指定したオブジェの値をクリアします。
Set Focus (フォーカスの設定):指定したオブジェクトにフォーカスを設定します。
フォームを送信 フォームを送信します。
Reset フォームまたは指定したオブジェクトをリセットします。
Validate フォームまたは指定したオブジェクトを検証します。
Add Instance (インスタンスの追加):指定した繰り返し可能なパネルまたは表の行のインスタンスを追加します。
Remove Instance (インスタンスの削除):指定した繰り返し可能なパネルまたは表の行のインスタンスを削除します。
関数出力 事前定義済みの関数またはカスタム関数に基づいてルールを定義します。
移動先 他のアダプティブForms、画像やドキュメントフラグメントなどの他のアセット、または外部 URL に移動します。
イベントのディスパッチ 事前に定義された条件またはイベントに基づいて、特定のアクションまたはビヘイビアーをトリガーします。
Set Value of set-value-of
「Set Value Of」のルールタイプを使用すると、指定した条件に応じてフォームオブジェクトの値を設定できます。この値には、他のオブジェクトの値や、リテラル文字列、数式や関数から算出された値、または他のオブジェクトのプロパティ値、フォームデータモデルサービスの出力値を指定することができます。同様に、関数や数式から算出された構成要素、文字列、プロパティ、または値を確認することもできます。
「Set Value Of」のルールタイプは、パネルやツールバーボタンなどのすべてのフォームオブジェクトで使用できるわけではありません。標準的な「Set Value Of」ルールは、次の構文を有します。
オブジェクト A の値を次のように設定します。
(文字列 ABC)または
(オブジェクト C のオブジェクト プロパティ X)または
(関数からの値)または
(数式からの値)または
(データモデルサービスの出力値)
When (オプション):
(Condition 1 AND Condition 2 AND Condition 3) is TRUE;
次の使用例は、Question2
の値を True
に設定し、Result
の値を correct
に設定します。
フォームデータモデルサービスを使用した Set Value ルールの例。
Show(表示) show
「Show」のルールタイプでは、条件を満たしているかどうかに基づいて、フォームオブジェクトの表示・非表示を切り替えることができます。「Show」のルールタイプでは、条件が満たされていないか、あるいは False
が返された場合に、「Show」アクションをトリガーします。
代表的な「Show」のルール構文は、次のようになります。
Show Object A;
When:
(Condition 1 OR Condition 2 OR Condition 3) is TRUE;
Else:
Hide Object A;
Hide(非表示) hide
「Hide」のルールタイプでは、「Show」のルールタイプと同様に、条件を満たしているかどうか基づいて、フォームオブジェクトの表示・非表示を切り替えることができます。「Hide」のルールタイプでは、条件が満たされていないか、あるいは False
が返された場合に、「非表示」アクションをトリガーします。
代表的な「Hide」のルール構文は、次のようになります。
Hide Object A;
When:
(Condition 1 AND Condition 2 AND Condition 3) is TRUE;
Else:
Show Object A;
Enable(有効) enable
「Enable」のルールタイプを使用すると、条件を満たしているか否かに基づいて、フォームオブジェクトを有効または無効にすることができます。「Enable」のルールタイプでは、条件が満たされていないか、あるいは False
が返された場合に、「Disable」アクションをトリガーします。
代表的な「Enable」のルール構文は、次のようになります。
Enable Object A;
When:
(Condition 1 AND Condition 2 AND Condition 3) is TRUE;
Else:
Disable Object A;
Disable(無効) disable
「Disable」のルールタイプでは、「Enable」のルールタイプと同様に、条件を満たしているか否かに基づいて、フォームオブジェクトを有効または無効にすることができます。「Disable」のルールタイプでは、条件が満たされていないか、あるいは False
が返された場合に、「Disable」アクションをトリガーします。
代表的な「Disable」のルール構文は、次のようになります。
Disable Object A;
When:
(Condition 1 OR Condition 2 OR Condition 3) is TRUE;
Else:
Enable Object A;
Validate(検証) validate
「検証」ルールタイプでは、式を使用してフィールド内の値を検証します。例えば、式を記述することで、名前を指定するテキストボックスに特殊文字や数字が含まれていないことを確認することができます。
代表的な「検証」ルールは、次のようになります。
Validate Object A;
Using:
(Expression 1 AND Expression 2 AND Expression 3) is TRUE;
次の手順
次に、様々な コアコンポーネントに基づくアダプティブフォームのルールエディターの例について説明します。