基于数据源的预填充和提交工作流建议(用于生成自适应表单) 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数据库作为创建表单数据模型的源。 创建 贷款申请 架构并添加 申请人 表根据自适应表单中可用的字段添加到架构。
您可以使用以下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 用于提交自适应表单的选项。
在执行用例之前:
根据用例,创建 贷款申请 表单数据模型并将读取服务参数绑定到 Literal 值。 电话号码文字值必须是中配置的记录之一 申请人 MySQL数据库的模式。 服务使用值作为参数,从数据源获取详细信息。 您还可以选择 用户配置文件属性或请求属性 从 Binding To 下拉列表
执行以下步骤:
-
选择已转换的 贷款申请表样例 中提供 output 文件夹并点按 Properties.
-
点按 Form Model 选项卡,选择 Form Data Model 从 Select From 下拉列表,然后点按 Select Form Data Model 以选择 贷款申请 表单数据模型。 点按 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 自适应表单字段包含 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 上传 贷款申请 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));
}
}