Edge Delivery Services を使用したアダプティブフォームでの事前入力サービスの設定
フォームの事前入力とは、ユーザーがフォームを開くとすぐに、外部ソースからの関連データをフォームフィールドに自動的に入力するプロセスです。事前入力により、ユーザープロファイル、データベース、保存されたドラフト、その他のバックエンドシステムからの情報を活用してフォーム入力エクスペリエンスが効率化され、手動入力の削減、エラーの最小化、完了の高速化が実現します。これにより、ユーザー満足度が向上するだけでなく、フォームの送信が成功する可能性も高まります。
フォームの事前入力のメリット
事前入力の仕組み
次の図に、ユーザーがアダプティブフォームを開いた際に実行される自動事前入力プロセスを示します。
事前入力プロセスには、次の 4 つの主な手順が含まれます。
- ユーザーがフォームを開く:ユーザーは URL またはナビゲーションを通じてアダプティブフォームにアクセスします
- データソースを特定:事前入力サービスにより、設定済みのデータソース(フォームデータモデルまたはドラフトサービス)が決定されます。
- データを取得:システムにより、コンテキスト、パラメーター、ユーザー ID に基づいて関連するユーザーデータが取得されます
- マッピングと表示:データは
bindRef
プロパティを使用してフォームフィールドにマッピングされ、入力したフォームがユーザーに表示されます。
この自動処理されたプロセスにより、ユーザーは関連情報が事前入力されたフォームを必ず確認できるので、ユーザーエクスペリエンスとフォーム完了率が大幅に向上します。
事前入力用データ構造
アダプティブフォームは、次の 2 つのタイプのフィールドをサポートしています。
- バインドされたフィールド:空でない
bindRef
プロパティを持つデータソースに接続されたフィールド - バインドされていないフィールド:空の
bindRef
値を持つスタンドアロンフィールド
事前入力データ構造には、次が含まれます。
- afBoundData:バインドされたフィールドとパネルのデータが含まれます
- afUnBoundData:バインドされていないフィールドのデータが含まれます
データ形式は、次のフォームモデルと一致する必要があります。
- XFA フォーム:XFA テンプレートスキーマに準拠した XML
- XML スキーマフォーム:スキーマ構造に一致する XML
- JSON スキーマフォーム:スキーマに準拠した JSON
- フォームデータモデル(FDM)フォーム:FDM 構造に一致する JSON
- スキーマレスフォーム:すべてのフィールドはバインドされておらず、バインドされていない XML を使用します
前提条件
事前入力サービスを設定する前に、次を確認します。
必須の設定
アクセス要件
- AEM Forms as a Cloud Service へのアクセス
- フォームを作成および編集する権限
- 必要な拡張機能を有効にしたユニバーサルエディターへのアクセス
事前入力サービスオプション
ユニバーサルエディターには、次の 2 つの事前入力サービスオプションが用意されています。
詳細な比較
フォームの事前入力サービスの設定
手順 1:フォームデータモデルを作成
-
AEM Forms as a Cloud Service インスタンスにログインします
-
Adobe Experience Manager/Forms/データ統合 に移動します
-
作成/フォームデータモデル を選択します
-
データソース設定 を選択し、設定済みの データソース を選択します
note tip TIP フォームデータモデルの作成手順について詳しくは、フォームデータモデルの作成を参照してください。
手順 2:FDM サービスを設定する
-
Adobe Experience Manager/Forms/データ統合 に移動します
-
フォームデータモデルを編集モードで開きます
-
データモデルオブジェクトを選択し、「プロパティを編集」をクリックします
-
選択したデータモデルオブジェクトの 読み取り サービスと 書き込み サービスを設定します。
-
サービス引数を設定します。
- 読み取りサービス引数の「編集」アイコンをクリックします
- 引数を ユーザープロファイル属性、リクエスト属性 または リテラル値 に連結します
- 連結値を指定します(例:ペット登録フォームの場合は
petid
)
-
「完了」をクリックして引数を保存し、「保存」をクリックして FDM を保存します
note note NOTE FDM サービスの設定について詳しくは、フォームデータモデル(FDM)の操作を参照してください。
手順 3:アダプティブフォームを作成する
-
Adobe Experience Manager/Forms/フォームとドキュメント に移動します
-
作成/アダプティブフォーム を選択します
-
「ソース」タブで、Edge Delivery Services テンプレートを選択します
-
「作成」をクリックして、フォームを作成 ウィザードを開きます
データソースの設定は「データ」タブから行うことも、後でフォームのプロパティを編集して行うこともできます。
-
フォームの詳細を指定します。
- 名前:フォームのわかりやすい名前を入力します
- タイトル:わかりやすいタイトルを指定します
- GitHub URL:リポジトリ URL を入力します(例:
https://github.com/wkndforms/edsforms
)
-
「作成」をクリックします。
オーサリング用にユニバーサルエディターでフォームを開きます。
手順 4:フォームデータソースを設定する
-
フォームを選択し、「プロパティ」をクリックします
-
「フォームモデル」タブを開きます
-
選択元 ドロップダウンから「フォームデータモデル(FDM)」を選択します
-
ドロップダウンから、作成したフォームデータモデル(例:PetFDM)を選択します
-
「保存して閉じる」をクリックします。
-
フォームをユニバーサルエディターで編集用に開きます
FDM のフォーム要素は、コンテンツブラウザー の「データソース」タブに表示されます。
手順 5:フォームフィールドにデータ連結を追加する
-
「データソース」タブからデータ要素を選択します
-
「追加」をクリックするか、要素をドラッグ&ドロップしてフォームを作成します
-
フォームフィールドにデータ連結を追加します。
-
フォームフィールドを選択します
-
プロパティ パネルで、連結参照 プロパティを見つけます
-
適切なデータ連結参照を選択します
-
手順 6:必須の拡張機能を有効にする
ユニバーサルエディターで次の拡張機能が有効になっていることを確認します。
-
AEM フォームプロパティ拡張機能
- ユニバーサルエディターで Extension Manager を開きます
- AEM フォームプロパティ 拡張機能を有効にします
-
データソース拡張機能
- 「データソース」アイコンが表示されない場合は、データソース拡張機能 を有効にします
note tip TIP 拡張機能の管理手順について詳しくは、Extension Manager 機能のハイライトを参照してください。
手順 7:事前入力サービスを設定する
-
アダプティブフォームをユニバーサルエディターで開きます
-
AEM フォームプロパティ 拡張機能アイコンをクリックします
-
「事前入力」タブをクリックします
-
「フォームデータモデルの事前入力サービス」を選択します
-
「保存して閉じる」をクリックします。
手順 8:プレビューとテスト
-
Forms/フォームとドキュメント に移動します
-
アダプティブフォームを選択します
-
「HTML としてプレビュー」を選択します
-
次の URL にパラメーターを追加して、事前入力をテストします。
https://your-preview-url.com?<bindreferencefield>=<value>
例:
https://your-preview-url.com?petid=12345
フォームには、指定したパラメーターに基づいてデータが自動的に入力されます。
例
事前入力データ構造のサンプル
FDM ベースのフォームの JSON の例:
{
"afBoundData": {
"user": {
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@example.com",
"phone": "+1-555-0123"
}
},
"afUnBoundData": {
"additionalInfo": "User preferences loaded"
}
}
XFA ベースのフォームの XML の例:
<?xml version="1.0" encoding="UTF-8"?>
<afData>
<afBoundData>
<user>
<firstName>John</firstName>
<lastName>Doe</lastName>
<email>john.doe@example.com</email>
</user>
</afBoundData>
</afData>
事前入力 URL の例
以下の URL は、説明のみを目的としており、そのままでは機能しません。事前入力機能をテストする際は、ホストとパラメーターを独自の環境に関連したものに置き換えます。
基本的な事前入力テスト:
https://preview.example.com/form.html?userId=12345
複数パラメーターのテスト:
https://preview.example.com/form.html?userId=12345&category=premium
トラブルシューティング
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 | ||
---|---|---|
問題 | 考えられる原因 | 解決策 |
フォームフィールドが事前入力されない | bindRef 値が正しくありません |
bindRef が FDM フィールド名と完全に一致することを検証します |
データ形式エラー | データ構造が一致しません | 事前入力データがフォームモデルスキーマと一致することを確認します |
サービスが見つからない | FDM 設定の問題 | FDM サービスが適切に設定および保存されていることを確認します |
認証エラー | データソースの接続 | データソースの資格情報と接続を検証します |
部分的なデータが読み込まれている | フィールドマッピングがありません | すべての必須フィールドに適切なデータ連結があることを確認します |
-
FDM 設定を検証:
- サービスが正しく設定されているかどうかを確認します
- FDM サービスを個別にテストします
- データソースの接続を検証します
-
フォーム設定を確認:
- フォームが正しい FDM に関連付けられていることを確認します
- フィールド
bindRef
値を検証します - 最初に事前入力なしでフォームをテストします
-
データフローをテスト:
- ブラウザーの開発者ツールを使用して、ネットワークリクエストを調べます
- コンソールで JavaScript エラーを確認します
- 応答データの形式を検証します
-
一般的なエラーメッセージ:
- 「事前入力サービスが見つかりません」: サービス設定を確認します
- 「データ連結に失敗しました」:
bindRef
の精度を検証します - 「無効なデータ形式」:データがスキーマと一致することを確認します
ベストプラクティス
- わかりやすい名前を使用:FDM とサービスに明確な名前を付けます
- データスキーマを検証:データ構造がフォームの要件と一致していることを確認します
- 段階的にテスト:一度に 1 つのフィールドを設定してテストします
- ドキュメントマッピング:フィールドとデータのマッピングを追跡します
- データ量を最小化:必要なフィールドのみを事前入力します
- キャッシュを使用:頻繁にアクセスされるデータに対して適切なキャッシュを設定します
- クエリを最適化:データベースクエリが効率的であることを確認します
- パフォーマンスを監視:事前入力を有効にして、フォームの読み込み時間を追跡します
- 入力パラメーターを検証:URL パラメーターを常に検証します
- データを削除:フォームに事前入力する前にデータを削除します
- アクセス制御を実装:ユーザーが自身のデータにのみアクセスできるようにします
- HTTPS を使用:データ転送には常に安全な接続を使用します
- フィードバックを提供:データ取得中に読み込みインジケーターを表示します
- エラーを適切に処理:役に立つエラーメッセージを表示します
- 上書きを許可:ユーザーが事前入力されたデータを変更できるようにします
- 一貫性を維持:フォーム間で一貫性のある事前入力動作を使用します
よくある質問
?<bindreferencefield>=<value>
という形式を使用して URL に事前入力パラメーターを追加します。フィールドに、データ構造に一致する有効な bindRef
があることを確認します。ブラウザーの開発者ツールを使用して、ネットワークリクエストを調べ、データが正しく取得されていることを検証します。アダプティブフォームは、フォームモデルに応じて、次の複数の形式をサポートしています。
- XFA フォーム:XFA スキーマに一致する XML
- JSON スキーマフォーム:スキーマに準拠した JSON データ
- FDM フォーム:データモデル構造にマッピングされる JSON
- XML スキーマフォーム:スキーマ構造に一致する XML
afBoundData
セクションを使用し、フォームモデルスキーマと一致する必要があります。バインドされていないフィールドには、afUnBoundData
セクションを使用し、任意の追加データを含めることができます。bindRef
値が設定されていることを確認します。データソースにすべての必須フィールドが含まれ、データ構造がフォームモデルスキーマと一致することを検証します。