使用AEM工作流程整合最適化表單與資料庫 submit-forms-to-database-using-forms-portal

automated forms conversion服務(AFCS)可讓您將非互動式PDF表單、Acro表單或XFAPDF表單轉換為最適化表單。 起始轉換程式時,您可以選擇產生具有或不具有資料繫結的最適化表單。

如果您選擇產生沒有資料繫結的調適型表單,則可以在轉換後整合已轉換的調適型表單與表單資料模型、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服務(AFCS)的輸入。 此服務會將此檔案轉換為最適化表單。 下圖是以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資料庫作為建立表單資料模型的來源。 在資料庫中建立結構描述並新增 contact 根據最適化表單中可用的欄位形成結構描述表格。

範例資料mysql

您可以使用下列DDL陳述式來建立 contact 資料庫中的表格。

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)、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 並展開左側窗格中列出的資料來源以選取 contact 表格, 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服務(AFCS)聯絡我們表單 變更為具有資料繫結的最適化表單。 請勿選取 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