教程:创建表单数据模型 tutorial-create-form-data-model
本教程是创建您的第一个自适应表单系列中的步骤。 Adobe建议您按照时间顺序跟踪系列,以了解、执行和演示完整的教程用例。
关于教程 about-the-tutorial
AEM Forms数据集成模块允许您从不同的后端数据源(如AEM用户配置文件、RESTful Web服务、基于SOAP的Web服务、OData服务和关系数据库)创建表单数据模型。 您可以在表单数据模型中配置数据模型对象和服务,并将其与自适应表单关联。 自适应表单字段绑定到数据模型对象属性。 这些服务使您能够预填充自适应表单并将提交的表单数据写回数据模型对象。
有关表单数据集成和表单数据模型的详细信息,请参阅AEM Forms数据集成。
本教程将指导您完成准备、创建、配置表单数据模型并将其与自适应表单关联的步骤。 在本教程结束时,您将能够:
表单数据模型将类似于以下内容:
A. 已配置数据源 B. 数据源架构 C. 可用服务 D. 数据模型对象 E. 已配置服务
先决条件 prerequisites
在开始之前,请确保您具备以下条件:
- MySQL数据库,包含示例数据,如创建第一个自适应表单的先决条件部分所述
- MySQL JDBC驱动程序的OSGi捆绑包,如捆绑JDBC数据库驱动程序中所述
- 自适应表单,如第一个教程创建自适应表单中所述
步骤1:将MySQL数据库配置为数据源 config-database
您可以配置不同类型的数据源来创建表单数据模型。 在本教程中,您将配置已配置并填充了示例数据的MySQL数据库。 有关其他受支持数据源以及如何配置它们的信息,请参阅AEM Forms数据集成。
执行以下操作以配置您的MySQL数据库:
-
将数据库的 MySQL JDBC 驱动程序作为 OSGi 捆绑包安装:
-
MySQL从 下载
http://www.java2s.com/ref/jar/download-orgosgiservicejdbc100jar-file.html
JDBC 驱动程序 OSGi 捆绑包。 -
以管理员身份登录AEM Forms创作实例,然后转到AEM Web控制台包。 默认URL为https://localhost:4502/system/console/bundles。
-
选择 安装/更新。 出现上载/安装包对话框。
-
选择 选择文件 浏览并选择MySQL JDBC驱动程序OSGi包。 选择 启动包 和 刷新包,然后选择 安装或更新。 Oracle Corporation’s确保 的 MySQL JDBC 驱动程序处于活动状态。驱动程序已安装。
-
-
将数据库配置为 MySQL 数据源:
-
转到位于 https://localhost:4502/system/console/configMgr🔗 的 AEM Web 控制台。
-
找到 Apache Sling 连接池数据源 配置。 选择此项可在编辑模式下打开配置。
-
在配置对话框中,指定以下详细信息:
- 数据源名称: 您可以指定任意名称。 例如,指定 WeRetailMySQL。
- 数据源服务属性名称:指定包含数据源名称的服务属性的名称。 在将数据源实例注册为OSGi服务时指定它。 例如,datasource.name。
- JDBC驱动程序类:指定JDBC驱动程序的Java™类名。 对于MySQL数据库,请指定 com.mysql.jdbc.Driver。
- JDBC 连接 URI: 指定数据库的连接 URL。 对于 MySQL 在端口 3306 和
weretail
架构上运行的数据库,URL 为:jdbc:mysql://'server':3306/weretail?autoReconnect=true&useUnicode=true&characterEncoding=utf-8
note note NOTE MySQL当数据库位于防火墙后面时,数据库主机名不是公共 DNS。必须将数据库的 IP 地址添加到 AEM 主机的 /etc/hosts 文件中。 - 用户名: 数据库用户名。 需要启用 JDBC 驱动程序才能与数据库建立连接。
- 密码: 数据库的密码。 必须启用JDBC驱动程序才能与数据库建立连接。
note note NOTE AEM Forms不支持MySQL的NT身份验证。 转到 https://localhost:4502/system/console/configMgr🔗 的AEM Web控制台,然后搜索“Apache Sling连接池数据源”。对于“JDBC 连接 URI”属性,请将“integratedSecurity”的值设置为 False,并使用创建的用户名和密码与数据库连接 MySQL 。 -
借用时测试: 启用 借用 时测试选项。
-
退货时测试: 启用退货 时测试选项。
-
验证查询: 指定SQL SELECT查询以验证池中的连接。 查询必须至少返回一行。 例如,从customerdetails 中选择*。
-
事务隔离:将该值设置为 READ_COMMITTED。
保留具有默认值的其他属性并选择 保存。
将创建类似于以下内容的配置。
-
步骤2:创建表单数据模型 create-fdm
AEM Forms提供了一个直观的用户界面,用于从配置的数据源创建表单数据模型。 您可以在表单数据模型中使用多个数据源。 对于此用例,您可以使用配置的MySQL数据源。
执行以下操作以创建表单数据模型:
-
在AEM创作实例中,导航到 Forms > 数据集成。
-
选择 创建 > 表单数据模型。
-
在“创建表单数据模型”对话框中,为表单数据模型指定 名称。 例如,customer-shipping-billing-details。 选择 下一步。
-
选择数据源屏幕列出了所有已配置的数据源。 选择 WeRetailMySQL 数据源,然后选择 创建。
已创建 customer-shipping-billing-details 表单数据模型。
步骤3:配置表单数据模型 config-fdm
配置表单数据模型涉及:
- 添加数据模型对象和服务
- 配置数据模型对象的读写服务
执行以下操作以配置表单数据模型:
-
在AEM创作实例上,导航到 Forms > 数据集成。 默认URL为https://localhost:4502/aem/forms.html/content/dam/formsanddocuments-fdm。
-
此处列出了您之前创建的 customer-shipping-billing-details 表单数据模型。 在编辑模式下将其打开。
已在表单数据模型中配置所选数据源 WeRetailMySQL。
-
展开WeRailMySQL数据源树。 从 weretail > customerdetails 架构中选择以下数据模型对象和服务,以便您可以形成数据模型:
-
数据模型对象:
- id
- name
- shippingAddress
- 城市
- 州/省
- 邮政编码
-
服务:
- get
- 更新
选择 添加选定项 以将选定数据模型对象和服务添加到表单数据模型。
note note NOTE 为JDBC数据源提供的默认get、update和insert服务是现成的表单数据模型。 -
-
配置数据模型对象的读取和写入服务。
-
选择 customerdetails 数据模型对象并选择 编辑属性。
-
从读取服务下拉列表中选择 get。 将自动添加 id 参数,该参数是customerdetails数据模型对象中的主键。 选择 并按如下方式配置参数。
-
同样,选择 更新 作为写入服务。 customerdetails 对象会自动添加为参数。 参数的配置如下所示。
按如下方式添加和配置 id 参数。
-
选择“完成 ” 以保存数据模型对象属性。然后,选择 保存 以保存表单数据模型。
get 和 update 服务已添加为数据模型对象的默认服务。
-
-
转到 服务 选项卡并配置 get 和 更新 服务。
-
选择 get 服务并选择 编辑属性。 将打开属性对话框。
-
在“编辑属性”对话框中指定以下内容:
-
标题:指定服务的标题。 例如:检索送货地址。
-
描述:指定包含服务的详细功能的描述。 例如:
此服务从MySQL数据库中检索送货地址和其他客户详细信息
-
输出模型对象:选择包含客户数据的架构。 例如:
customerdetail架构
-
返回数组:禁用 返回数组 选项。
-
参数:选择名为 ID 的参数。
选择 完成。 用于从MySQL数据库检索客户详细信息的服务已配置。
-
-
选择 更新 服务,然后选择 编辑属性。 将打开属性对话框。
-
在编辑属性对话框中指定以下内容:
-
标题:指定服务的标题。 例如,更新送货地址。
-
描述:指定包含服务的详细功能的描述。 例如:
此服务更新MySQL数据库中的送货地址和相关字段
-
输入模型对象:选择包含客户数据的架构。 例如:
customerdetail架构
-
输出类型:选择 布尔值。
-
参数:选择参数名称 ID 和 customerdetails。
选择 完成。 已配置 更新 服务以更新MySQL数据库中的客户详细信息。
-
-
配置表单数据模型中的数据模型对象和服务。 您现在可以测试表单数据模型。
步骤4:测试表单数据模型 test-fdm
您可以测试数据模型对象和服务,以验证是否正确配置了表单数据模型。
执行以下操作以运行测试:
-
转到 模型 选项卡,选择 customerdetails 数据模型对象,然后选择 测试模型对象。
-
在测试模型/服务窗口中,从 选择模型/服务 下拉列表中选择 读取模型对象。
-
在 customerdetails 部分中,为已配置的MySQL数据库中存在的 id 参数指定一个值,然后选择 测试。
将获取与指定ID关联的客户详细信息,并将其显示在 输出 部分中,如下所示。
-
同样,您可以测试Write模型对象和服务。
在以下示例中,更新服务成功地更新了数据库中ID 7102715的地址详细信息。
现在,如果您再次测试id 7107215的读取模型服务,它将获取并显示更新的客户详细信息,如下所示。