教程:创建表单数据模型

04-create-form-data-model-main

本教程是创建第一个自适应表单系列中的一个步骤。 建议按照时间顺序按照系列来了解、执行和演示完整的教程用例。

关于教程

AEM Forms数据集成模块允许您从不同的后端数据源(如AEM用户用户档案、RESTful Web服务、基于SOAP的Web服务、OData服务和关系型数据库)创建表单数据模型。 您可以在表单数据模型中配置数据模型对象和服务,并将其与自适应表单关联。 自适应表单字段绑定到数据模型对象属性。 这些服务使您能够预填自适应表单并将提交的表单数据写入数据模型对象。

有关表单数据集成和表单数据模型的详细信息,请参阅AEM Forms数据集成

本教程将指导您逐步准备、创建、配置表单数据模型并将其与自适应表单关联。 在本教程的结尾,您将能够:

表单数据模型将类似于:

form-data-model_l

A.配 置的数 据源B. 数据源 模式 C.可 用服务 D.Data 模型 对象E.Configured Services

前提条件

在开始之前,请确保您具有以下各项:

第1步:将MySQL数据库配置为数据源

您可以配置不同类型的数据源以创建表单数据模型。 对于本教程,我们将配置您配置并填充示例数据的MySQL数据库。 有关其他受支持数据源以及如何配置数据源的信息,请参见AEM Forms数据集成

执行以下操作以配置MySQL数据库:

  1. 将MySQL数据库的JDBC驱动程序作为OSGi包安装:

    1. 以管理员身份登录到AEM Forms作者实例,然后转到AEM web控制台包。 默认URL为https://localhost:4502/system/console/bundles

    2. 点按​安装/更新。 将显示上载/安装捆绑包对话框。

    3. 点按​选择文件​以浏览并选择MySQL JDBC驱动程序OSGi捆绑。 选择​开始包​和​刷新包,然后点按​安装或更新。 确保MySQL的Oracle Corporation’s JDBC驱动程序处于活动状态。 已安装驱动程序。

  2. 将MySQL数据库配置为数据源:

    1. 转到位于https://localhost:4502/system/console/configMgr的AEM Web控制台。

    2. 找到​Apache Sling Connection池化DataSource​配置。 点击以在编辑模式下打开配置。

    3. 在配置对话框中,指定以下详细信息:

      • 数据源名称: 您可以指定任何名称。例如,指定​WeRetailMySQL

      • DataSource服务属性名称:指定包含DataSource名称的服务属性的名称。将数据源实例注册为OSGi服务时指定它。 例如,datasource.name

      • JDBC驱动程序类:指定JDBC驱动程序的Java类名称。对于MySQL数据库,指定​com.mysql.jdbc.Driver

      • JDBC连接URI:指定数据库的连接URL。对于在端口3306和模式weretail上运行的MySQL数据库,URL为:jdbc:mysql://'server':3306/weretail?autoReconnect=true&useUnicode=true&characterEncoding=utf-8

      • 用户名: 数据库的用户名。需要启用JDBC驱动程序以建立与数据库的连接。

      • 口令: 数据库的口令。需要启用JDBC驱动程序以建立与数据库的连接。

      • 借阅测试:启 用“ 借阅测试 ”选项。

      • 返回时测试: 启用 返回时 测试。

      • 验证查询: 指定SQL SELECT查询以验证池中的连接。查询必须至少返回一行。 例如,从customerdetails 中选择*

      • 事务隔离:将该值设 置为READ_COMMITTED

        保留默认值values的其他属性,然后点按​保存

        将创建与以下配置类似的配置。

        关系型数据库——数据源——配置

第2步:创建表单数据模型

AEM Forms为从配置的数据源创建表单数据模型提供了直观的用户界面。 您可以在表单数据模型中使用多个数据源。 对于我们的用例,我们将使用配置的MySQL数据源。

执行以下操作以创建表单数据模型:

  1. 在AEM作者实例中,导航到​Forms > 数据集成

  2. 点按​创建 > 表单数据模型

  3. 在“创建表单数据模型”对话框中,为表单数据模型指定​名称。 例如,customer-shipping-billing-details。 点按​下一步

  4. 选择数据源屏幕列表所有已配置的数据源。 选择​WeRetailMySQL​数据源并点按​创建

    数据源选择

将创建​customer-shipping-billing-details​表单数据模型。

第3步:配置表单数据模型

配置表单数据模型涉及:

  • 添加数据模型对象和服务
  • 为数据模型对象配置读写服务

执行以下操作以配置表单数据模型:

  1. 在AEM作者实例上,导航到​Forms > 数据集成。 默认URL为https://localhost:4502/aem/forms.html/content/dam/formsanddocuments-fdm

  2. 此处列出您之前创建的​customer-shipping-billing-details​表单数据模型。 在编辑模式下打开它。

    所选数据源​WeRetailMySQL​以表单数据模型配置。

    default-fdm

  3. 展开WeRailMySQL数据源树。 从​weretail > customerdetails​模式中选择以下数据模型对象和服务以形成数据模型:

    • 数据模型对象:

      • id
      • name
      • shippingAddress
      • 城市
      • 状态
      • zipcode
    • 服务:

      • 获取
      • 更新

    点按​添加选定项,将选定的数据模型对象和服务添加到表单数据模型。

    WeRetail模式

    注意

    JDBC数据源的默认get、update和insert服务是随附表单数据模型的现成提供。

  4. 为数据模型对象配置读和写服务。

    1. 选择​customerdetails​数据模型对象,然后点按​编辑属性

    2. 从读取服务下拉菜单中选择​get。 将自动添加​id​参数,该参数是customerdetails数据模型对象中的主键。 点按aem_6_3_edit并按如下配置参数。

      read-default

    3. 同样,选择​update​作为写入服务。 customerdetails​对象将自动添加为参数。 参数配置如下。

      write-default

      按如下方式添加和配置​id​参数。

      id-arg

    4. 点按​完成​以保存数据模型对象属性。 然后,点按​保存​以保存表单数据模型。

      将​get​和​update​服务添加为数据模型对象的默认服务。

      数据模型对象

  5. 转到​服务​选项卡并配置​get​和​update​服务。

    1. 选择​get​服务,然后点按​编辑属性。 属性对话框打开。

    2. 在“编辑属性”对话框中指定以下内容:

      • 标题:指定服务的标题。例如:检索送货地址。

      • 描述:指定包含服务的详细功能的说明。例如:

        此服务从MySQL数据库检索送货地址和其他客户详细信息

      • 输出模型对象:选择包含客户数据的模式。例如:

        客户详细信息模式

      • 返回数组:禁用返 箭头选项。

      • 参数:选择名为 ID的参数

      点按​完成。已配置从MySQL数据库检索客户详细信息的服务。

      shiiping-address-retrieval

    3. 选择​update​服务,然后点按​编辑属性。 属性对话框打开。

    4. 在编辑属性对话框中指定以下内容:

      • 标题:指定服务的标题。例如,更新发运地址。

      • 描述:指定包含服务的详细功能的说明。例如:

        此服务更新MySQL数据库中的送货地址和相关字段

      • 输入模型对象:选择包含客户数据的模式。例如:

        客户详细信息模式

      • 输出类型:选择 布尔

      • 参数:选择名为ID和 ​customerdetails 的参数

      点按​完成。已配置​更新​服务以更新MySQL数据库中的客户详细信息。

      shiiping-address-update

配置表单数据模型中的数据模型对象和服务。 您现在可以测试表单数据模型。

第4步:测试表单数据模型

您可以测试数据模型对象和服务,以验证表单数据模型配置是否正确。

执行以下操作以运行测试:

  1. 转到​Model​选项卡,选择​customerdetails​数据模型对象,然后点按​测试模型对象

  2. 在测试模型/服务窗口中,从​选择模型/服务​下拉菜单中选择​读取模型对象

  3. 在​customerdetails​部分中,为配置的MySQL数据库中存在的​id​参数指定一个值,然后点按​测试

    将获取与指定id关联的客户详细信息并在​Output​部分中显示,如下所示。

    测试读取模型

  4. 同样,您也可以测试Write模型对象和服务。

    在以下示例中,更新服务成功更新数据库中id 7102715的地址详细信息。

    测试——写模型

    现在,如果您再次测试id 7107215的读取模型服务,它将获取并显示更新的客户详细信息,如下所示。

    已更新

在此页面上