使用 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資料庫作為建立表單資料模型的來源。 在資料庫中建立結構描述並新增 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執行個體與資料庫之間的連線 configure-connection-between-aem-instance-and-database

執行以下設定步驟來建立AEM執行處理與MYSQL資料庫之間的連線:

  1. 前往AEM Web主控台組態頁面,網址為 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//[host]:[port]/[schema_name]
    使用者名稱 用於驗證資料庫表格並執行動作的使用者名稱
    密碼 與使用者名稱相關聯的密碼
    交易隔離 READ_COMMITTED
    最大使用中連線數 1000
    最大閒置連線 100
    最小閒置連線 10
    初始大小 10
    最長等待 100000
    借入時測試 已核取
    閒置時測試 已核取
    驗證查詢 範例值為SELECT 1(mysql)、select 1 from dual(oracle)、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 並展開左側窗格中列出的資料來源以選取 contactus 表格, get、和 insert 服務,然後點選 Add Selected.

    範例資料mysql

  6. 在右窗格中選取資料模型物件,然後點選 Edit Properties. 選取 getinsertRead 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-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資料 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-repository.

設定最適化表單以預填資料庫中的值

執行以下步驟來設定最適化表單,以根據表格中定義的主索引鍵從MYSQL資料庫預先填入值(在此案例中是電子郵件):

  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