教程:创建表单数据模型 tutorial-create-form-data-model

04-create-form-data-model-main

本教程是 创建您的第一个自适应表单 系列。 Adobe建议您按照时间顺序跟踪系列,以了解、执行和演示完整的教程用例。

关于教程 about-the-tutorial

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

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

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

表单数据模型将类似于以下内容:

form-data-model_l

答: 配置的数据源 B. 数据源架构 C. 可用服务 D. 数据模型对象 E. 配置的服务

前提条件 prerequisites

在开始之前,请确保您具备以下条件:

步骤1:将MySQL数据库配置为数据源 config-database

您可以配置不同类型的数据源来创建表单数据模型。 在本教程中,您将配置已配置并填充了示例数据的MySQL数据库。 有关其他受支持的数据源以及如何配置这些数据源的信息,请参阅 AEM Forms数据集成.

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

  1. 以 OSGi 捆绑的形式安装数据库的 MySQL JDBC 驱动程序:

    1. http://www.java2s.com/ref/jar/download-orgosgiservicejdbc100jar-file.html 下载 MySQL JDBC 驱动程序 OSGi 捆绑包。

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

    3. 选择 安装/更新. An 上传/安装包 出现对话框。

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

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

    1. 转到 https://localhost:4502/system/console/configMgr 🔗 上的 AEM web 控制台。

    2. 查找 Apache Sling 连接池数据 配置。 选择以编辑模式打开配置。

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

      • 数据源名称: 您可以指定任意名称。 例如,指定 WeRetailMySQL.
      • 数据源服务属性名称:指定包含DataSource名称的服务属性的名称。 在将数据源实例注册为OSGi服务时指定它。 例如, 数据源名称.
      • 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。必须在 AEM 主机机的/etc/hosts 文件中 添加数据库的 IP 地址。
      • 用户名: 数据库的用户名。 必须启用 JDBC 驱动程序才能与数据库建立连接。
      • 密码: 数据库的密码。 必须启用JDBC驱动程序才能与数据库建立连接。
      note note
      NOTE
      AEM Forms不支持的NT身份验证 MySQL. 转到 https://localhost:4502/system/console/configMgr 🔗 上 的 AEM web 控制台,并搜索 "Apache Sling 连接池数据源"。对于 "JDBC 连接 URI" 属性,请将 "integratedSecurity" 的值设置为 False,并使用创建的用户名和密码来连接 MySQL 数据库。
      • 借用测试: 启用 "在借用 中测试" 选项。

      • 返回时测试: 启用 "返回 时测试" 选项。

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

      • 事务隔离:将值设置为 读取已提交.

        将其他属性保留为默认值 并选择 保存.

        将创建类似于以下内容的配置。

        关系数据库数据源配置

步骤2:创建表单数据模型 create-fdm

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

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

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

  2. 选择 创建 > 表单数据模型.

  3. 在创建表单数据模型对话框中,指定 name 用于表单数据模型。 例如, customer-shipping-billing-details. 选择​ 下一步

  4. 选择数据源屏幕列出了所有已配置的数据源。 选择 WeRetailMySQL 数据源并选择 创建.

    数据源选择

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

步骤3:配置表单数据模型 config-fdm

配置表单数据模型涉及:

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

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

  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
      • 城市
      • 状态
      • 邮政编码
    • 服务:

      • get
      • 更新

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

    WeRetail架构

    note note
    NOTE
    为JDBC数据源提供的默认get、update和insert服务是现成的表单数据模型。
  4. 配置数据模型对象的读取和写入服务。

    1. 选择 customerdetails 数据模型对象并选择 编辑属性.

    2. 选择 get 从“读取服务”下拉列表中进行访问。 此 id 参数,将自动添加customerdetails数据模型对象中的主键。 选择 aem_6_3_edit 并按照以下方式配置参数。

      读取默认值

    3. 同样,选择 更新 作为写入服务。 此 customerdetails 对象会自动添加为参数。 参数的配置如下所示。

      write-default

      添加并配置 id 参数,如下所示。

      id-参数

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

      get更新 服务作为数据模型对象的默认服务添加。

      data-model-object

  5. 转到 服务 选项卡和配置 get更新 服务。

    1. 选择 get 服务和选择 编辑属性. 此时将打开属性对话框。

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

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

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

        本服务从以下位置检索送货地址和其他客户详细信息: MySQL 数据库

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

        customerdetail架构

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

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

      选择 完成. 用于从MySQL数据库检索客户详细信息的服务已配置。

      shiping-address-retrieval

    3. 选择 更新 服务和选择 编辑属性. 将打开属性对话框。

    4. 在 编辑属性 对话框:

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

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

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

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

        customerdetail架构

      • 输出类型:选择 布尔型.

      • 参数:选择参数名称 IDcustomerdetails.

      选择 完成. 此 更新 服务以更新客户详细信息,请参见 MySQL 数据库已配置。

      shiping-address-update

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

步骤4:测试表单数据模型 test-fdm

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

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

  1. 转到 模型 选项卡,选择 customerdetails 数据模型对象,并选择 测试模型对象.

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

  3. customerdetails 部分,指定值 id 已配置中存在的参数 MySQL 数据库和选择 测试.

    系统将获取与指定ID关联的客户详细信息,并将其显示在 输出 部分,如下所示。

    test-read-model

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

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

    test-write-model

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

    已读取已更新

NOTE
您可以使用自适应表单中的表单数据模型创建和使用SharePoint列表配置,以在SharePoint列表中保存数据或生成的记录文档。 请参阅 将自适应表单连接到Microsoft® SharePoint列表,以了解详细步骤。
recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2