基於資料來源的建議預填及提交最適化表單的工作流程 recommended-data-source-btased-prefill-and-submit-workflows-for-adaptive-forms

您可以透過透過Automated forms conversion服務(AFCS)轉換的最適化表單,使用下列任何資料來源:

  • 表單資料模型、OData或任何其他協力廠商服務
  • JSON結構描述
  • XSD結構描述

根據資料來源,您可以選擇產生含有或不含資料模型的最適化表單。

本文說明選取資料來源並使用轉換服務產生最適化表單後,要預先填入欄位值和提交選項的建議工作流程。

資料來源
建議的工作流程
表單資料模型、OData或任何其他協力廠商服務
選項1:您選取表單資料模型、OData或任何其他協力廠商服務做為資料來源。 您使用Automated forms conversion服務(AFCS)產生無資料繫結的最適化表單。 您可以手動將最適化表單欄位繫結至表單資料模型實體,並使用「表單資料模型預填服務」選項來預填欄位值。 使用「使用表單資料模型提交」選項來提交最適化表單。
選項2:您選取表單資料模型、OData或任何其他協力廠商服務做為資料來源。 您使用Automated forms conversion服務(AFCS)產生無資料繫結的最適化表單。 您可以使用規則編輯器繫結調適型表單欄位以預填欄位值。 如有需要,請修改欄位值,並將資料提交至crx-repository。
如需執行這些工作流程的逐步指示,請參閱使用資料庫、OData或任何協力廠商服務做為資料來源。
JSON結構描述
選取JSON結構描述作為資料來源。 根據選取的資料來源:
選項1:您使用Automated forms conversion服務(AFCS)產生無資料繫結的最適化表單,並將JSON結構描述設定為資料來源。 您手動將最適化表單欄位繫結到JSON結構描述,然後使用任何支援的通訊協定來預先填入欄位值。 如有需要,請修改欄位值,並將資料提交至crx-repository。
如需執行工作流程的逐步指示,請參閱使用JSON結構描述作為資料來源。
選項2:您使用Automated forms conversion服務(AFCS)產生具有JSON資料繫結的最適化表單。 預填服務與表單提交功能順暢無礙。 您不需要任何設定步驟。
如需執行工作流程的逐步指示,請參閱使用JSON結構描述作為資料來源。
XSD結構描述
選取XSD結構描述作為資料來源。 根據選取的資料來源,您使用Automated forms conversion服務(AFCS)產生無資料繫結的最適化表單,並將XSD結構描述設定為資料來源。 您手動將最適化表單欄位繫結到XSD結構描述,然後使用任何支援的通訊協定來預先填入欄位值。 如有需要,請修改欄位值,並將資料提交至crx-repository。
如需執行工作流程的逐步指示,請參閱使用XSD結構描述做為資料來源。

如需Automated forms conversion服務(AFCS)的詳細資訊,請參閱下列文章:

本文提供的資訊乃基於以下假設,即任何閱讀此假設的人皆具備調適型表單概念的基本知識。

必要條件 pre-requisites

最適化表單範例 sample-adaptive-form

若要執行使用案例以預先填寫最適化表單中的欄位值並將它們提交至資料來源,請下載以下範例PDF檔案。

貸款申請表範例

取得檔案

PDF檔案可作為Automated forms conversion服務(AFCS)的輸入。 此服務會將此檔案轉換為最適化表單。 下圖以PDF格式說明範例貸款申請。

貸款申請表範例

為表單模型準備資料 prepare-data-for-form-model

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

本教學課程使用MySQL資料庫作為建立表單資料模型的來源。 在資料庫中建立​ loanapplication ​結構描述,並根據最適化表單中可用的欄位,將​ application ​資料表新增到結構描述中。

範例資料mysql

您可以使用下列DDL陳述式在資料庫中建立​ 應徵者 ​資料表。

CREATE TABLE `applicant` (
   `name` varchar(45) DEFAULT NULL,
   `address` varchar(45) DEFAULT NULL,
   `phonenumber` int(11) NOT NULL,
   `email` varchar(45) DEFAULT NULL,
   `occupation` varchar(45) DEFAULT NULL,
   `annualsalary` varchar(45) DEFAULT NULL,
   `familymembers` int(11) DEFAULT NULL,
   PRIMARY KEY (`phonenumber`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8

如果您使用XSD結構描述作為表單模型來執行使用案例,請建立包含以下文字的XSD檔案:

<?xml version="1.0" encoding="utf-8" ?>
    <xs:schema targetNamespace="http://adobe.com/sample.xsd"
                    xmlns="http://adobe.com/sample.xsd"
                    xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="sample" type="SampleType"/>

  <xs:complexType name="SampleType">
    <xs:sequence>
      <xs:element name="name" type="xs:string"/>
   <xs:element name="address" type="xs:string"/>
   <xs:element name="phonenumber" type="xs:int"/>
   <xs:element name="email" type="xs:string"/>
   <xs:element name="occupation" type="xs:string"/>
   <xs:element name="annualsalary" type="xs:string"/>
   <xs:element name="familymembers" type="xs:string"/>
 </xs:sequence>
  </xs:complexType>

  </xs:schema>

或將XSD結構描述下載至本機檔案系統。

貸款應用程式XSD結構描述範例

取得檔案

如需有關使用XSD結構描述作為調適型表單中的表單模型的詳細資訊,請參閱使用XML結構描述建立調適型表單

如果您使用JSON結構描述作為表單模型來執行使用案例,請建立包含以下文字的JSON檔案:

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "definitions": {
        "loanapplication": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "address": {
                    "type": "string"
                },
    "phonenumber": {
                    "type": "number"
                },
    "email": {
                    "type": "string"
                },
    "occupation": {
                    "type": "string"
                },
    "annualsalary": {
                    "type": "string"
                },
    "familymembers": {
                    "type": "number"
                }
            }
        }
 },
 "type": "object",
    "properties": {
        "employee": {
            "$ref": "#/definitions/loanapplication"
        }
    }
}

或將JSON結構描述下載至本機檔案系統。

貸款應用程式JSON結構描述範例

取得檔案

如需有關使用JSON結構描述作為調適型表單中的表單模型的詳細資訊,請參閱使用JSON結構描述建立調適型表單

產生無資料繫結的最適化表單 generate-adaptive-forms-with-no-data-binding

使用Automated forms conversion服務將 範例貸款申請表單轉換為無資料繫結的最適化表單。 請確定您選取​ Generate adaptive form(s) without data bindings ​核取方塊以產生無資料繫結的最適化表單。

無資料繫結的最適化表單

產生無資料繫結的調適型表單後,請為調適型表單選取資料來源:

NOTE
如果您使用Automated forms conversion服務(AFCS)轉換的最適化表單包含多個同名欄位,請確保這些欄位已繫結至資料來源實體,以避免在提交期間可能遺失資料。

使用資料庫、OData或任何第三方服務做為資料來源 sqldatasource

使用案例:您可以使用Automated forms conversion服務(AFCS)產生無資料繫結的最適化表單,並將MYSQL資料庫設定為資料來源。 您手動將最適化表單欄位繫結到表單資料模型實體,並使用​ Form Data Model Prefill Service ​選項預先填寫欄位值。 您使用​ Submit using Form Data Model ​選項來提交最適化表單。

執行使用案例之前:

根據使用案例,建立​ 載入應用程式 ​表單資料模型,並將讀取服務引數繫結至​ Literal ​值。 電話號碼常值必須是MySQL資料庫的​ 應徵者 ​結構描述中設定的其中一個記錄。 服務會使用值作為引數,從資料來源擷取詳細資料。 您也可以從​ Binding To ​下拉式清單中選取使用者設定檔屬性或要求屬性

設定表單資料模型

NOTE
在執行使用案例之前,請確定您已新增​ get ​和​ insert ​服務至表單資料模型、設定及測試服務。

執行以下步驟:

  1. 選取​ output ​資料夾中可用的已轉換的​ 範例貸款申請表單,然後點選​ Properties

  2. 點選​ Form Model ​標籤,從​ Select From ​下拉式清單中選取​ Form Data Model,然後點選​ Select Form Data Model ​以選取​ 借出應用程式 ​表單資料模型。 點選​ Save & Close ​以儲存表單。

  3. 選取​ 範例貸款申請表單 ​並點選​ Edit

  4. 在「Content」標籤中,點選「設定」圖示:

    設定表單容器

    1. 在​ Basic ​區段中,從​ Prefill Service ​下拉式清單中選取​ Form Data Model Prefill service

    2. 在​ Submission ​區段中,從​ Submit Action ​下拉式清單中選取​ Submit using Form Data Model

    3. 使用​ Data Model to submit ​欄位選取資料模型。

    4. 點選 完成圖示 以儲存屬性。

  5. 點選「申請人名稱」文字方塊,然後選取 設定圖示 (設定)。

    1. 在[繫結參考]欄位中,選取​ 應徵者 > 名稱,然後點選 完成圖示 以儲存內容。 同樣地,為​ 地址電話號碼電子郵件職業年薪(美元) ​和​ 否,建立資料繫結。 具有表單資料模型實體的相依家族成員 ​欄位。

    繫結參考

  6. 點選​ Preview ​以檢視預填的最適化表單欄位值。

  7. 如有需要,請修改欄位值並提交最適化表單。 欄位值會提交至MySQL資料庫。 您可以重新整理資料庫中的​ 應徵者 ​資料表,以檢視資料表中更新的值。

使用案例: ​您使用Automated forms conversion服務(AFCS)產生無資料繫結的最適化表單,並將MYSQL資料庫設定為資料來源。 您可以使用規則編輯器繫結調適型表單欄位以預填欄位值。 如有需要,請修改欄位值,並將資料提交至crx-repository。

執行以下步驟以使用規則編輯器來叫用表單資料模型服務,以繫結最適化表單中的欄位和預填值:

  1. 選取​ output ​資料夾中的​ 範例貸款申請表,然後點選​ Edit

  2. 在「Content」標籤中,點選「設定」圖示:

    設定表單容器

    在​ Basic ​區段中,從​ Prefill Service ​下拉式清單中選取​ Form Data Model Prefill service

  3. 點選​ Applicant Name ​文字方塊並點選​ Edit Rules

    編輯規則以建立資料繫結

  4. 在規則編輯器頁面上點選​ Create

  5. 在​ Rule Editor ​頁面上:

    1. 選取「申請人名稱」文字方塊的州。 例如,is initialized,當您以​ Preview ​模式轉譯表單時,這會導致​ Then ​條件的執行。

    2. 在​ Then ​區段中,從​ Select Action ​下拉式清單中選取​ Invoke Service。 Forms執行個體上的所有服務都會顯示在下拉式清單中。

    3. 從列出表單資料模型的區段中選取​ Get ​服務。 輸入欄位顯示​ phonenumber,這是為​ 應徵者 ​資料模型定義的主索引鍵。 系統會根據此欄位,擷取並預填輸出區段中欄位適用性表單的值。

    4. 使用「輸出」區段建立最適化表單欄位與表單資料模型實體的繫結。 例如,將​ Applicant Name ​最適化表單欄位與​ 名稱 ​實體繫結。

    5. 點選 Done。在規則編輯器頁面上再次點選​ Done

    繫結參考的規則編輯器

  6. 點選​ Preview ​以檢視預填的最適化表單欄位值。

    note note
    NOTE
    確定與最適化表單關聯的表單資料模型中,get ​服務屬性的​ Return Array ​屬性設定為OFF。
  7. 如有需要,請修改欄位值並提交最適化表單。 提交的資料可在crx-repository中的以下位置找到:

    http://host name:port/crx/de/index.jsp#/content/forms/fp/admin/submit/data/latest file available in the folder

使用JSON結構描述作為資料來源 jsondatasource

使用案例: ​您使用Automated forms conversion服務(AFCS)產生無資料繫結的最適化表單,並將JSON結構描述設定為資料來源。 您手動將最適化表單欄位繫結到JSON結構描述,並使用​ 含有資料的預覽 ​選項來預填欄位值。 如有需要,請修改欄位值,並將資料提交至crx-repository。

在執行使用案例之前,請確定您擁有:

執行以下步驟:

  1. 選取​ 輸出 ​資料夾中可用的已轉換的​ 範例貸款申請表單,然後點選​ Properties

  2. 點選「Form Model」標籤,從「Select From」下拉式清單中選取「Schema」,然後點選「Select Schema」以上傳儲存在本機檔案系統上的​ demo.schema JSON ​結構描述。 點選​ Save & Close ​以儲存表單。

  3. 選取​ 範例貸款申請表單 ​並點選​ Edit

  4. 點選「申請人名稱」文字方塊,然後選取 設定圖示 (設定)。

    在[繫結參考]欄位中,選取​ 應徵者 > 名稱,然後點選 完成圖示 以儲存內容。 同樣地,為​ 地址電話號碼電子郵件職業年薪(美元) ​和​ 否,建立資料繫結。 具有JSON結構描述實體的相依家族成員 ​欄位。

  5. 再次選取​ output ​資料夾中可用的轉換的​ 範例貸款申請表單,然後選取​ Preview > Preview with Data

    下載範例資料檔

    取得檔案

  6. 如有需要,請修改欄位值並提交最適化表單。 提交的資料可在crx-repository中的以下位置找到:

    http://host name:port/crx/de/index.jsp#/content/forms/fp/admin/submit/data/latest file available in the folder

使用XSD結構描述做為資料來源 xsddatasource

使用案例: ​您使用Automated forms conversion服務(AFCS)產生無資料繫結的最適化表單,並將XSD結構描述設定為資料來源。 您手動將最適化表單欄位繫結到XSD結構描述,並使用​ 含有資料的預覽 ​來預填欄位值。 如有需要,請修改欄位值,並將資料提交至crx-repository。

在執行使用案例之前,請確定您擁有:

執行以下步驟:

  1. 選取​ output ​資料夾中可用的已轉換的​ 範例貸款申請表單,然後點選​ Properties

  2. 點選​ Form Model ​標籤,從​ Select From ​下拉式清單中選取​ Schema,然後點選​ Select Schema ​以上傳儲在本機檔案系統上的​ loanapplication XSD結構描述。 選取XSD結構描述的根元素,然後點選​ Save & Close ​以儲存表單。

  3. 選取​ 範例貸款申請表單 ​並點選​ Edit

  4. 點選「申請人名稱」文字方塊,然後選取 設定圖示 (設定)。
    在「繫結參考」欄位中,選取​ 應徵者 > 名稱,然後點選 完成圖示 以儲存屬性。 同樣地,為​ 地址電話號碼電子郵件職業年薪(美元) ​和​ 否,建立資料繫結。 具有XSD結構描述實體的相依家族成員 ​欄位。

  5. 再次選取​ 輸出 ​資料夾中可用的已轉換的​ 範例貸款申請表單,然後選取​ Preview > Preview with Data

    下載範例資料檔

    取得檔案

  6. 如有需要,請修改欄位值並提交最適化表單。 提交的資料可在crx-repository中的以下位置找到:

    http://host name:port/crx/de/index.jsp#/content/forms/fp/admin/submit/data/latest file available in the folder

產生具有JSON繫結的最適化表單 generate-adaptive-forms-with-json-binding

使用Automated forms conversion服務(AFCS)將 範例貸款申請表單轉換為具有資料繫結的最適化表單。 確保在產生最適化表單時不要選取​ Generate adaptive form(s) without data bindings ​核取方塊。

具有JSON繫結的最適化表單

使用JSON結構描述作為資料來源 jsonwithdatabinding

使用案例: ​您使用Automated forms conversion服務(AFCS)產生具有JSON資料繫結的最適化表單。 預填服務與表單提交功能順暢無礙。 您不需要任何設定步驟。

在執行使用案例之前,請確定您有具有資料繫結的最適化表單

執行以下步驟:

  1. 再次選取​ output ​資料夾中可用的轉換的​ 範例貸款申請表單,然後選取​ Preview > Preview with Data

    下載範例資料檔

    取得檔案

  2. 如有需要,請修改欄位值並提交最適化表單。 提交的資料可在crx-repository中的以下位置找到:

    http://host name:port/crx/de/index.jsp#/content/forms/fp/admin/submit/data/latest file available in the folder

將提交的自適應表單JSON資料轉換為XML格式 convert-submitted-adaptive-form-data-to-xml

當您在適用性表單欄位中輸入值並提交時,crx存放庫中的資料可使用JSON格式。 您可以使用org.apache.sling.commons.json.xml API或下列範常式式碼,將JSON資料的格式轉換為XML:

import org.apache.sling.commons.json.JSONException;
import org.apache.sling.commons.json.JSONObject;
import org.apache.sling.commons.json.xml.XML;

public class ConversionUtils {

    public static String jsonToXML(String jsonString) throws JSONException {
        //https://sling.apache.org/apidocs/sling5/org/apache/sling/commons/json/xml/XML.html#toString(java.lang.Object)
        //jar - http://maven.ibiblio.org/maven2/org/apache/sling/org.apache.sling.commons.json/2.0.18/
        //Note: Need to extract boundData part before converting to XML
        return XML.toString(new JSONObject(jsonString));
    }
}
recommendation-more-help
c40c2ccf-3d1b-4b47-b158-c4646051b46c