使用 AEM 工作流实现自适应表单与数据库集成 submit-forms-to-database-using-forms-portal

automated forms conversion服务允许您将非交互式PDF表单、Acro表单或基于XFA的PDF表单转换为自适应表单。 启动转换过程时,您可以选择生成带有或不带有数据绑定的自适应表单。

如果选择生成不带数据绑定的自适应表单,则可以在转换后将转换后的自适应表单与表单数据模型、XML架构或JSON架构集成。 对于表单数据模型,您需要手动将自适应表单字段与表单数据模型绑定。 但是,如果生成带有数据绑定的自适应表单,转换服务会自动将自适应表单与JSON架构相关联,并在自适应表单中可用的字段与JSON架构之间创建数据绑定。 然后,您可以将自适应表单与所选数据库集成,在表单中填写数据,然后将其提交到数据库。 同样,成功与数据库集成后,您可以在转换后的自适应表单中配置字段,以从数据库中检索值并预填充自适应表单字段。

下图描述了将已转换的自适应表单与数据库集成的不同阶段:

数据库集成

本文介绍了成功执行所有这些集成阶段的分步说明。

先决条件 pre-requisites

  • 设置AEM 6.4或6.5创作实例
  • 安装 最新Service Pack (对于您的AEM实例)
  • 最新版本的AEM Forms附加组件包
  • 配置 automated forms conversion服务
  • 设置数据库。 示例实施中使用的数据库是MySQL 5.6.24。但是,您可以将转换后的自适应表单与所选的任何数据库集成。

自适应表单示例 sample-adaptive-form

要执行用例以使用AEM工作流将转换后的自适应表单与数据库集成,请下载以下示例PDF文件。

您可以使用以下地址下载示例联系我们表单:

获取文件

PDF文件用作Automated forms conversion服务的输入。 服务会将此文件转换为自适应表单。 下图描述了PDF格式的示例联系我们表单。

贷款申请表样例

安装mysql-connector-java-5.1.39-bin.jar文件 install-mysql-connector-java-file

在所有创作实例和发布实例上执行以下步骤,安装mysql-connector-java-5.1.39-bin.jar文件:

  1. 导航到 http://server:port/system/console/depfinder 和搜索com.mysql.jdbc包。
  2. 在“导出方式”列中,检查是否按任意包导出包。 如果包未由任何捆绑包导出,请继续。
  3. 导航到 http://server:port/system/console/bundles 并单击 Install/Update.
  4. 单击 Choose File 并浏览以选择mysql-connector-java-5.1.39-bin.jar文件。 此外,选择 Start BundleRefresh Packages 复选框。
  5. 单击 InstallUpdate. 完成后,重新启动服务器。
  6. (仅限Windows)关闭操作系统的系统防火墙。

为表单模型准备数据 prepare-data-for-form-model

AEM Forms数据集成允许您配置并连接到不同的数据源。 使用转换过程生成自适应表单后,您可以根据表单数据模型、XSD或JSON架构定义表单模型。 您可以使用数据库、Microsoft Dynamics或任何其他第三方服务来创建表单数据模型。

本教程使用MySQL数据库作为创建表单数据模型的源。 在数据库中创建架构并添加 contactact 表根据自适应表单中可用的字段添加到架构。

示例数据mysql

您可以使用以下DDL语句创建 contactact 表中的数据。

CREATE TABLE `contactus` (
   `name` varchar(45) NOT NULL,
   `email` varchar(45) NOT NULL,
   `phonenumber` varchar(10) DEFAULT NULL,
   `issuedesc` varchar(1000) DEFAULT NULL,
   PRIMARY KEY (`email`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8

配置AEM实例与数据库之间的连接 configure-connection-between-aem-instance-and-database

执行以下配置步骤以创建AEM实例与MYSQL数据库之间的连接:

  1. 转到AEM Web Console的“配置”页,网址为 http://server:port/system/console/configMgr.

  2. 查找并单击以打开 Apache Sling Connection Pooled DataSource 在“Web控制台配置”的编辑模式下。 按照下表中的说明指定属性的值:

    table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 8-row-2 9-row-2 10-row-2 11-row-2 12-row-2 13-row-2 14-row-2 15-row-2 html-authored
    属性 价值
    数据源名称 用于从数据源池筛选驱动程序的数据源名称。
    JDBC驱动程序类 com.mysql.jdbc.Driver
    JDBC连接URI jdbc//[主机]:[端口]/[模式名称]
    用户名 用于对数据库表进行身份验证和执行操作的用户名
    密码 与用户名关联的密码
    事务隔离 READ_COMMITTED
    最大活动连接数 1000
    最大空闲连接数 100
    最小空闲连接数 10
    初始大小 10
    最大等待 100000
    借入测试 已选中
    空闲时测试 已选中
    验证查询 示例值为SELECT 1(mysql),从dual(oracle)中选择1,SELECT 1(MS Sql Server) (validationQuery)
    验证查询超时 10000

创建表单数据模型 create-form-data-model

将MYSQL配置为数据源后,请执行以下步骤以创建表单数据模型:

  1. 在AEM创作实例中,导航到 Forms > Data Integrations.

  2. 点击 Create > Form Data Model.

  3. Create Form Data Model 向导,指定 workflow_submit 作为表单数据模型的名称。 点击​ Next

  4. 选择您在上一部分中配置的MYSQL数据源,然后点击 Create.

  5. 点按 Edit 并展开左侧窗格中列出的数据源以选择 contactact 表格, get、和 insert 服务,然后点按 Add Selected.

    示例数据mysql

  6. 在右窗格中选择数据模型对象并点按 Edit Properties. 选择 getinsert 起始日期 Read ServiceWrite Service 下拉列表。 指定读取服务的参数,然后点按 Done.

  7. Services 选项卡,选择 get 服务和点击 Edit Properties. 选择 Output Model Object,禁用 Return array 切换并点按 Done.

  8. 选择 Insert 服务和点击 Edit Properties. 选择 Input Model Object 并点按 Done.

  9. 点按 Save 以保存表单数据模型。

您可以使用以下内容下载示例表单数据模型:

获取文件

生成具有JSON绑定的自适应表单 generate-adaptive-forms-with-json-binding

使用 要转换的Automated forms conversion服务联系我们表单 到具有数据绑定的自适应表单。 确保不选择 Generate adaptive form(s) without data bindings 复选框。

具有JSON绑定的自适应表单

选择已转换的 联系我们表单 中提供 output 文件夹位置 Forms & Documents 并点按 Edit. 点按 Preview,在自适应表单字段中输入值并点按 Submit.

登录 crx存储库 并导航到 /content/forms/fp/admin/submit/data 查看以JSON格式提交的值。 以下是提交转换后的格式时JSON格式的示例数据 联系我们 自适应表单:

{
  "afData": {
    "afUnboundData": {
      "data": {}
    },
    "afBoundData": {
      "data": {
        "name1": "Gloria",
        "email": "abc@xyz.com",
        "phone_number": "2346578965",
        "issue_description": "Test message"
      }
    },
    "afSubmissionInfo": {
      "computedMetaInfo": {},
      "stateOverrides": {},
      "signers": {},
      "afPath": "/content/dam/formsanddocuments/docs_conversion/output/sample_form_json",
      "afSubmissionTime": "20191204014007"
    }
  }
}

您需要立即创建一个工作流模型,以便能够处理此数据,并使用在前几节中创建的表单数据模型将其提交到MYSQL数据库。

创建工作流模型以处理JSON数据 create-workflow-model

执行以下步骤来创建工作流模型,以将自适应表单数据提交到数据库:

  1. 打开工作流模型控制台。 默认URL为 https://server:port/libs/cq/workflow/admin/console/content/models.html/etc/workflow/models.

  2. 选择 Create,则 Create Model. 此 Add Workflow Model 对话框。

  3. 输入 TitleName (可选)。 例如, workflow_json_submit. 点按 Done 以创建模型。

  4. 选择工作流模型并点按 Edit 以在编辑模式下打开模型。 点按+并添加 Invoke Form Data Model Service 步骤到工作流模型。

  5. 点按 Invoke Form Data Model Service 步骤并点按 配置 .

  6. Form Data Model 选项卡中,选择之前创建的表单数据模型 Form Data Model path 字段并选择 insertService 下拉列表。

  7. Input for Service 选项卡,选择 Provide input data using literal, variable, or a workflow metadata, and a JSON file 从下拉列表中,选择 Map input fields from input JSON 复选框,选择 Relative to payload,并提供 data.xml 作为 Select input JSON document using 字段。

  8. Service Arguments 部分,为表单数据模型参数提供以下值:

    调用表单数据模型服务

    请注意,表单数据模型字段(例如,接触点名称)将映射到 afData.afBoundData.data.name1,表示已提交的自适应表单的JSON架构绑定。

配置自适应表单提交 configure-adaptive-form-submission

执行以下步骤,将自适应表单提交到您在上一节中创建的工作流模型:

  1. 选择中可用的已转换的“联系我们”表单 output 文件夹位置 Forms & Documents 并点按 Edit.

  2. 通过点按打开自适应表单属性 Form Container 然后点按 配置 .

  3. Submission 部分,选择 Invoke an AEM workflowSubmit Action 下拉列表,选择您在上一部分中创建的工作流模型,并指定 data.xmlData File Path 字段。

  4. 点按 保存 以保存属性。

  5. 点按 Preview,在自适应表单字段中输入值并点按 Submit. 现在,提交的值将显示在MYSQL数据库表中,而不是 crx存储库.

配置自适应表单以预填充数据库中的值

执行以下步骤来配置自适应表单,以根据表中定义的主键从MYSQL数据库中预填充值(本例中为Email):

  1. 点按 电子邮件 自适应表单中的字段并点按 编辑规则 .

  2. 点按 Create 并选择 is changedSelect State 中的下拉列表 When 部分。

  3. Then 部分,选择 Invoke Serviceget 作为您在本文前一部分中创建的表单数据模型的服务。

  4. 选择 电子邮件Input 以及表单数据模型的其余三个字段, 名称电话号码、和 问题描述Output 部分。 点按 Done 以保存设置。

    配置电子邮件预填充设置

    因此,您可以根据MYSQL数据库中的现有Email条目,预填充 Preview 自适应表单的模式。 aya.tan@xyz.com例如,如果您在 电子邮件 字段(基于中的现有数据) 准备表单数据模型 部分)和跳出字段,其余三个字段, 名称电话号码、和 问题描述 在自适应表单中自动显示。

您可以使用以下内容下载示例转换后的自适应表单:

获取文件

recommendation-more-help
c40c2ccf-3d1b-4b47-b158-c4646051b46c