基於資料來源的建議預填及提交最適化表單的工作流程 recommended-data-source-btased-prefill-and-submit-workflows-for-adaptive-forms
您可以透過Automated forms conversion服務轉換的最適化表單來使用下列任何資料來源:
- 表單資料模型、OData或任何其他協力廠商服務
- JSON結構
- XSD結構描述
根據資料來源,您可以選擇產生含有或不含資料模型的最適化表單。
本文說明在選取資料來源並使用轉換服務產生最適化表單後,要預先填入欄位值和提交選項的建議工作流程。
如需Automated forms conversion服務的詳細資訊,請參閱下列文章:
本文提供的資訊是根據以下假設,即任何閱讀者都具備調適型表單概念的基本知識。
先決條件 pre-requisites
最適化表單範例 sample-adaptive-form
若要執行使用案例以預先填入最適化表單中的欄位值並將它們提交至資料來源,請下載以下範例PDF檔案。
貸款申請表範例
PDF檔案可作為Automated forms conversion服務的輸入。 此服務會將此檔案轉換為最適化表單。 下圖以PDF格式說明範例貸款申請。
為表單模型準備資料 prepare-data-for-form-model
AEM Forms資料整合可讓您設定並連線至不同的資料來源。 使用轉換程式產生最適化表單後,您可以根據表單資料模型、XSD或JSON結構描述定義表單模型。 您可以使用資料庫、Microsoft Dynamics或任何其他協力廠商服務來建立表單資料模型。
本教學課程使用MySQL資料庫作為建立表單資料模型的來源。 建立 loanapplication 資料庫中的綱要並新增 應徵者 根據最適化表單中可用的欄位,將表格變更為結構描述。
您可以使用下列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服務產生無資料繫結的最適化表單,並將MYSQL資料庫設定為資料來源。 您可以手動將最適化表單欄位繫結到表單資料模型實體,並使用 Form Data Model Prefill Service 預填欄位值的選項。 您使用 Submit using Form Data Model 提交最適化表單的選項。
執行使用案例之前:
根據使用案例,建立 loanapplication 表單資料模型並將讀取服務引數繫結到 Literal 值。 電話號碼常值必須是中設定的其中一個記錄 應徵者 MySQL資料庫的綱要。 服務會使用值作為引數,從資料來源擷取詳細資料。 您也可以選取 使用者設定檔屬性或請求屬性 從 Binding To 下拉式清單
執行以下步驟:
-
選取已轉換的 貸款申請表範例 可在 output 資料夾並點選 Properties.
-
點選 Form Model 索引標籤,選取 Form Data Model 從 Select From 下拉式清單,然後點選 Select Form Data Model 以選取 loanapplication 表單資料模型。 點選 Save & Close 以儲存表單。
-
選取 貸款申請表範例 並點選 Edit.
-
在 Content 索引標籤,點選「設定」圖示:
-
在 Basic 區段,選取 Form Data Model Prefill service 從 Prefill Service 下拉式清單。
-
在 Submission 區段,選取 Submit using Form Data Model 從 Submit Action 下拉式清單。
-
使用選取資料模型 Data Model to submit 欄位。
-
點選 以儲存屬性。
-
-
點選「應徵者名稱」文字方塊並選取 (設定)。
- 在「繫結參考」欄位中,選取 應徵者 > 名稱,然後點選 以儲存屬性。 同樣地,為建立資料繫結 地址, 電話號碼, 電子郵件, 職業, 年薪(以美元計)、和 否。 家屬成員 具有表單資料模型實體的欄位。
-
點選 Preview 以檢視預先填寫的最適化表單欄位值。
-
如有需要,請修改欄位值,並提交最適化表單。 欄位值會提交至MySQL資料庫。 您可以重新整理 應徵者 資料庫中的表格,以檢視表格中更新的值。
使用案例: 您可以使用Automated forms conversion服務產生無資料繫結的最適化表單,並將MYSQL資料庫設定為資料來源。 您可以使用規則編輯器繫結最適化表單欄位以預填欄位值。 如有必要,請修改欄位值,並將資料提交到crx-repository。
執行以下步驟以使用 規則編輯器 若要叫用表單資料模型服務以繫結最適化表單中的欄位和預填值:
-
選取 貸款申請表範例 在 output 資料夾並點選 Edit.
-
在 Content 索引標籤,點選「設定」圖示:
在 Basic 區段,選取 Form Data Model Prefill service 從 Prefill Service 下拉式清單。
-
點選 Applicant Name 文字方塊並點選 Edit Rules.
-
點選 Create 在「規則編輯器」頁面上。
-
於 Rule Editor 頁面:
-
選取「應徵者姓名」文字方塊的州。 例如, is initialized,這會導致 Then 當您在中轉譯表單時的條件 Preview 模式。
-
在 Then 區段,選取 Invoke Service 從 Select Action 下拉式清單。 Forms執行個體上的所有服務都會顯示在下拉式清單中。
-
選取 Get 服務來自列出表單資料模型的區段。 輸入欄位隨即顯示 電話號碼,此為為定義的主索引鍵 應徵者 資料模型。 系統會根據此欄位擷取並預填輸出區段中欄位的最適化表單的值。
-
使用「輸出」區段,以表單資料模型實體建立最適化表單欄位的繫結。 例如,繫結 Applicant Name 使用的最適化表單欄位 名稱 實體。
-
點選 Done。點選 Done 再次在規則編輯器頁面上。
-
-
點選 Preview 以檢視預先填寫的最適化表單欄位值。
note note NOTE 確保 Return Array 下列專案的屬性設定為OFF get 與最適化表單關聯的表單資料模型中的服務屬性。 -
如有需要,請修改欄位值,並提交最適化表單。 提交的資料可在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服務產生無資料繫結的最適化表單,並將JSON結構描述設定為資料來源。 您可以手動將最適化表單欄位繫結至JSON結構描述,並使用 使用資料預覽 預填欄位值的選項。 如有必要,請修改欄位值,並將資料提交到crx-repository。
在執行使用案例之前,請確定您具備:
執行以下步驟:
-
選取已轉換的 貸款申請表範例 可在 輸出 資料夾並點選 Properties.
-
點選 Form Model 索引標籤,選取 Schema 從 Select From 下拉式清單,然後點選 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服務產生無資料繫結的最適化表單,並將XSD結構描述設定為資料來源。 您可以手動將最適化表單欄位繫結到XSD結構描述,並使用 使用資料預覽 以預填欄位值。 如有必要,請修改欄位值,並將資料提交到crx-repository。
在執行使用案例之前,請確定您具備:
執行以下步驟:
-
選取已轉換的 貸款申請表範例 可在 output 資料夾並點選 Properties.
-
點選 Form Model 索引標籤,選取 Schema 從 Select From 下拉式清單,然後點選 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服務 此 貸款申請表範例 變更為具有資料繫結的最適化表單。 請確定您沒有選取 Generate adaptive form(s) without data bindings 產生最適化表單時勾選此方塊。
使用JSON結構描述作為資料來源 jsonwithdatabinding
使用案例: 您可以使用Automated forms conversion服務產生具有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-repository中的資料會以JSON格式提供。 您可以使用以下任一方法將格式的JSON資料轉換為XML org.apache.sling.commons.json.xml API或以下範常式式碼:
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));
}
}