automated forms conversion服务允许您将非交互式PDF表单、Acro表单或基于XFA的PDF表单转换为自适应表单。 启动转换过程时,您可以选择生成带有或不带数据绑定的自适应表单。
如果选择生成不带数据绑定的自适应表单,则转换后可以将转换后的自适应表单与表单数据模型、XML模式或JSON模式集成。 对于表单数据模型,您需要手动将自适应表单字段与表单数据模型绑定。 但是,如果您生成具有数据绑定的自适应表单,转换服务会自动将自适应表单与JSON模式关联,并在自适应表单和JSON模式中可用的字段之间创建数据绑定。 然后,您可以将自适应表单与您选择的数据库集成,在表单中填写数据,并将其提交到数据库。 同样,在成功与数据库集成后,您可以配置转换的自适应表单中的字段,从数据库检索值并预填自适应表单字段。
下图描述了将转换的自适应表单与数据库集成的不同阶段:
本文描述了成功执行所有这些集成阶段的分步说明。
要执行用例以使用AEM工作流将转换的自适应表单与数据库集成,请下载以下范例PDF文件。
您可以使用以下方式下载示例联系我们表单:
PDF文件用作Automated forms conversion服务的输入。 服务将此文件转换为自适应表单。 下图以PDF格式描述了示例联系人表单。
对所有作者实例和发布实例执行以下步骤以安装mysql-connector-java-5.1.39-bin.jar文件:
http://server:port/system/console/depfinder
并搜索com.mysql.jdbc包。http://server:port/system/console/bundles
并单击Install/Update。AEM Forms数据集成允许您配置和连接不同的数据源。 在使用转换过程生成自适应表单后,您可以根据表单数据模型、XSD或JSON模式定义表单模型。 您可以使用数据库、Microsoft Dynamics或任何其他第三方服务创建表单数据模型。
本教程使用MySQL数据库作为源创建表单数据模型。 在模式库中创建模式,并根据自适应表单中可用的字段将contacts表添加到。
可以使用以下DDL语句在数据库中创建contacts表。
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实例和MYSQL数据库之间创建连接:
转到位于http://server:port/system/console/configMgr
的AEM Web控制台配置页。
查找并单击以在Web控制台配置的编辑模式下打开Apache Sling Connection Pooled DataSource。 如下表所述,指定属性的值:
属性 | 值 |
---|---|
数据源名称 |
用于从数据源池过滤驱动程序的数据源名称。 |
JDBC驱动程序类 |
com.mysql.jdbc.Driver |
JDBC连接URI |
jdbc:mysql://[host]:[port]/[模式名] |
用户名 |
对数据库表进行身份验证和执行操作的用户名 |
密码 |
与用户名关联的口令 |
事务隔离 |
READ_COMMITTED |
最大活动连接数 |
1000 |
最大空闲连接数 |
100 |
最小空闲连接数 |
10 |
初始大小 |
10 |
最大等待 |
100000 |
借阅测试 |
已选中 |
空闲时测试 |
已选中 |
验证查询 |
示例值为SELECT 1(mysql)、从dual(oracle)、SELECT 1(MS Sql Server)(validationQuery)中选择1 |
验证查询超时 |
10000 |
将MYSQL配置为数据源后,请执行以下步骤以创建表单数据模型:
在AEM作者实例中,导航到Forms > Data Integrations。
点按 Create > Form Data Model.
在Create Form Data Model向导中,指定workflow_submit作为表单数据模型的名称。 点按 Next.
选择您在上一节中配置的MYSQL数据源,然后点按Create。
点按Edit并展开左窗格中列出的数据源以选择contacts表、get和insert服务,然后点按Add Selected。
在右窗格中选择数据模型对象,然后点按Edit Properties。 从Read Service和Write Service下拉列表中选择get和insert。 指定读取服务的参数,然后点按Done。
在Services选项卡中,选择get服务并点按Edit Properties。 选择Output Model Object,禁用Return array切换,然后点按Done。
选择Insert服务并点按Edit Properties。 选择Input Model Object并点按Done。
点按Save以保存表单数据模型。
您可以使用以下方式下载示例表单数据模型:
使用[Automated forms conversion服务将联系我们表单转换为具有数据绑定的自适应表单。 ](convert-existing-forms-to-adaptive-forms.md)确保在生成自适应表单时不选中Generate adaptive form(s) without data bindings复选框。
在Forms & Documents的output文件夹中选择已转换的联系我们表单,然后点按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数据库。
执行以下步骤以创建工作流模型,将自适应表单数据提交到数据库:
打开工作流模型控制台。 默认URL为https://server:port/libs/cq/workflow/admin/console/content/models.html/etc/workflow/models
。
选择Create,然后选择Create Model。 出现Add Workflow Model对话框。
输入Title和Name(可选)。 例如,workflow_json_submit。 点按Done以创建模型。
选择工作流模型并点按Edit以在编辑模式下打开模型。 点按+并将Invoke Form Data Model Service步骤添加到工作流模型。
点按Invoke Form Data Model Service步骤,然后点按。
在Form Data Model选项卡中,选择您在Form Data Model path字段中创建的表单数据模型,然后从Service下拉列表中选择insert。
在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字段的值。
在Service Arguments部分,为表单数据模型参数提供以下值:
请注意,表单数据模型字段(例如,contactus点名)已映射到afData.afBoundData.data.name1,它指提交的自适应表单的JSON模式绑定。
执行以下步骤,将自适应表单提交到您在上一节中创建的工作流模型:
在Forms & Documents的output文件夹中选择已转换的“联系我们”表单,然后点按Edit。
点按Form Container然后点按,打开自适应表单属性。
在Submission部分,从Submit Action下拉列表中选择Invoke an AEM workflow,选择您在上一节中创建的工作流模型,并在Data File Path字段中指定data.xml。
点按以保存属性。
点按Preview,在自适应表单字段中输入值,然后点按Submit。 提交的值现在显示在MYSQL数据库表中,而不是crx-repository。
执行以下步骤,根据表中定义的主键(本例中为“电子邮件”)配置自适应表单以预填MYSQL数据库中的值:
点按自适应表单中的电子邮件字段,然后点按。
点按Create并从When部分的Select State下拉列表中选择is changed。
在Then部分,选择Invoke Service和get作为您在本文上一节中创建的表单数据模型的服务。
在Input部分选择电子邮件,在Output部分选择表单数据模型的其余三个字段:名称、电话号码和问题说明。 点按Done以保存设置。
因此,根据MYSQL数据库中现有的电子邮件条目,您可以在自适应表单的Preview模式中预填其余三个字段的值。 例如,如果在电子邮件字段中指定aya.tan@xyz.com(基于本文准备表单数据模型部分中的现有数据)并跳出字段,则其余三个字段名称、电话号码和问题description在自适应表单中自动显示。
您可以使用以下方式下载转换的自适应表单示例: