基於資料來源的建議預填及提交最適化表單的工作流程 recommended-data-source-btased-prefill-and-submit-workflows-for-adaptive-forms
您可以透過透過Automated forms conversion服務(AFCS)轉換的最適化表單,使用下列任何資料來源:
- 表單資料模型、OData或任何其他協力廠商服務
- JSON結構描述
- 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 資料表新增到結構描述中。
您可以使用下列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 核取方塊以產生無資料繫結的最適化表單。
產生無資料繫結的調適型表單後,請為調適型表單選取資料來源:
使用資料庫、OData或任何第三方服務做為資料來源 sqldatasource
使用案例:您可以使用Automated forms conversion服務(AFCS)產生無資料繫結的最適化表單,並將MYSQL資料庫設定為資料來源。 您手動將最適化表單欄位繫結到表單資料模型實體,並使用 Form Data Model Prefill Service 選項預先填寫欄位值。 您使用 Submit using Form Data Model 選項來提交最適化表單。
執行使用案例之前:
根據使用案例,建立 載入應用程式 表單資料模型,並將讀取服務引數繫結至 Literal 值。 電話號碼常值必須是MySQL資料庫的 應徵者 結構描述中設定的其中一個記錄。 服務會使用值作為引數,從資料來源擷取詳細資料。 您也可以從 Binding To 下拉式清單中選取使用者設定檔屬性或要求屬性
執行以下步驟:
-
選取 output 資料夾中可用的已轉換的 範例貸款申請表單,然後點選 Properties。
-
點選 Form Model 標籤,從 Select From 下拉式清單中選取 Form Data Model,然後點選 Select Form Data Model 以選取 借出應用程式 表單資料模型。 點選 Save & Close 以儲存表單。
-
選取 範例貸款申請表單 並點選 Edit。
-
在「Content」標籤中,點選「設定」圖示:
-
在 Basic 區段中,從 Prefill Service 下拉式清單中選取 Form Data Model Prefill service。
-
在 Submission 區段中,從 Submit Action 下拉式清單中選取 Submit using Form Data Model。
-
使用 Data Model to submit 欄位選取資料模型。
-
點選 以儲存屬性。
-
-
點選「申請人名稱」文字方塊,然後選取 (設定)。
- 在[繫結參考]欄位中,選取 應徵者 > 名稱,然後點選 以儲存內容。 同樣地,為 地址、電話號碼、電子郵件、職業、年薪(美元) 和 否,建立資料繫結。 具有表單資料模型實體的相依家族成員 欄位。
-
點選 Preview 以檢視預填的最適化表單欄位值。
-
如有需要,請修改欄位值並提交最適化表單。 欄位值會提交至MySQL資料庫。 您可以重新整理資料庫中的 應徵者 資料表,以檢視資料表中更新的值。
使用案例: 您使用Automated forms conversion服務(AFCS)產生無資料繫結的最適化表單,並將MYSQL資料庫設定為資料來源。 您可以使用規則編輯器繫結調適型表單欄位以預填欄位值。 如有需要,請修改欄位值,並將資料提交至crx-repository。
執行以下步驟以使用規則編輯器來叫用表單資料模型服務,以繫結最適化表單中的欄位和預填值:
-
選取 output 資料夾中的 範例貸款申請表,然後點選 Edit。
-
在「Content」標籤中,點選「設定」圖示:
在 Basic 區段中,從 Prefill Service 下拉式清單中選取 Form Data Model Prefill service。
-
點選 Applicant Name 文字方塊並點選 Edit Rules。
-
在規則編輯器頁面上點選 Create。
-
在 Rule Editor 頁面上:
-
選取「申請人名稱」文字方塊的州。 例如,is initialized,當您以 Preview 模式轉譯表單時,這會導致 Then 條件的執行。
-
在 Then 區段中,從 Select Action 下拉式清單中選取 Invoke Service。 Forms執行個體上的所有服務都會顯示在下拉式清單中。
-
從列出表單資料模型的區段中選取 Get 服務。 輸入欄位顯示 phonenumber,這是為 應徵者 資料模型定義的主索引鍵。 系統會根據此欄位,擷取並預填輸出區段中欄位適用性表單的值。
-
使用「輸出」區段建立最適化表單欄位與表單資料模型實體的繫結。 例如,將 Applicant Name 最適化表單欄位與 名稱 實體繫結。
-
點選 Done。在規則編輯器頁面上再次點選 Done。
-
-
點選 Preview 以檢視預填的最適化表單欄位值。
note note NOTE 確定與最適化表單關聯的表單資料模型中,get 服務屬性的 Return Array 屬性設定為OFF。 -
如有需要,請修改欄位值並提交最適化表單。 提交的資料可在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。
在執行使用案例之前,請確定您擁有:
執行以下步驟:
-
選取 輸出 資料夾中可用的已轉換的 範例貸款申請表單,然後點選 Properties。
-
點選「Form Model」標籤,從「Select From」下拉式清單中選取「Schema」,然後點選「Select Schema」以上傳儲存在本機檔案系統上的 demo.schema JSON 結構描述。 點選 Save & Close 以儲存表單。
-
選取 範例貸款申請表單 並點選 Edit。
-
點選「申請人名稱」文字方塊,然後選取 (設定)。
在[繫結參考]欄位中,選取 應徵者 > 名稱,然後點選 以儲存內容。 同樣地,為 地址、電話號碼、電子郵件、職業、年薪(美元) 和 否,建立資料繫結。 具有JSON結構描述實體的相依家族成員 欄位。
-
再次選取 output 資料夾中可用的轉換的 範例貸款申請表單,然後選取 Preview > Preview with Data。
下載範例資料檔
-
如有需要,請修改欄位值並提交最適化表單。 提交的資料可在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。
在執行使用案例之前,請確定您擁有:
執行以下步驟:
-
選取 output 資料夾中可用的已轉換的 範例貸款申請表單,然後點選 Properties。
-
點選 Form Model 標籤,從 Select From 下拉式清單中選取 Schema,然後點選 Select Schema 以上傳儲在本機檔案系統上的 loanapplication XSD結構描述。 選取XSD結構描述的根元素,然後點選 Save & Close 以儲存表單。
-
選取 範例貸款申請表單 並點選 Edit。
-
點選「申請人名稱」文字方塊,然後選取 (設定)。
在「繫結參考」欄位中,選取 應徵者 > 名稱,然後點選 以儲存屬性。 同樣地,為 地址、電話號碼、電子郵件、職業、年薪(美元) 和 否,建立資料繫結。 具有XSD結構描述實體的相依家族成員 欄位。 -
再次選取 輸出 資料夾中可用的已轉換的 範例貸款申請表單,然後選取 Preview > Preview with Data。
下載範例資料檔
-
如有需要,請修改欄位值並提交最適化表單。 提交的資料可在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結構描述作為資料來源 jsonwithdatabinding
使用案例: 您使用Automated forms conversion服務(AFCS)產生具有JSON資料繫結的最適化表單。 預填服務與表單提交功能順暢無礙。 您不需要任何設定步驟。
在執行使用案例之前,請確定您有具有資料繫結的最適化表單。
執行以下步驟:
-
再次選取 output 資料夾中可用的轉換的 範例貸款申請表單,然後選取 Preview > Preview with Data。
下載範例資料檔
-
如有需要,請修改欄位值並提交最適化表單。 提交的資料可在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));
}
}