配置使用 Edge Delivery Services 的自适应表单预填充服务
表单预填充是指用户打开表单时立即自动使用外部来源的相关数据填充表单字段的过程。预填充方法使用来自用户账号、数据库、已保存的草稿或其他后端系统的信息,简化了表单填写体验,减少手动输入,最大限度减少错误,并能加快完成速度。这不仅提高了用户满意度,而且增加了表单提交成功的可能性。
表单预填充的优势
如何进行预填充
下图说明了当用户打开自适应表单时发生的自动预填充过程:
预填充过程包括四个关键步骤:
- 用户打开表单:用户通过 URL 或导航访问一个自适应表单
- 识别数据源:预填充服务会确定所配置的数据源(表单数据模型或草稿服务)
- 检索数据:系统根据上下文、参数或用户身份获取相关的用户数据
- 映射与显示:数据通过
bindRef属性映射到表单字段,填充好的表单显示给用户
此自动化过程可确保用户看到预先填充了自己相关信息的表单,从而显著提高用户体验和表单完成率。
预填充的数据结构
自适应表单支持两种类型的字段:
- 绑定字段:与某个
bindRef属性非空的数据源连接的字段 - 未绑定字段:
bindRef为空值的独立字段
预填充数据结构包括:
- afBoundData:包含用于被绑定字段和面板的数据
- afUnBoundData:包含用于未绑定字段的数据
数据格式必须符合您的表单模型:
- XFA 表单:符合 XFA 模板架构的 XML
- XML 架构表单:符合架构结构的 XML
- JSON 架构表单:符合架构的 JSON
- 表单数据模型 (FDM) 表单:符合 FDM 结构的 JSON
- 无架构表单:所有字段均未绑定,并使用未绑定的 XML
先决条件
在配置预填充服务之前,请确保您已:
进行了必需的设置
满足访问权限要求
- 具有 AEM Forms as a Cloud Service 的访问权限
- 具有创建和编辑表单的权限
- 有权访问通用编辑器,并启用了所需的扩展
预填充服务选项
通用编辑器提供两种预填充服务选项:
详细比较
为表单配置预填充服务
步骤 1:创建表单数据模型
-
登录您的 AEM Forms as a Cloud Service 实例
-
导航至 Adobe Experience Manager > 表单 > 数据集成
-
选择创建 > 表单数据模型
-
选择您的数据源配置,然后选择已配置的数据源
note tip TIP 有关创建表单数据模型的详细说明,请参阅创建表单数据模型。
步骤 2:配置 FDM 服务
-
前往 Adobe Experience Manager > 表单 > 数据集成
-
在编辑模式中打开您的表单数据模型
-
选择一个数据模型对象,然后点击编辑属性
-
为选定的数据模型对象配置 读取 和 写入 服务
-
配置服务参数:
- 点击读取服务参数的编辑图标
- 将参数绑定到用户个人资料属性、请求属性或文字值
- 指定绑定值(例如为宠物登记表单指定
petid)
-
点击 完成 保存参数,然后点击 保存 保存 FDM
note note NOTE 要了解有关配置 FDM 服务的更多信息,请参阅使用表单数据模型 (FDM)。
步骤 3:创建自适应表单
-
导航至 Adobe Experience Manager > 表单 > 表单和文档
-
选择创建 > 自适应表单
-
在 源 选项卡中选择一个 Edge Delivery Services 模板:
-
点击创建,打开 创建表单 向导
note note NOTE 您可以在 数据 选项卡中配置数据源,或稍后通过编辑表单属性来进行配置。 -
指定表单详细信息:
- 名称:输入表单的描述性名称
- 标题:提供一个用户友好的标题
- GitHub URL:输入您的存储库 URL(例如
https://github.com/wkndforms/edsforms)
-
单击创建
表单在通用编辑器中打开以进行创作。
步骤 4:配置表单数据源
-
选择表单,然后点击属性
-
打开 表单模型 选项卡
-
从 从这里选择 下拉菜单中选择表单数据模型 (FDM)
-
从下拉菜单中选择您创建的表单数据模型(例如 PetFDM)
-
点击保存并关闭
-
在通用编辑器中打开表单进行编辑
FDM 中的表单元素将显示在 内容浏览器 的 数据源 选项卡中。
步骤 5:将数据绑定添加到表单字段
-
从 数据源 选项卡中选择数据元素
-
点击 添加 或拖放元素,构建表单
-
将数据绑定添加到表单字段:
-
选择一个表单字段
-
在 属性 面板中找到 绑定引用 属性
-
选择适当的数据绑定引用
-
步骤 6:启用必需的扩展
确保在通用编辑器中启用了这些扩展:
-
AEM 表单属性扩展
- 在通用编辑器中打开扩展管理器
- 启用 AEM 表单属性扩展
-
数据源扩展
- 如果您看不到 数据源 图标,请启用 数据源 扩展
note tip TIP 有关管理扩展的详细说明,请参阅扩展管理器功能亮点。
步骤 7:配置预填充服务
-
在通用编辑器中打开您的自适应表单
-
点击 AEM 表单属性扩展图标
-
点击 预填充 选项卡
-
选择表单数据模型预填充服务
-
点击保存并关闭
步骤 8:预览和测试
-
前往表单 > 表单和文档
-
选择您的自适应表单
-
选择作为 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 和服务
- 验证数据架构:确保数据结构符合表单要求
- 逐步测试:一次配置并测试一个字段
- 文档映射:跟踪字段到数据的映射
- 最小数据量:仅预填必要的字段
- 使用缓存:为频繁被访问的数据配置适当的缓存
- 优化查询:确保高效的数据库查询
- 监控性能:启用预填充功能后,跟踪表单加载时间
- 验证输入参数:始终验证 URL 参数
- 清理数据:在预填表单之前清理数据
- 实施访问控制:确保用户只能访问自己的数据
- 使用 HTTPS:数据传输始终使用安全连接
- 提供反馈:获取数据的过程中显示加载指示器
- 妥善处理错误:显示有用的错误消息
- 允许覆盖:允许用户更改已预填充的数据
- 保持一致性:在所有表单中使用一致的预填充行为
常见问题解答
?<bindreferencefield>=<value>。确保该字段具有符合您的数据结构的有效 bindRef。使用浏览器开发者工具检查网络请求,验证是否正确获取数据。自适应表单支持多种格式,具体取决于您的表单模型:
- XFA 表单:符合 XFA 架构的 XML
- JSON 架构表单:符合架构的 JSON 数据
- FDM 表单:映射到数据模型结构的 JSON
- XML 架构表单:符合架构结构的 XML
afBoundData 部分,并且必须符合您的表单模型架构。未绑定字段使用 afUnBoundData 部分,可以包含任何其他数据。bindRef 值。验证您的数据源是否包含所有必需字段,以及数据结构是否符合您的表单模型架构。