使用 AEM 工作流程整合最適化表單與資料庫

「自動表單轉換」服務可讓您將非互動式PDF表單、Acro表單或以XFA為基礎的PDF表單轉換為最適化表單。 在開始轉換程式時,您可以選擇是否使用資料系結產生最適化表單。

如果您選擇產生不含資料系結的最適化表單,則轉換後可將轉換的最適化表單與表單資料模型、XML架構或JSON架構整合。 對於表單資料模型,您需要手動將自適應表單欄位與表單資料模型系結。 不過,如果您產生具有資料系結的最適化表單,轉換服務會自動將最適化表單與JSON結構描述關聯,並在最適化表單和JSON結構描述中可用的欄位間建立資料系結。 然後,您可以將最適化表單與您選擇的資料庫整合、填寫表單中的資料,並將它送出至資料庫。 同樣地,在成功與資料庫整合後,您可以配置轉換的自適應表單中的欄位,以便從資料庫中檢索值並預填充自適應表單欄位。

下圖描述了將已轉換的自適應表單與資料庫整合的不同階段:

資料庫整合

本文說明成功執行所有這些整合階段的逐步指示。

先決條件

  • 設定AEM 6.4或6.5作者實例
  • 為您的AEM實例安裝最新的Service Pack
  • AEM Forms附加元件套件的最新版本
  • 配置自動表單轉換服務
  • 設定資料庫。 示例實施中使用的資料庫是MySQL 5.6.24。不過,您可以將轉換的最適化表單與您選擇的任何資料庫整合。

自適應表單示例

若要執行使用案例,以使用AEM工作流程將轉換的最適化表單與資料庫整合,請下載下列範例PDF檔案。

您可以使用下列方式下載範例聯絡我們表單:

取得檔案

PDF檔案是Automated Forms Conversion服務的輸入。 服務將此檔案轉換為自適應格式。 下圖以PDF格式描述範例聯絡我們表單。

貸款申請表

安裝mysql-connector-java-5.1.39-bin.jar檔案

對所有作者和發佈實例執行以下步驟以安裝mysql-connector-java-5.1.39-bin.jar檔案:

  1. 導覽至http://server:port/system/console/depfinder並搜尋com.mysql.jdbc套件。
  2. 在「導出者」(Exported by)列中,檢查軟體包是否由任何包導出。 如果軟體包未由任何包導出,請繼續。
  3. 導覽至http://server:port/system/console/bundles,然後按一下​Install/Update
  4. 按一下​Choose File​並瀏覽以選擇mysql-connector-java-5.1.39-bin.jar檔案。 此外,選擇​Start Bundle​和​Refresh Packages​複選框。
  5. 按一下​Install​或​Update。 完成後,重新啟動伺服器。
  6. (僅限Windows)關閉您作業系統的系統防火牆。

準備表單型號的資料

AEM Forms Data Integration可讓您設定並連線至不同的資料來源。 使用轉換程式產生最適化表單後,您可以根據表單資料模型、XSD或JSON結構描述來定義表單模型。 您可以使用資料庫、Microsoft Dynamics或任何其他協力廠商服務來建立表單資料模型。

本教程使用MySQL資料庫作為源來建立表單資料模型。 在資料庫中建立模式,並根據自適應表單中可用的欄位將​contactus​表添加到模式。

示例資料mysql

可以使用以下DDL語句在資料庫中建立​contactus​表。

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實例與資料庫之間的連接

執行下列設定步驟,以建立AEM例項與MYSQL資料庫之間的連線:

  1. 前往http://server:port/system/console/configMgr的「AEM Web Console設定」頁面。

  2. 在「Web控制台配置」的編輯模式下,查找並按一下以開啟​Apache Sling Connection Pooled DataSource。 指定屬性的值,如下表所述:

    屬性

    資料來源名稱

    用於從資料源池中過濾驅動程式的資料源名稱。

    JDBC驅動程式類

    com.mysql.jdbc.Driver

    JDBC連接URI

    jdbc:mysql://[host]:[port]/[schema_name]

    使用者名稱

    對資料庫表進行驗證和執行操作的用戶名

    密碼

    與用戶名關聯的密碼

    事務隔離

    READ_COMMITTED

    最大活動連接數

    1000

    最大空閒連接數

    100

    最小空閒連接數

    10

    初始大小

    10

    最大等待

    100000

    借閱測試

    已核取

    空閒時測試

    已核取

    驗證查詢

    示例值包括SELECT 1(mysql)、從dual(oracle)中選擇1、SELECT 1(MS Sql Server)(validationQuery)

    驗證查詢超時

    10000

建立表單資料模型

將MYSQL配置為資料源後,請執行以下步驟以建立表單資料模型:

  1. 在AEM作者例項中,導覽至​Forms > Data Integrations

  2. 點選​Create > Form Data Model

  3. 在​Create Form Data Model​精靈中,指定​workflow_submit​為表單資料模型的名稱。 點選​Next

  4. 選擇在上一節中配置的MYSQL資料源,然後按一下​Create

  5. 點選​Edit​並展開左窗格中所列的資料來源,以選擇​Contactus​表格、get​和​insert​服務,然後點選​Add Selected

    示例資料mysql

  6. 在右窗格中選擇資料模型對象,然後點選​Edit Properties。 從​Read Service​和​Write Service​下拉式清單中選擇​get​和​insert。 指定讀取服務的參數,然後點選​Done

  7. 在​Services​標籤中,選擇​get​服務,然後點選​Edit Properties。 選擇​Output Model Object,停用​Return array​切換,然後點選​Done

  8. 選擇​Insert​服務並點選​Edit Properties。 選擇​Input Model Object​並點選​Done

  9. 點選​Save​以儲存表單資料模型。

您可以使用下列方式下載範例表單資料模型:

取得檔案

使用JSON系結產生最適化表單

使用[Automated Forms Conversion服務,將Contact Us form轉換為具有資料綁定的自適應表單。 ](convert-existing-forms-to-adaptive-forms.md)在生成最適化表單時,請確保不選中​Generate adaptive form(s) without data bindings​複選框。

具JSON系結的最適化表單

在​Forms & Documents​的​output​資料夾中選擇已轉換的​聯絡我們表單,然後點選​Edit。 點選​Preview,在最適化表單欄位中輸入值,然後點選​Submit

登入​crx-repository​並導覽至​/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資料

執行以下步驟以建立工作流模型,以便將自適應表單資料提交到資料庫:

  1. 開啟「工作流模型」控制台。 預設URL為https://server:port/libs/cq/workflow/admin/console/content/models.html/etc/workflow/models

  2. 選擇​Create,然後選擇​Create Model。 出現​Add Workflow Model​對話框。

  3. 輸入​Title​和​Name(可選)。 例如,workflow_json_submit。 點選​Done​以建立模型。

  4. 選擇工作流模型並點選​Edit​以在編輯模式下開啟模型。 點選+並新增​Invoke Form Data Model Service​步驟至工作流程模型。

  5. 點選​Invoke Form Data Model Service​步驟並點選Configure

  6. 在​Form Data Model​標籤中,選擇您在​Form Data Model path​欄位中建立的表單資料模型,並從​Service​下拉式清單中選擇​insert

  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​節中,為表單資料模型參數提供以下值:

    啟動表單資料模型服務

    請注意,表單資料模型欄位(例如contactus dot name)會對應至​afData.afBoundData.data.name1,此欄位是指已提交最適化表單的JSON架構系結。

配置自適應表單提交

執行以下步驟,將最適化表單提交到您在上一節中建立的工作流模型:

  1. 在​Forms & Documents​的​output​資料夾中選取已轉換的「聯絡我們」表單,然後點選​Edit

  2. 點選​Form Container​然後點選Configure,以開啟最適化表單屬性。

  3. 在​Submission​區段中,從​Submit Action​下拉式清單中選擇​Invoke an AEM workflow,選擇您在上一節中建立的工作流程模型,並在​Data File Path​欄位中指定​data.xml

  4. 點選Save以儲存屬性。

  5. 點選​Preview,在最適化表單欄位中輸入值,然後點選​Submit。 提交的值現在顯示在MYSQL資料庫表中,而不是​crx-repository

配置自適應表單以從資料庫預填充值

執行以下步驟,以根據表中定義的主鍵(在本例中為電子郵件)配置自適應表單以預填充MYSQL資料庫中的值:

  1. 點選最適化格式的​E-mail​欄位,點選編輯規則

  2. 點選​Create​並從​When​區段的​Select State​下拉式清單中選取​is changed

  3. 在​Then​節中,選擇​Invoke Service​和​get​作為您在本文上一節中建立的表單資料模型服務。

  4. 在​Input​部分選擇​電子郵件,並在​Output​部分選擇表單資料模型的其餘三個欄位:名稱電話號碼​和​問題說明。 點選​Done​以儲存設定。

    設定電子郵件預填設定

    因此,根據MYSQL資料庫中現有的電子郵件條目,可以在自適應表單的​Preview​模式中預填充其餘三個欄位的值。 例如,如果您在​E-mail​欄位中指定aya.tan@xyz.com(根據本文Prepare form data model區段中的現有資料)並跳出欄位,則其餘三個欄位:NamePhone Number​和​期刊description​會自動以最適化表單顯示。

您可以使用下列方式下載範例轉換的最適化表單:

取得檔案

本頁內容